Avatar of turpya
turpya

asked on 

ActionScript 3:0: Reuse same variables/functions on a different layer?

I am relatively new to actionscript. I have spent all weekend working on some code in the first frame, on layer 1, that loads a bitmap image and then tweens the image on the stage when clicked on. Clicking the image a second time tweens the image back to it's original location.

The code below handles 1 image. However, I need to reuse this code to load approx 100 images, and display them on unique areas of the stage.

I'm on a very tight deadline and I'm hoping someone can tell me what the fastest way is to accomplish this? I was hoping to duplicate this code in frame 1 on layers 2-100, so that each layer would load an individual bitmap image, but I got this error for each variable:

A conflict exists with definition ... in namespace internal.

Should I just leave all the code in the one frame, or is it possible to reuse variables/functions that have been declared on other layers?

If someone could provide example code I would really(!) appreciate it.

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

Open in new window

Adobe Flash

Avatar of undefined
Last Comment
turpya

8/22/2022 - Mon