Странный глюк Tween...
Сделал код Для аттача из библиотеки рандомных символов и динамически запускаю твины для каждого циклом по его окончании... жуть :)
суть в том что если аттачить 1 символ твин выполняется для его одного 20 раз...
если аттачить 20 символов твин выполняется по 1му разу для каждого и в сумме все равно 20 раз...
потом все твины останавливаются :(
Код AS3:
import fl.transitions.*;
import fl.transitions.Tween;
import fl.transitions.easing.*;
import flash.events.*;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Sprite;
var MinW:int = parent.width - 100;
var MinH:int = parent.height - 100;
for (var j=1; j<10; j++)
{
var newRandBox = Math.round(Math.random() * 4) + 1;
var GenerName:String = "ColorBox" + newRandBox;
var NewDefMC:MovieClip = new (getDefinitionByName(GenerName) as Class)() as MovieClip;
this.addChild(NewDefMC);
var TempNameObj = NewDefMC;
var Sx = Math.random() * MinW;
var Sy = Math.random() * MinH;
var Ss = (Math.round(Math.random() * 10) / 10)+0.4;
var Sa = (Math.round(Math.random() * 10) / 10)+0.1;
StartMoveBox(TempNameObj,Sx,Sy,Ss,Sa);
}
function StartMoveBox(BoX, Sx,Sy,Ss,Sa)
{
var NewTWx:Tween;
var NewTWy:Tween;
var NewTWscaley:Tween;
var NewTWscalex:Tween;
var NewTWa:Tween;
var NewDuration = (Math.round((Math.random()+0.1)*10)/10)*10;
var Ex = Math.random() * MinW;
var Ey = Math.random() * MinH;
var Es = (Math.round(Math.random() * 10) / 10)+0.4;
var Ea = (Math.round(Math.random() * 10) / 10)+0.1;
NewTWy = new Tween(BoX,"x",Back.easeOut,Sx,Ex,NewDuration,true);
NewTWx = new Tween(BoX,"y",Back.easeOut,Sy,Ey,NewDuration,true);
NewTWscalex = new Tween(BoX,"scaleX",Back.easeOut,Ss,Es,NewDuration,true);
NewTWscaley = new Tween(BoX,"scaleY",Back.easeOut,Ss,Es,NewDuration,true);
NewTWa = new Tween(BoX,"alpha",Back.easeOut,Sa,Ea,NewDuration,true);
NewTWa.addEventListener(TweenEvent.MOTION_FINISH, funishTween);
function funishTween(e:TweenEvent)
{
trace("end Starter");
StartMoveBox(BoX, Ex, Ey,Es,Ea);
}
}
|