Показать сообщение отдельно
Старый 05.02.2011, 13:14
vave вне форума Посмотреть профиль Отправить личное сообщение для vave Найти все сообщения от vave
  № 1  
Ответить с цитированием
vave

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
По умолчанию Странный глюк 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);
	}
 
}