首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于某些原因,未定义的MovieClip数组(ActionScript3.0)

由于某些原因,未定义的MovieClip数组(ActionScript3.0)
EN

Stack Overflow用户
提问于 2012-01-20 07:08:14
回答 1查看 307关注 0票数 1

我只是想做一个"match-2“游戏。我刚刚开始这样做,因为我是一个初学者,我正在尝试了解数组是如何工作的。因此,我编写了这个简单的程序:

代码语言:javascript
复制
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;
    }
}

}

但是,在声明数组并尝试将MovieClips (已经在舞台上,实例名为A、B、C)放入其中之后,我得到了一个“未定义的属性”错误。我尝试过使用Ar.push()来纠正它,但它不能很好地工作。有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-20 17:33:17

代码语言:javascript
复制
var Ar:Array = [];
Ar[0] = A;
Ar[1] = B;
Ar[2] = C;

是不正确的代码。应该在变量声明或任何方法中初始化实例属性(在本例中为数组)。可以在静态块中初始化静态属性。我认为这篇关于静态块初始化的link会对你有所帮助。因此,您应该执行以下任一操作:

代码语言:javascript
复制
public var _array:Array = [A, B, C];

代码语言:javascript
复制
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 );
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8934721

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档