Archief - ingeneste event.target meegeven als argument?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

TooChé

Legacy Member
ik weet niet hoe ik in mn aangeroepen functie (verklein) aan het event.target geraak van eerste functie die met Motion.finish de tweede aanroept ... zou ik die event.target kunnen meegeven als argument ?

op deze manier werkt het dus niet :(

Code:
function itemklik(event:MouseEvent):void {
	timer.stop();
	img.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
	var myTweenRotation:Tween = new Tween(event.target,"rotation",None.easeNone, 0, 920, 5, true);
	var verplaats:Tween = new Tween(event.target, "x", trong.easeOut,event.target.x, img.width/2 + event.target.width, 5,true);
	var verplaatsy:Tween = new Tween(event.target, "y", Strong.easeOut,event.target.y, img.height/2 + event.target.width, 5,true);	
	verplaatsy.addEventListener(TweenEvent.MOTION_FINISH,verklein);
	
}

function verklein(event:TweenEvent):void {
	var verkleinx:Tween = new Tween(event.target, "width", None.easeNone,target.width, 0, 5, true);
	var verkleiny:Tween = new Tween(event.target, "height", None.easeNone,event.target.height, 0, 5, true);
}

Zero Grav

Legacy Member
Een paar dingen die ik niet heb staan in comments, gewoon terug uncommenten en ge kunt weer aan de slag.

Omdat ik niet zeker wist wat ge wou bereiken heb ik een array gebruikt voor uw objecten in op te slaan, zo kunt ge uw tween zeker meerdere keren tegelijk toepassen zonder in problemen te komen met uw objecten.

Ga dus wel nooit een tween in een functie declareren, als uw functie is afgelopen kan het zijn dat uw Tween dan ook gewoon in het midden stopt. En op deze manier kunt ge ook Tweens hergebruiken.

'k Heb ook wel het gevoel dat ge uw code niet echt grondig bekijkt. Een fout als "trong" in een tween is niet echt iets dat de syntax checker niet aangeeft?

Code:
package {
	import fl.transitions.Tween;
	import fl.transitions.TweenEvent;
	import fl.transitions.easing.*;
	
	import flash.display.MovieClip;
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.events.MouseEvent;

	public class Tester extends Sprite
	{
		private var myTweenRotation:Tween;
		private var tweenX:Tween;
		private var tweenY:Tween;
		private var containerArr:Array = new Array();
			
		public function Tester()
		{
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			
			var bolletje:MovieClip = new MovieClip();
				bolletje.graphics.beginFill(0x00FF00, 1);
				bolletje.graphics.drawCircle(0, 0, 20);
				bolletje.x = bolletje.y = 300
				
				bolletje.addEventListener(MouseEvent.CLICK, itemKlik, false, 0, true);
				
			addChild(bolletje);
			
			var bolletjeTwee:MovieClip = new MovieClip();
				bolletjeTwee.graphics.beginFill(0x0000FF, 1);
				bolletjeTwee.graphics.drawCircle(0, 0, 25);
				bolletjeTwee.x = bolletjeTwee.y = 320;
				
				bolletjeTwee.addEventListener(MouseEvent.CLICK, itemKlik, false, 0, true);
				
			addChild(bolletjeTwee);
		}
		
		private function itemKlik(event:MouseEvent):void {
			//timer.stop();
	
			var mijnObject:MovieClip = event.currentTarget as MovieClip;
			trace(mijnObject);
			containerArr.push(mijnObject);
			//mg.removeEventListener(Event.ENTER_FRAME, onEnterFrame);
				
			myTweenRotation = new Tween(mijnObject,"rotation",None.easeNone, 0, 920, 5, true);
			tweenX = new Tween(mijnObject, "x", None.easeNone, mijnObject.x, 40 + mijnObject.width, 2, true);
			tweenY = new Tween(mijnObject, "y", None.easeNone, mijnObject.y, 40 + mijnObject.width, 2, true);	
		
			tweenX.addEventListener(TweenEvent.MOTION_FINISH, verklein, false, 0, true);
			
		}
		
		private function verklein(event:TweenEvent):void {
			var object:MovieClip = containerArr[0];
				containerArr.splice(0, 1);
			var tweenX:Tween = new Tween(object, "width", None.easeNone, object.width + 100, 0, 5, true);
			var tweenY:Tween = new Tween(object, "height", None.easeNone, object.height + 100, 0, 5, true);
		}
	}
}

Syntax Highlighting: ActionScript pastebin - collaborative debugging tool

I must say dat ik helemaal niet zeker ben van deze code, maar ik kan geen manier bedenken om anders door te geven welk object ge nog eens wilt tweenen.

Edit: De naam die ik aan die vars heb gegeven is dus om u aan te moedigen daar een degelijke naam aan te geven, iets beschrijvends.

TooChé

Legacy Member
die syntax fouten zoals "trong" is gewoon omdat ik vanalles aan het uittesten was. Dus zo'n fouten zijn geen issue ;)

probleem zit hem dat ik in verklein dus ook de event.target van de eerste functie(diegene die de 'klik' functie aanroept) wil kunnen gebruiken. Maar als ik dan in de 'verklein' functie event.target aanroep, slaat die uiteraard terug op de Tween waaraan ik de TweenEvent gekoppeld heb en niet op het event.target van de eerste functie.

Dus dacht ik van die event.target mss mee te geven als argument met de functieaanroep van 'verklein', de MotionFinish event dus.

dat was mn vraag.

Uw voorbeeld werkt inderdaad wel, het komt erop neer gewoon de event.target in een klasse object te steken en die dan weer te gebruik in de 2e functie.
Had het liever zonder workaround gezien, maar denk dat er weinig opties zijn :)

thanks

Zero Grav

Legacy Member
'k Twijfel er dus zelf ook aan, ben zelf maar een actionscript beginner en de enige reden dat ik hiervoor kies, is dat ge het onmogelijk als argument gaat kunnen meegeven. Helemaal niet als event.target of currentTarget omdat uw eventlistener gekoppeld is aan de tween zelf.

Moest er een manier zijn om in die functie te achterhalen op welk object ge getweend hebt dan is het een heel ander verhaal.


Na een beetje googlen:

Code:
		private function verklein(event:TweenEvent):void {
			[B]var object:MovieClip = MovieClip(event.currentTarget.obj);[/B]
			var tweenX:Tween = new Tween(object, "width", None.easeNone, object.width + 100, 0, 5, true);
			var tweenY:Tween = new Tween(object, "height", None.easeNone, object.height + 100, 0, 5, true);
		}
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan