package interactiveThumbnail
{
import flash.display.*;
import flash.events.*;
import flash.net.URLRequest;
public class FadeInImage extends ExternalImage
{
private var imageURL:String;
private var theImage:DisplayObject;
private var navUrl:String;
private var ready:Boolean;
private var obName:String;
public function FadeInImage(aModel:Object,aController:Object = null)
{
super(aModel,aController);
ready = false;
}
override internal function loadImage(data:XML):void
{
trace(data.@imgUrl);
this.imageURL = data.@imgUrl;
this.navUrl = data.@navUrl;
package interactiveThumbnail {
import flash.net.URLRequest;
import flash.display.*;
import flash.events.Event;
import flash.events.MouseEvent;
internal class ExternalImage extends CompositeView
{
public function ExternalImage(aModel:Object,aController:Object = null)
{
super(aModel,aController);
}
internal function setLoc(xLoc:int, yLoc:int):void
{
this.x = xLoc;
this.y = yLoc;
}
internal function loadImage(data:XML):void
{
trace('this method must be called from a subclass');
}
}
}
package interactiveThumbnail
{
import flash.display.*;
public class ThumbnailCreator extends ExternalImageCreator
{
override internal function createThumb(aModel:Object,aController:Object = null):ExternalImage
{
return new FadeInImage(aModel,aController);
}
}
}
package interactiveThumbnail
{
public class ExternalImageCreator
{
public function addThumb(aModel:Object,aController:Object,data:XML,xLoc:int,yLoc:int,passParent:Object):void
{
var thumb:ExternalImage = this.createThumb((aModel as IModel),(aController as IController));
thumb.loadImage(data);
thumb.setLoc(xLoc,yLoc);
passParent.add(thumb);
passParent.addChild(thumb);
}
internal function createThumb(aModel:Object,aController:Object = null):ExternalImage
{
return new ExternalImage(aModel,aController);
}
}
}
This factory loads external images and places them the stage.
This package has been modified from it's original usage,
so some of the naming conventions my seem odd.
The factory is initialized like this:
var factory:ExternalImageCreator = new ThumbnailCreator();
and new images are created like this:
item is an XML piece,
100 is the x location,
150 is the y location,
this is the parent
factory.addThumb(model,controller,item,100,150,this);
You can download the package here:
http://www.code.ericschleeper.com/samples/interactiveThumbnail.zip