Dit was eigenlijk meer om de classes in AS 3 onder de knie te krijgen maar ik dacht, laat ik het maar posten.
Dit is dus eigenlijk een hele simpele fotogallerij.
Om deze in je website te includen doe je gewoon dit:
actionscript codeimport FotoGallery;
//FotoGallery(xml file, photo width, photo height, x position, y position);
var tester:FotoGallery = new FotoGallery("test.xml", 400, 200, 5, 5);
//setButtonStyle(color, radius);
tester.setButtonStyle(0x000000, 10);
//setTextStyle(color, size);
tester.setTextStyle(0xFFFFFF, 12);
this.addChild(tester);
En de code zelf
actionscript codepackage {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.*;
import flash.utils.*;
public class FotoGallery extends MovieClip {
private var loader:Loader = new Loader();
private var buttonMc:MovieClip = new MovieClip();
private var rect:MovieClip = new MovieClip();
private var xmlLoader:URLLoader = new URLLoader();
private var xml:XML;
private var il:XMLList;
private var url:String;
private var xPosition:Number;
private var yPosition:Number;
private var total:Number;
private var buttonStyleWidth:Number;
private var buttonStyleColor:uint;
private var iAlpha:uint
private var myTf:TextFormat = new TextFormat();
public function FotoGallery(file:String, rectWidth:Number, rectHeight:Number, xPos:Number, yPos:Number):void {
url = file;
xPosition = xPos;
yPosition = yPos;
rect.graphics.beginFill(0xFFFFFF);
rect.graphics.lineStyle(1, 0x000000, 1, true);
rect.graphics.drawRect(xPosition, yPosition, rectWidth + 1, rectHeight + 1);
rect.graphics.endFill();
this.addChild(rect);
loadPics();
}
public function setButtonStyle(color, width:Number):void {
buttonStyleColor = color;
buttonStyleWidth = width;
}
public function setTextStyle(color, size):void {
myTf.color = color;
myTf.size = size;
}
private function loadPics():void {
xmlLoader.addEventListener(Event.COMPLETE, loadXML);
xmlLoader.addEventListener(ProgressEvent.PROGRESS, loadBar);
xmlLoader.load(new URLRequest(url));
}
private function loadXML(e:Event):void {
xml = new XML(xmlLoader.data);
xml.ignoreWhitespace = true;
il = xml.pic;
loader.load(new URLRequest(il.url[0].text()));
loader.x = xPosition + 1;
loader.y = yPosition + 1;
rect.addChild(loader);
total = il.length();
rect.addEventListener(MouseEvent.MOUSE_OVER, showButtons);
rect.addEventListener(MouseEvent.MOUSE_OUT, hideButtons);
createButtons();
}
private function createButtons():void {
var beginX:Number = xPosition + 15;
var beginY:Number = yPosition + 15;
for (var i:Number = 0; i < total; i++) {
var buttonText:TextField = new TextField();
var button:MovieClip = new MovieClip();
button.graphics.beginFill(buttonStyleColor);
button.graphics.drawCircle(beginX, beginY, buttonStyleWidth);
button.graphics.endFill();
button.name = String(i);
buttonText.x = beginX - 5;
buttonText.y = beginY - 7;
buttonText.text = String(i+1);
buttonText.width = 10;
buttonText.height = 15;
buttonText.selectable = false;
buttonText.name = String(i);
buttonText.setTextFormat(myTf);
button.addEventListener(MouseEvent.MOUSE_DOWN, changePic);
buttonText.addEventListener(MouseEvent.MOUSE_DOWN, changePic);
buttonMc.addChild(button);
buttonMc.addChild(buttonText);
beginX += 25;
}
rect.addChild(buttonMc);
buttonMc.visible = false;
}
private function showButtons(Event:MouseEvent):void {
buttonMc.visible = true;
}
private function hideButtons(Event:MouseEvent):void {
buttonMc.visible = false;
}
private function changePic(Event:MouseEvent):void {
clearInterval(iAlpha);
var pic:Number = Event.currentTarget.name;
loader.load(new URLRequest(il.url[pic].text()));
loader.alpha = 0;
iAlpha = setInterval(showLoader, 50);
}
private function showLoader():void {
if (loader.alpha < 1) {
loader.alpha += 0.1;
} else {
clearInterval(iAlpha);
}
}
private function loadBar(e:Event):void {
}
}
}
Er heeft nog niemand een stem uitgebracht.