Flock web 2.0 velkommen

Tommyka | 10. juli 2009 11:44 | web

Jeg har de sidste par dage testet Browseren Flock som er en web 2.0 / social networking browser.

Den bygger på mozilla Firefox, så den normale web browsing virker helt uden problemer, og har mulighed for de extentions som er til firefox. Men det der gør den speciel er at den kan intigere med rigtig mange sociale netværk direkte i browersen, uden at man skal gå til de forskellige sider. Hvis man ser på min flock browser så har jeg hele tiden hvem der er online på facebook og facebook chatten i bunden som er blevet en del af browersens status bar. Så har jeg en side bar hvor jeg kan skifte mellem twitter og facebook og se hvem der har lagt status beskeder ud.

Så har man også en medie browser der søger direkte hos flickr, youtube og mange andre service, hvor man bare kan drage billeder og videoer ind og andet indhold. og sidst med ikke mindst så kan den logge direkte på diverse blogs. Så man kan skrive posts direkte i en lille intigeret editor, og publich det uden at gå til sin blog administration. For mig ser jeg store fordele i at havde det hele intigeret et sted.

Det vil med stor sansynlighed resultere i mange flere Facebook og Twitter updateringer pluds flere blog posts. Men nu vil jeg køre noget mere test af browseren.

Grid Sorting class v. 0.1

Tommyka | 10. juli 2009 11:01 | ActionScript

Når så kunne jeg ikke holde fingerne væk aligevel.

jeg har lige smækket en Grid sorting class sammen på en time her om natten i det lidt våde norge.

Klassen virker ved at man tilføjer nogle display objekter til dens interne list, og så hver gang du ændre højde, bredte, v og hspacing så resorter den alle objekterne der er tilknyttet.
Selve klassen er ikke lavet som et display objekt (selv om det nemt kunne), så de skal være added til en displayliste et andet sted.

her er selve klassen

package dk.tommyka.layout 
{
	import dk.tommyka.v3.layout.events.LayoutEvent;
	import flash.display.DisplayObject;
	import flash.display.Sprite;	
	/**
	 * ...
	 * @author Tommyka
	 */
	public class Grid 
	{
		private var _width:Number = 400;
		private var _height:Number = 400;
		private var _vspacing:int = 10;
		private var _hspacing:int = 10;
		
		private var _children:Array;
		
		public function Grid(children:Array) 
		{ 
			_children = children || [];
			
			for (var i:uint = 0; i < _children.length; i++)
			{
				_children[i].addEventListener(LayoutEvent.RESORT, onResort, false, 0, true);
			}
		}
		
		private function resort():void
		{
			var mw:Number = 0; //max width;
			var mh:Number = 0; //max height;
			
			var numChildren:int = _children.length;
			
			var child:DisplayObject;
			
			for (var i:uint = 0; i < numChildren; i ++)
			{
				child = _children[i];
				
				if (child.width > mw)
				{
					mw = child.width;
				}
				
				if (child.height > mh)
				{
					mh = child.height;
				}
			}
			
			var dx:int = int(mw) + _vspacing;
			var dy:int = int(mh) + _hspacing;
			
			var rows:int = Math.floor(_height / dy);
			var cols:int = Math.floor(_width / dx);
			
			for (i = 0; i < numChildren; i++)
			{
				child = _children[i];
				child.x = dx * (i % cols);
				child.y = dy * Math.floor(i / cols);
			}
		}
		
		public function addChild(child:DisplayObject):void
		{
			_children.push(child);
			child.addEventListener(LayoutEvent.RESORT, onResort, false, 0, true);
			
			resort();
		}
		
		private function onResort(e:LayoutEvent):void 
		{
			resort();
		}
		
		public function get width():Number { return _width; }
		
		public function set width(value:Number):void 
		{
			_width = value;
			resort();
		}
		
		public function get height():Number { return _height; }
		
		public function set height(value:Number):void 
		{
			_height = value;
			
			resort();
		}
		
		public function get vspacing():int { return _vspacing; }
		
		public function set vspacing(value:int):void 
		{
			_vspacing = value;
			
			resort();
		}
		
		public function get hspacing():int { return _hspacing; }
		
		public function set hspacing(value:int):void 
		{
			_hspacing = value;
			
			resort();
		}
	}
	
}

der er også en event klasse med som man kan bruge hvis nogle af de nestede elementer ændre størelse, så kan man bruge den til at sige, HEY resort lige det hele.

 

package dk.tommyka.layout.events 
{
	import flash.events.Event;
	
	/**
	 * ...
	 * @author Tommyka
	 */
	public class LayoutEvent extends Event 
	{
		
		static public const RESORT:String = "resort";
		
		public function LayoutEvent(type:String, bubbles:Boolean=false, cancelable:Boolean=false) 
		{ 
			super(type, bubbles, cancelable);
			
		} 
		
		public override function clone():Event 
		{ 
			return new LayoutEvent(type, bubbles, cancelable);
		} 
		
		public override function toString():String 
		{ 
			return formatToString("LayoutEvent", "type", "bubbles", "cancelable", "eventPhase"); 
		}
		
	}
	
}

 

Powered by BlogEngine.NET 1.5.0.7
Theme by Tommy Kjær Andersen admin Log ind