Actionscript、对象和事件侦听器

Actionscript、对象和事件侦听器,actionscript,event-handling,Actionscript,Event Handling,说我有个目标 var my_obj = new Object(); my_obj['key'] = value; 是否有一种方法可以将事件侦听器添加到值中,如 my_obj['key'].addEventListener(Blah Blah); 我在时间轴上有一个很长的按钮列表(每个部分的布局都非常不同,因此在时间轴上进行布局比通过actionscript构建布局更有意义) 等等……所以我只是想把所有东西都存储在一个数组中 obj["button1"] = "framelabel1" arr

说我有个目标

var my_obj = new Object();
my_obj['key'] = value;
是否有一种方法可以将事件侦听器添加到值中,如

my_obj['key'].addEventListener(Blah Blah);
我在时间轴上有一个很长的按钮列表(每个部分的布局都非常不同,因此在时间轴上进行布局比通过actionscript构建布局更有意义)

等等……所以我只是想把所有东西都存储在一个数组中

obj["button1"] = "framelabel1"
arr.push(obj);

然后,我可以为所有按钮使用一个事件处理程序,并使用target来获取帧标签值…

如果值是或扩展,则可以向其添加侦听器。

如果值是或扩展,则可以向其添加侦听器。

这个问题对我来说相当模糊。我的猜测是,您需要在每次设置值时触发某些内容。如果是这种情况,那么您必须创建一个自定义类,并在其中声明一个getter setter属性

例如:

package
{
    import flash.display.Sprite;

    public class TestAccessor extends Sprite
    {
        private var someVarValue:uint = 0;

        public function TestAccessor()
        {
            super();
        }

        public function get someVar():uint
        {
            return someVarValue;
        }

        public function set someVar(value:uint):*
        {
            someVarValue = value;
            // this is the place where someVar is set.
            // do whatever else you like here,
            // you may choose to dispatch an event from here if you need.
        }

    }
}

早在AS1-AS2时代,我们就有了用于此目的的
watch()
addProperty()
,但这些时代早已过去。永远地。:)

这个问题对我来说相当模糊。我的猜测是,您需要在每次设置值时触发某些内容。如果是这种情况,那么您必须创建一个自定义类,并在其中声明一个getter setter属性

例如:

package
{
    import flash.display.Sprite;

    public class TestAccessor extends Sprite
    {
        private var someVarValue:uint = 0;

        public function TestAccessor()
        {
            super();
        }

        public function get someVar():uint
        {
            return someVarValue;
        }

        public function set someVar(value:uint):*
        {
            someVarValue = value;
            // this is the place where someVar is set.
            // do whatever else you like here,
            // you may choose to dispatch an event from here if you need.
        }

    }
}

早在AS1-AS2时代,我们就有了用于此目的的
watch()
addProperty()
,但这些时代早已过去。永远地。:)

是的,你可以按照你刚才提到的方式完全按照你的要求去做,下面是一个例子:

var value:Sprite = new Sprite();

var my_obj = new Object();
my_obj['key'] = value;
所谓:

my_obj['key'].addEventListener(Event.ENTER_FRAME, _onEnterFrameHandler);
与调用完全相同:

value.addEventListener(Event.ENTER_FRAME, _onEnterFrameHandler);

是的,你可以按照你刚才提到的方式完全按照你的要求去做,下面是一个例子:

var value:Sprite = new Sprite();

var my_obj = new Object();
my_obj['key'] = value;
所谓:

my_obj['key'].addEventListener(Event.ENTER_FRAME, _onEnterFrameHandler);
与调用完全相同:

value.addEventListener(Event.ENTER_FRAME, _onEnterFrameHandler);

你能不能让我们停止猜测问题的实质你能不能让我们停止猜测问题的实质