【发布时间】:2010-03-17 18:40:32
【问题描述】:
我如何在计数后重置我的数字?我想要一个类似 onComplete 函数的东西。
描述
我的动画从当前位置前进 120 像素,然后飞离舞台。
它在循环,在前进之前会悠悠球到底部。我不想要我的号码
溜溜球或飞离舞台。我的数字每次计数必须向前移动 120 像素,然后
返回。
alt text http://www.ashcraftband.com/myspace/videodnd/tweener___.jpg
NumbersView.as '代码有效,但描述的混乱'
package
{
import flash.display.DisplayObject;
import flash.display.MovieClip;
import flash.utils.Dictionary;
import flash.events.Event;
import caurina.transitions.Tweener;
public class NumbersView extends MovieClip
{
private var _listItems:Array;
private var previousNums:Array;
private const numHeight:int = 120;
public function NumbersView()
{
_listItems = new Array();
previousNums = new Array();
//Tweener.init();
var item:NumberImage;
for (var i:Number = 0; i < 9; i++) {
item = new NumberImage();
addChild(item);
item.x = i * item.width;
_listItems.push(item);
}
}
public function setTime($number:String):void {
var nums:Array = $number.split("");
//trace("$number = " + $number);
for (var i:Number = 0; i < nums.length; i++) {
if (nums[i] == previousNums[i]) continue;
Tweener.removeTweens(_listItems[i]);
//newY:int = -numHeight;
var newY:int = int(nums[i]) * -numHeight;
trace("newY = " + newY);
trace("currY = " + _listItems[i].y);
/*----------------------PROBLEM AREA, RIGHT HERE------------------------*/
//if (_listItems[i].y < 0) _listItems[i].y = numHeight;//
//Tweener.addTween(_listItems[i], { y:newY, time:3 } );//
Tweener.addTween(_listItems[i], { y:_listItems[i].y+newY, time:3 } );//
}
previousNums = nums;
}
}
}
Tweener 示例
http://hosted.zeh.com.br/tweener/docs/en-us/parameters/onComplete.html
**哎呀!
//废话是注意不要使用它',不是针对任何人的代码的评论
文档类
发布设置/Flash/Settings 'Advanced ActionScript 3.0 Settings'/文档类:NumbersView
CLASS 符号 70x1080,数字 70x120
Library/'right-click' Properties/Class:NumberImage
【问题讨论】:
-
我不是已经向您发布了一些正是做到这一点的代码吗?在我给你的例子中,数字在 9 之后重置为 0;它与您在这里所做的不同,但它也没有那么复杂。
-
NumbersView 文档给我带来了麻烦,但我没有认真地看待它。除了我的补间,我一切正常。
标签: flash actionscript-3 tweener