User login

Image-Factory

Product Class- Concrete

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;

Product Class- Abstract

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');
}
}
}

Creator Class- Concrete

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);
}
}
}

Creator Class- Abstract

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);
}
}
}

External Image Factory

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

Syndicate content