我正在使用数组在Action Script 3中创建一个扩展的圆形动画。绘制一个新的圆形元素并删除前一个圆形元素,所有这些都由一个计时器引导。目前,代码正在绘制新的圆形元素,但不删除前一个元素。目前,输出是一堆30个圆圈。请帮忙。
以下是创建圈子的课程:
package
{
import flash.display.Sprite;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.display.Shape;
public class SoundWave2 extends Sprite
{
public function SoundWave2()
{
var wavearray:Array = new Array();
var waveTimer:Timer = new Timer(1000, 30);
var i:int = new int(0);
waveTimer.addEventListener(TimerEvent.TIMER, init);
waveTimer.start();
function init():void
{
if (i == 0)
{
wavearray[i] = graphics.lineStyle(1, 0x0000FF);
wavearray[i] = graphics.drawCircle(0, 0, 30);
i += 1;
trace(i);
}
else
{
wavearray[i] = graphics.lineStyle(1, 0x0000FF);
wavearray[i] = graphics.drawCircle(0, 0, 30 + i);
wavearray.removeAt(i-1);
i += 1;
trace(i);
}
}
}
}
}
答案 0 :(得分:1)
myCircle.graphics.clear();
myCircle.graphics.beginFill...
...drawCircle(...);
可能会也可能不会将其从阵列中删除,但不会将其从舞台中删除
不要使用圆圈阵列,只需使用相同的圆圈并重绘它,确保首先调用清除功能。
private function destroyArray(arr:Array):void{
for (var i:int = 0; i < arr.length; i++){
arr[i].parent.removeChild[arr[i]];
}
}
这只是一些伪代码,但你明白了。
修改
当您询问有关从舞台中删除所有数组元素的其他信息时:
destroyArray(yourArray);
然后,对于任何想要离开舞台的阵列,请执行
<xsl:value-of select="$LookupRegexReplace/Row[matches($seq4, @Key1, 'i')]/@RegexReplace"/>
但显然使用你想要的数组代替&#34; yourArray&#34;