ActionScript中定时器函数的使用

ActionScript中定时器函数的使用,actionscript,timer,Actionscript,Timer,动作脚本 我的计时器功能有问题 我想做以下节目。 首先:生成随机数并建立数组。 第二: 通过存储阵列以3秒的间隔执行功能 但是当使用定时器功能时,我不能使用 论点 应每隔3秒执行一次的功能 错误消息: RangeError:Error#1125:索引7超出范围4。 at views::twoHomeView/onTimer()[C:\Users\Kinect\Adobe Flash Builder 4.6\yattah\src\views\twoHomeView.mxml:26] at flas

动作脚本

我的计时器功能有问题

我想做以下节目。 首先:生成随机数并建立数组。 第二: 通过存储阵列以3秒的间隔执行功能

但是当使用定时器功能时,我不能使用 论点 应每隔3秒执行一次的功能

错误消息: RangeError:Error#1125:索引7超出范围4。 at views::twoHomeView/onTimer()[C:\Users\Kinect\Adobe Flash Builder 4.6\yattah\src\views\twoHomeView.mxml:26] at flash.utils::Timer/_timerDispatch()

at flash.utils::Timer/tick()


=新向量(4);
公共变量a:int =0;
公共变量s:int =0;
函数显示(q:int):void{//显示图片(ue、migi、shita、hidari) 0=↑1=→2=↓3=←
如果(q==0)
{
ue.可见=真实;
migi.visible=false;
shita.visible=false;
hidari.visible=false;
}
else如果(q==1)
{
ue.visible=false;
migi.visible=true;
shita.visible=false;
hidari.visible=false;
}
else如果(q==2)
{
ue.visible=false;
migi.visible=false;
shita.visible=true;
hidari.visible=false;
}
其他的
{
ue.visible=false;
migi.visible=false;
shita.visible=false;
hidari.visible=true;
}
}
受保护的功能按钮1\u clickHandler(事件:MouseeEvent):无效
{
//TODO自动生成的方法存根
显示(0);
}
受保护的功能按钮2\u clickHandler(事件:MouseeEvent):无效
{
//TODO自动生成的方法存根
显示(0);
}
受保护的函数右键单击处理程序(事件:MouseEvent):无效
{
//TODO自动生成的方法存根
显示器(1);
}
函数等待(时间:int,处理程序:函数):void
{
var timeri:定时器=新定时器(时间,1);
timeri.addEventListener(TimerEvent.TIMER\u COMPLETE,timerHandler);
timeri.start();
函数timerHandler(事件:TimerEvent):无效
{
handler();
timeri.removeventlistener(TimerEvent.TIMER\u COMPLETE,timerHandler);
}
}   
函数lv1():void{
}
函数showMC():void//将随机数放入数组
{
for(var i:int;i)

您正在创建一个包含4个元素的
向量:

public  var n:Vector.<int> = new Vector.<int>(4)
最后,如果查看
wait()
方法,您正在声明一个本地
Timer
对象
函数完成,您可能永远不会从该计时器对象获取任何事件。若要解决此问题,只需将
timeri
的声明移到
wait()
函数之外(使其成为成员变量)。这与错误无关,但以后可能会成为问题

<fx:Script>
    <![CDATA[

        import flash.display.Sprite;
        import flash.events.TimerEvent;
        import flash.utils.Timer;


        private var timer:Timer;

        public function Main()
        {
            timer = new Timer(1000, 3);
            timer.addEventListener(TimerEvent.TIMER, onTimer);
            timer.start();
        }
        var kaisu:int =0; 
        private function onTimer(event:TimerEvent):void
        {
        for(var i:int;i<n.length;i++){
            kaisu += 1;
            display(n[kaisu]);
        }
        }


        public  var n:Vector.<int> = new Vector.<int>(4);   

        public var a:int =0;
        public var s:int =0;


            function display(q:int):void{//show the picture(ue,migi,shita,hidari) 0=↑1=→2=↓3=←
            if(q ==0)
            {
                ue.visible= true;
                migi.visible= false;
                shita.visible= false;
                hidari.visible= false;
            }
            else if(q ==1)
            {

                ue.visible= false;
                migi.visible= true;
                shita.visible= false;
                hidari.visible= false;
            }
            else if(q ==2)
            {
                ue.visible= false;
                migi.visible= false;
                shita.visible= true;
                hidari.visible= false;
            }
            else
            {
                ue.visible= false;
                migi.visible= false;
                shita.visible= false;
                hidari.visible= true;
            }
                }
        protected function button1_clickHandler(event:MouseEvent):void
        {
            // TODO Auto-generated method stub

            display(0);
        }

        protected function button2_clickHandler(event:MouseEvent):void
        {
            // TODO Auto-generated method stub

            display(0);


        }

        protected function right_clickHandler(event:MouseEvent):void
        {
            // TODO Auto-generated method stub
            display(1);
        }





        function wait(time:int, handler:Function):void

        {

            var timeri:Timer = new Timer(time, 1);

                timeri.addEventListener(TimerEvent.TIMER_COMPLETE, timerHandler);

                timeri.start();

            function timerHandler(event:TimerEvent):void

            {

                    handler();

                    timeri.removeEventListener(TimerEvent.TIMER_COMPLETE, timerHandler);

            }

        }   
        function lv1():void{
    }

        function showMC():void//put random number in array
        {

            for(var i:int;i<n.length;i++)
            {   var r:int = Math.floor(Math.random() * 4);
                n[i]=r;
            }   
            point.text = n[0]+""+" "+n[1]+" "+n[2]+" "+n[3];
        }








    ]]>
</fx:Script>

<fx:Declarations>
</fx:Declarations>


<s:Image x="-31" y="-40" width="383" height="486" source="assets/yattah.jpg"/>
<s:Button id="left" x="13" y="304" width="50" height="50" label="←"
          click="button1_clickHandler(event)"/>
<s:Label id ="point" x="19" y="7" text="点"/>
<s:Button id="up" x="60" y="257" width="50" height="50" label="↑"
          click="button2_clickHandler(event)"/>
<s:Button id="right" x="107" y="304" width="50" height="50" label="→"
          click="right_clickHandler(event)"/>
<s:Button id="down" x="59" y="352" width="50" height="50" label="↓"
        />
<s:Button x="260" y="309" width="50" height="50" label="A" click="Main()"/>
<s:Button x="207" y="359" width="50" label="B" click="showMC()"/>
<s:Image id="ue" x="75" y="33" visible="false" smooth="true" source="assets/ue.png"/>
<s:Image id="shita" x="80" y="49" smooth="true" source="assets/shita.png"/>
<s:Image id="hidari" x="75" y="55" smooth="true" source="assets/hidari.png"/>
<s:Image id="migi" x="80" y="49" smooth="true" source="assets/migi.png"/>
<s:Image id="good" x="-21" y="84" width="363" height="103" visible="false" source="assets/good.png"/>
public  var n:Vector.<int> = new Vector.<int>(4)
for(var i:int;i<5;i++) {
            kaisu += kaisu+1;
            display(n[kaisu]);
        }
kaisu += 1; // or kaisu++;