Flash 跳过计数器对象中的9,AS3
一开始不太明显,但我的计数器跳到了零,忽略了9。Flash 跳过计数器对象中的9,AS3,flash,actionscript-3,Flash,Actionscript 3,一开始不太明显,但我的计数器跳到了零,忽略了9。如何让我的计数器不跳过9? 显示对象 这是一个从0到9递减的列。”对象和值显示正确,但“跳过”除外 我的佛罗里达州 import flash.display.Sprite; import flash.events.Event; import flash.utils.Timer; import flash.events.TimerEvent; var timer:Timer; var count:int = 0; var fcount:
如何让我的计数器不跳过9? 显示对象
这是一个从0到9递减的列。”对象和值显示正确,但“跳过”除外 我的佛罗里达州
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.Timer;
import flash.events.TimerEvent;
var timer:Timer;
var count:int = 0;
var fcount:int = 0;
var numbers:NumbersView;
trace("-----new NumberDocument created");
timer = new Timer(10);
timer.addEventListener(TimerEvent.TIMER, incrementCounter);
timer.start();
numbers = new NumbersView();
addChild(numbers);
addEventListener(Event.ENTER_FRAME, enterFrameHandler);
//addEventListener(Event.ADDED_TO_STAGE, traceMeOut);
function incrementCounter(event:TimerEvent)
{
count++;
fcount=int(count*count/1000);
}
function formatCount(i:int):String
{
return ("000000000" + i).substr(-9, 9);
}
function enterFrameHandler(e:Event):void
{
numbers.setTime(formatCount(fcount));
}
function traceMeOut()
{
trace("-----Im here on stage!");
}
NumbersView.as
//NumbersView.as - Your Document Class
package {
import flash.display.MovieClip;
public class NumbersView extends MovieClip {
private var _listItems:Array;
private const numHeight:int = 120;
public function NumbersView()
{
_listItems = new Array();
var item:NumberImage;
for (var i:Number = 0; i < 9; i++) {
item = new NumberImage();
addChild(item);
item.x = i * item.width;
_listItems.push(item);
}
setTime('123456789');
}
public function setTime($number:String):void {
var nums:Array = $number.split("");
trace(nums);
for (var i:Number = 0; i < nums.length; i++) {
_listItems[i].start( int(nums[i]) );
}
}
}
}
//NumbersView.as-您的文档类
包{
导入flash.display.MovieClip;
公共类NumbersView扩展了MovieClip{
私有变量列表项:数组;
私有常量numHeight:int=120;
公共函数NumbersView()
{
_listItems=新数组();
var项目:NumberImage;
对于(变量i:Number=0;i<9;i++){
item=新的NumberImage();
addChild(项目);
item.x=i*item.width;
_listItems.push(项目);
}
设定时间('123456789');
}
公共函数setTime($number:String):void{
var nums:Array=$number.split(“”);
微量元素(nums);
对于(变量i:Number=0;i
与Tweener相同的NumberView.as的变化
//...SNIPPET
public function setTime($number:String):void {
var nums:Array = $number.split("");
for (var i:Number = 0; i < nums.length; i++) {
if (nums[i] == previousNums[i]) continue;
Tweener.removeTweens(_listItems[i]);
var nuNum:int = int(nums[i]);
var nuY:int = nuNum == 0 ? 0 : (nuNum - 1) * -numHeight;
trace("nuY = " + nuY);
trace("cY = " + _listItems[i].y);
Tweener.addTween(_listItems[i], { y:nuY, time:0 } );
}
previousNums = nums;
}
/…代码片段
公共函数setTime($number:String):void{
var nums:Array=$number.split(“”);
对于(变量i:Number=0;i
NumbersView.as的变体不会跳过9,但每次计数都会从底部重置
//...SNIPPET
public function setTime($number:String):void {
var nums:Array = $number.split("");
for (var i:Number = 0; i < nums.length; i++) {
if (nums[i] == previousNums[i]) continue;
Tweener.removeTweens(_listItems[i]);
var newY:int = int(nums[i]) * -numHeight;
if (_listItems[i].y < 0) _listItems[i].y = numHeight;
Tweener.addTween(_listItems[i], { y:newY, time:3 } );
}
previousNums = nums;
}
/…代码片段
公共函数setTime($number:String):void{
var nums:Array=$number.split(“”);
对于(变量i:Number=0;i
公共类扩展MovieClip
将“NumbersView.as”放在同一目录中 类
库/“右键单击”属性/类:NumberImage
符号
编号栏70x1080
编号70x120 TWEENER
本地目录中的caurina文件夹我正努力按照您的代码,准确理解您的意思,所以这只是一个猜测 在NumbersView.as中
(var i:Number = 0; i < 9; i++)
(变量i:Number=0;i<9;i++)
是:
(变量i:Number=0;i跳过9个解决方案
a、 吐温设置太高“我将我的设置为.05,而不是三个”
b、 Number=0;iA5也不同于a=5,看看它有什么区别吗?:)关于循环必须是“小于或等于”的说法可能是对的,但我还是被卡住了。看起来这很有帮助,其余的你都解决了。很高兴你把它整理好了。我真的会抛弃那个密码,太糟糕了。你是从书上得到的吗?这是不可能理解的,当下一个问题出现时,你会在每个问题得到回答后回来。我以前给你的解决方案要简单得多,而且工作完美无瑕。我不明白为什么您不想使用更简洁、更易于调试、缺陷明显更小的东西。NumbersView.as是有问题的。我讨厌用这个来击败一匹死马。
(var i:Number = 0; i <= 9; i++)