Flash 索引深度动画,AS3
我有三个球。我该怎么办 它们在动画中应该看起来像是在变戏法,但是 我没有正确地索引它们。请帮忙。Flash 索引深度动画,AS3,flash,actionscript-3,Flash,Actionscript 3,我有三个球。我该怎么办 它们在动画中应该看起来像是在变戏法,但是 我没有正确地索引它们。请帮忙。 谢谢 编辑 也许我应该使用数组。getChildAt可以工作,但它的循环并不完美。它移动一两个球,不是一个接一个 //JUGGLING ANIMATION WITH 3 BALLS var myTimer:Timer = new Timer(444); myTimer.addEventListener(TimerEvent.TIMER,someFunction); myTimer.start();
谢谢 编辑
也许我应该使用数组。getChildAt可以工作,但它的循环并不完美。它移动一两个球,不是一个接一个
//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);
}
}
//用3个球玩杂耍动画
var myTimer:Timer=新定时器(444);
myTimer.addEventListener(TimerEvent.TIMER,someFunction);
myTimer.start();
函数someFunction(事件:TimerEvent){
变量T:数值=0;
//我把它设置错了
T++;
T%=3;
var-dr:*;
dr=getChildAt(numChildren-1);
对于(变量i:int;i编辑:
不知道您真正想要实现什么,但在一次调用中只更改一个索引
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值错误,您不能同时递增和执行模运算=>
T = (T + 1) % 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);
}
}
var T:Number=0;
var myTimer:Timer=新定时器(444);
myTimer.addEventListener(TimerEvent.TIMER,someFunction);
myTimer.start();
函数someFunction(事件:TimerEvent):void{
T=(T+1)%3;
var dr:DisplayObject=getChildAt(numChildren-1);
对于(var i:int=0;i来说,您不太清楚自己想要实现什么。
如果要使用一个计时器设置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);
}
你在你的函数中声明了T,那么它不会重置为0吗?然后你在多个剪辑中循环,你想同时控制这三个剪辑吗?这还不清楚
您可以使用计时器获取“计时器自零开始以来已触发的总次数”
我知道这是一个示例/片段,但是:someFunction没有说明您要做什么,变量名不一致(例如,t),getChildAt()返回一个DisplayObject,您可以根据使用情况将其强制转换为Sprite/MovieClip,但使用*like并不是该语言的好用法
HTH它们是舞台“r”“g”“b”上的实例。我正在制作z深度动画。我想将getChildAt发送到堆栈的顶部或后部。很抱歉,这太混乱了。我尝试过,但仍然以相同的方式制作动画。我正在尝试学习循环和索引。
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);
}