他们应该看起来像是在动画时被耍弄,但是
我没有正确索引它们。请帮忙。
感谢
修改
也许我应该只使用一个数组。 getChild是一种有效的方法,但它并没有完美地循环。它移动一个或两个球,而不是一个接一个......
//JUGGLING ANIMATION WITH 3 BALLS
var myTimer:Timer = new Timer(444);
myTimer.addEventListener(TimerEvent.TIMER,someFunction);
myTimer.start();
function someFunction(event:TimerEvent) {
var T:Number =0;
//WHERE I'M SETTING IT WRONG
T++;
T %= 3;
var dr:*;
dr = getChildAt(numChildren - 1);
for(var i:int; i <T; i++){
setChildIndex(dr,i);
trace(i);
}
}
输出
输出跟踪为零,动画看起来像是一次移动1个或2个球,而不是循环遍历每个。
答案 0 :(得分:0)
修改强>
不知道你真正想要实现的目标,但只能在一次通话中改变一个索引
var depth:Number =0;
var myTimer:Timer = new Timer(444);
myTimer.addEventListener(TimerEvent.TIMER,someFunction);
myTimer.start();
function someFunction(event:TimerEvent):void {
depth =(depth + 1) % 3;
var dr:DisplayObject = getChildAt(numChildren - 1);
setChildIndex(dr, depth);
trace(depth);
}
您的T值错误,您无法在同一时间内增加和进行模数=&gt;
T = (T + 1) % 3;
或
T++;
T %= 3;
并且您每次在重复的函数中也将T重置为0,将其置于函数之外:
var T:Number =0;
var myTimer:Timer = new Timer(444);
myTimer.addEventListener(TimerEvent.TIMER,someFunction);
myTimer.start();
function someFunction(event:TimerEvent):void {
T =(T + 1) % 3;
var dr:DisplayObject = getChildAt(numChildren - 1);
for(var i:int=0; i <T; i++){
setChildIndex(dr,i);
trace(i);
}
}
i
中设置一个值到您的循环中。答案 1 :(得分:0)
你不清楚你想要达到的目标。 如果您想使用一个计时器为3个剪辑设置动画,但一次为1个剪辑设置动画,则可以尝试以下操作:
var myTimer:Timer = new Timer(444);
myTimer.addEventListener(TimerEvent.TIMER,someFunction);
myTimer.start();
function someFunction(event:TimerEvent) {
var i:int = (myTimer.currentCount - 1)%3;
var dr:DisplayObject = getChildAt(i);
setChildIndex(dr,i);
trace(i);
}
HTH