Arrays 由于某种原因,未定义的MovieClip数组(Actionscript 3.0)

Arrays 由于某种原因,未定义的MovieClip数组(Actionscript 3.0),arrays,actionscript,properties,undefined,movieclip,Arrays,Actionscript,Properties,Undefined,Movieclip,我只是想做一个“第二场比赛”的游戏。我刚开始做,因为我是一个初学者,所以我试图理解数组是如何工作的。因此我编写了这个简单的程序: package { import flash.display.MovieClip; import flash.events.MouseEvent; public class Main extends MovieClip { var Ar:Array = []; Ar[0] = A; Ar[1] = B; Ar[2] = C;

我只是想做一个“第二场比赛”的游戏。我刚开始做,因为我是一个初学者,所以我试图理解数组是如何工作的。因此我编写了这个简单的程序:

package  {

import flash.display.MovieClip;
import flash.events.MouseEvent;

public class Main extends MovieClip
{
    var Ar:Array = [];
    Ar[0] = A;
    Ar[1] = B;
    Ar[2] = C;

    public function Main()
    {
        for( var i = 0; i < 3;  i++ )
        {
            Ar.buttonMode = true;
            Ar[i].addEventListener( MouseEvent.MOUSE_OVER, MouseOverAct );
            Ar[i].addEventListener( MouseEvent.MOUSE_OUT, MouseOutAct );
        }
    }

    public function MouseOverAct( mouseEvent:MouseEvent ):void
    {
        mouseEvent.target.alpha = 0.1;
    }

    public function MouseOutAct( mouseEvent:MouseEvent ):void
    {
        mouseEvent.target.alpha = 1.0;
    }
}
包{
导入flash.display.MovieClip;
导入flash.events.MouseEvent;
公共类Main扩展了MovieClip
{
var-Ar:Array=[];
Ar[0]=A;
Ar[1]=B;
Ar[2]=C;
公共功能Main()
{
对于(变量i=0;i<3;i++)
{
Ar.buttonMode=true;
Ar[i].addEventListener(MouseEvent.MOUSE_OVER,MouseOverAct);
Ar[i].addEventListener(MouseEvent.MOUSE_OUT,MouseOutAct);
}
}
公用函数MouseOverAct(mouseEvent:mouseEvent):无效
{
mouseEvent.target.alpha=0.1;
}
公共函数mouseEvent(mouseEvent:mouseEvent):无效
{
mouseEvent.target.alpha=1.0;
}
}
}

但是,在声明数组并尝试将MovieClips(已经在舞台上,实例名为A、B、C)放入其中之后,我得到了一个“Undefined property”错误。我曾尝试使用Ar.push()来更正它,但效果不佳。有人能帮我吗?

这个

var Ar:Array = [];
Ar[0] = A;
Ar[1] = B;
Ar[2] = C;
是不正确的代码。应该在变量声明或任何方法上初始化实例属性(在本例中为数组)。可以在静态块中初始化静态属性。我认为关于静态块初始化的这一点会对您有所帮助。因此,您应该执行以下任一操作:

public var _array:Array = [A, B, C];

public var\u数组:数组;
公共功能Main()
{
_数组=[A,B,C];
对于(变量i=0;i<3;i++)
{
_array.buttonMode=true;
_数组[i].addEventListener(MouseEvent.MOUSE\u OVER,mouseOverHandler);
_数组[i].addEventListener(MouseEvent.MOUSE_OUT,mouseOutHandler);
}
}

非常感谢您的帮助。
public var _array:Array;

public function Main()
{
    _array = [A, B, C];
    for( var i = 0; i < 3;  i++ )
    {
        _array.buttonMode = true;
        _array[i].addEventListener( MouseEvent.MOUSE_OVER, mouseOverHandler );
        _array[i].addEventListener( MouseEvent.MOUSE_OUT, mouseOutHandler );
    }
}