在AS3中扩展圆形动画

时间:2017-01-12 11:11:20

标签: actionscript-3

我正在使用数组在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);
                                    }

                            }



        }
    }
}

1 个答案:

答案 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;