ActionsScript 3:0: Mouse event listeners not firing second time
I have some ActionScript I have spent the weekend working on (I am a relative newbie to actionscript), and have come stuck with mouse event listeners.
The first listener fires when an imported bitmap is clicked on. When clicked, a motion moves the bitmap to an area centre of stage. Then a second listener is setup so that when the image is clicked on, it returns to it's original position.
After this, if you click on the image back in it's starting position, nothing happens.
How can I reload/reinitialise this code, so that the listener's continually fire when the image is clicked on? I have tried removeEventListener/addEventListener in the onTweenComplete function, but this appears to work sporadically (sometimes you have to click multiple times to get the image to move).
Example code would be really(!) appreciated.
Thanks.
import soulwire.display.PaperSprite;import gs.TweenMax;import gs.events.TweenEvent;import flash.display.Bitmap;import flash.display.BitmapData;import flash.display.Loader;import flash.display.Sprite;import flash.events.*;import flash.geom.Point;import flash.geom.Rectangle;import flash.net.URLRequest;var myPaperSprite:PaperSprite = new PaperSprite();var myBitmap:Bitmap = new Bitmap();var url1:String="p1.png";var url2:String="p1u.png";var size:uint=80;var finalx:Number;var finaly:Number;var speed:Number;var originx:Number;var originy:Number;var originz:Number;myPaperSprite.pivot=new Point(0.5,0.5);LoadBitmaps();addChild( myPaperSprite );myPaperSprite.addEventListener(MouseEvent.CLICK, onClickHandler);setupBitmapPosition();function setupBitmapPosition() { finalx=500; finaly=500; speed=50; originx=1700; originy=-164; originz=2200; myPaperSprite.x=originx; myPaperSprite.y=originy; myPaperSprite.z=originz;}function onClickHandler(event:MouseEvent):void { var speed=1; var myTween:TweenMax=new TweenMax(myPaperSprite,speed,{x:finalx,y:finaly,z:-200,shortRotation:{rotationX:900,rotationY:0}});// , rotationZ:-1000 myTween.addEventListener(TweenEvent.COMPLETE, onTweenComplete); function onTweenComplete(event:TweenEvent=null):void { //myTween.clear(); //myPaperSprite.removeEventListener(MouseEvent.CLICK, onClickHandlerReturn); //myPaperSprite.addEventListener(MouseEvent.CLICK, onClickHandlerReturn); myTween.removeEventListener(TweenEvent.COMPLETE, onTweenComplete); } myPaperSprite.addEventListener(MouseEvent.CLICK, onClickHandlerReturn); function onClickHandlerReturn(event:MouseEvent):void { var speed=1; var myTween:TweenMax=new TweenMax(myPaperSprite,speed,{x:originx,y:originy,z:originz,shortRotation:{rotationX:0,rotationY:0}});// , rotationZ:-1000 myTween.addEventListener(TweenEvent.COMPLETE, onTweenComplete); function onTweenComplete(event:TweenEvent=null):void { //myTween.clear(); //loadMovie("products.swf",_root); //myPaperSprite.removeEventListener(MouseEvent.CLICK, onClickHandler); //myPaperSprite.addEventListener(MouseEvent.CLICK, onClickHandler); myTween.removeEventListener(TweenEvent.COMPLETE, onTweenComplete); //myPaperSprite.addEventListener(MouseEvent.CLICK, onClickHandler); } myPaperSprite.addEventListener(MouseEvent.CLICK, onClickHandler); }}function LoadBitmaps() { myPaperSprite.x=1; myPaperSprite.y=1; myPaperSprite.z=1; configureAssets1(); configureAssets2(); function configureAssets1():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler1); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler1); var request:URLRequest=new URLRequest(url1); loader.x=size*numChildren; loader.load(request); addChild(loader); //myBitmap = Bitmap(loader.content); //addChild(myBitmap); } function configureAssets2():void { var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler2); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler2); var request:URLRequest=new URLRequest(url2); loader.x=size*numChildren; loader.load(request); addChild(loader); //myBitmap = Bitmap(loader.content); //addChild(myBitmap); } function duplicateImage(original:Bitmap):Bitmap { var image:Bitmap=new Bitmap(original.bitmapData.clone()); image.x=size*numChildren; addChild(image); return image; } function completeHandler1(event:Event):void { var loader:Loader=Loader(event.target.loader); var image:Bitmap=Bitmap(loader.content); myPaperSprite.front=duplicateImage(image); removeChild(loader); } function completeHandler2(event:Event):void { var loader:Loader=Loader(event.target.loader); var image:Bitmap=Bitmap(loader.content); myPaperSprite.back=duplicateImage(image); removeChild(loader); } function ioErrorHandler1(event:IOErrorEvent):void { trace("Unable to load image: " + url1); } function ioErrorHandler2(event:IOErrorEvent):void { trace("Unable to load image: " + url2); }}