我正在使用计时器索引3个盒子。它们按顺序消失。如何重新出现?
谢谢
框在序列1-3中消失
var pink:Array = ["","boxInstance1","boxInstance2","boxInstance3"];
var timer:Timer = new Timer(555);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
function onTimer(evt:TimerEvent):void {
var counting:*;
counting = String(timer.currentCount %10);
trace(counting);
//TIMER LOOPS THROUGH MY ARRAY
this[pink[counting]].visible = false;
}
我试过这个'它不起作用'
//THIS IS OK
if(counting> 0){
this[pink[counting]].visible = false;
}
//'null object ref #1010'
if(counting> 6){
this[pink[counting]].visible = true;
}
我不是特别关注它们消失和出现的序列,但它需要继续循环。
答案 0 :(得分:1)
我对你发布的内容感到有点困惑。首先,为什么要计算一个字符串?第二,如果计数设置为模数6,何时计数大于6?此外,你的数组中只有四个东西,所以你不想使用mod 6,对吧?另外,如果你试图访问这个[“”],那不会给你带来某种错误吗?
要让它们循环,我只会在每次出现问题时切换可见性,而不是
this[pink[counting]].visible = false;
我会用:
this[pink[counting]].visible = this[pink[counting]].visible ? false : true;
或写出:
if(this[pink[counting]].visible)
this[pink[counting]].visible = false;
else
this[pink[counting]].visible = true;
我认为,这是切换需要切换的任何东西的一种非常标准的方法。
答案 1 :(得分:0)
您将计数设置在0到5之间(timer.currentCount%6)
然后你只做你的visible = true如果计算> 6。
计数永远不会是> 6:)
尝试检查它是> = 3:)
这样的事情应该有用(NB没有测试,从内存写入)
var pink:Array = ["boxInstance1","boxInstance2","boxInstance3"];
var timer:Timer = new Timer(555);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
function onTimer(evt:TimerEvent):void {
var counting:uint = timer.currentCount % this[pink].length;
this[pink[counting]].visible = !this[pink[counting]].visible;
}
答案 2 :(得分:0)
您要定位数组中的第七个+更多项目。由于数组只有4项(包括空白的第一项),因此没有粉红色的项目[3]。此外,如果计数= timer.currentCount%6,它将介于0和5之间,因此它永远不会超过6。
此外,计数应该是int,而不是字符串。如果您使用它来确定大于和小于和索引数组,则它应该是一个int。
// these variables should have been created somewhere else in your code,
// or on the stage if you are coding in the timeline
var boxInstance1:Sprite = new Sprite();
var boxInstance2:Sprite = new Sprite();
var boxInstance3:Sprite = new Sprite();
// create an array of the boxInstance display objects, not an array of strings.
// note: remove the first array item,
// unless you need it to be blank for some other reason.
var pink:Array = [boxInstance1, boxInstance2, boxInstance3];
var timer:Timer = new Timer(555);
timer.addEventListener(TimerEvent.TIMER, onTimer);
timer.start();
//TIMER FUNCTION
function onTimer(evt:TimerEvent):void {
var counting:int = timer.currentCount % 6;
trace(counting); // should output 0 through 5
if (counting > 2) {
// if greater than 2, hide an item (3,4,5)
pink[counting - 3].visible = false;
} else {
// else counting is equal or less than 2, show an item (0,1,2)
pink[counting].visible = true;
}
}