Let me see if I can explain this.
I have an xml gallery that I’m making for my photo business, and I’m having a problem with the order of events firing off here.
Right now when I test my flash, there is a brief moment where I see the image resize from big to the resized format… and the fader does not work anymore.
I want for everytime I open the gallery or click on an image for the resize event to happen, have the image loaded, so that the fading I have in function checkerF can begin…
Pretty much like this:
Open gallery
Resized image fades in…
I can’t quite figure out what I’m doing wrong here…? I’m new to this and any help would be much appreciated.
Below is the full actionscript code of the Fla. file.
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.events.MouseEvent;
import fl.transitions.Tween;
import fl.transitions.easing.*;
var xmlRequest:URLRequest = new URLRequest(“gallery.xml”);
var xmlLoader:URLLoader = new URLLoader(xmlRequest);
var rawXML:XML;
var imgData:XML;
var imageLoader:Loader;
var rawImage:String;
var rawH:String;
var rawW:String;
var imgNum:Number = 0;
var brandNew:Number = 1;
var checkSec:Timer = new Timer(500);
var numberOfChildren:Number;
xmlLoader.addEventListener(Event.COMPLETE, xmlLoadedF);
master_mc.addEventListener(MouseEvent.CLICK, nextImgF);
master_mc.buttonMode = true;
nextBTN.addEventListener(MouseEvent.CLICK, nextImgF);
previousBTN.addEventListener(MouseEvent.CLICK, prevImgF);
stage.addEventListener(Event.ENTER_FRAME, stageResize);
stage.addEventListener(Event.RESIZE, stageResize);
stage.scaleMode=StageScaleMode.NO_SCALE;
stage.align=StageAlign.TOP_LEFT;
setStage();
function setStage():void {
var WIDTH:Number=stage.stageWidth;
var HEIGHT:Number=stage.stageHeight;
master_mc.width = WIDTH;
master_mc.height = HEIGHT;
( master_mc.scaleX < master_mc.scaleY ) ? master_mc.scaleY = master_mc.scaleX : master_mc.scaleX = master_mc.scaleY;
}
function stageResize(e:Event):void {
setStage(); }
function xmlLoadedF(event:Event):void{
checkSec.start();
checkSec.addEventListener(TimerEvent.TIMER, checkerF);
imgData = new XML(event.target.data);
}
function packagedF():void{
checkSec.removeEventListener(TimerEvent.TIMER, checkerF);
rawImage = imgData.image[imgNum].imgURL;
numberOfChildren = imgData.*.length();
rawW = imgData.image[imgNum].imgW;
rawH = imgData.image[imgNum].imgH;
imageLoader = new Loader;
imageLoader.load(new URLRequest(rawImage));
master_mc.addChild(imageLoader);
}
function checkerF(event:TimerEvent):void{
var playerFadeTween:Tween = new Tween(master_mc, “alpha”, Strong.easeOut, 0, 1, 1, true);
if(brandNew == 1) {
brandNew = 0;
packagedF();
}else if(imgNum < numberOfChildren){
imageLoader.unload();
packagedF();
}else{
imageLoader.unload();
imgNum = 0;
packagedF();
}
}
function nextImgF(event:MouseEvent):void{
checkSec.addEventListener(TimerEvent.TIMER, checkerF);
imgNum++;
}
//listen for key press
stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyNext);
//if left or right arrow, go to previous or next frame
function myKeyNext(e:KeyboardEvent):void {
switch (e.keyCode) {
case Keyboard.RIGHT :
checkSec.addEventListener(TimerEvent.TIMER, checkerF);
imgNum++;
}
}
//listen for key press
stage.addEventListener(KeyboardEvent.KEY_DOWN, myKeyPrev);
//if left or right arrow, go to previous or next frame
function myKeyPrev(e:KeyboardEvent):void {
switch (e.keyCode) {
case Keyboard.LEFT :
checkSec.addEventListener(TimerEvent.TIMER, checkerF);
if(imgNum == 0) {
imgNum = numberOfChildren;
}
imgNum–;
}
}
function prevImgF(event:MouseEvent):void{
checkSec.addEventListener(TimerEvent.TIMER, checkerF);
if(imgNum == 0) {
imgNum = numberOfChildren;
}
imgNum–;
}