首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >AS3 CustomEvent根本没有被扩展吗?

AS3 CustomEvent根本没有被扩展吗?
EN

Stack Overflow用户
提问于 2012-06-07 19:15:06
回答 3查看 94关注 0票数 0

我在创建CustomEvent时遇到了一些奇怪的错误,似乎扩展的事件不提供对事件属性的访问:

代码语言:javascript
代码运行次数:0
运行
复制
package 
{
    import flash.events.Event;
    public class CustomEvent extends Event
    {

        //public static const COMPLETE:String = 'complete';

        private var _assetName:String;
        public function get assetName ():String
        {
            return _assetName;
        }
        public function set assetName ( aname:String ):void
        {
            _assetName = aname;
        }

        public function CustomEvent (type:String, bubbles:Boolean = false, cancelable:Boolean = false)
        {
            super (type, bubbles, cancelable);
        }

        public override function clone ():Event
        {
            return new CustomEvent(type, bubbles, cancelable) as Event;
        }
    }
}

执行以下操作时:

代码语言:javascript
代码运行次数:0
运行
复制
myObj.addEventListener(CustomEvent.COMPLETE, objLoaded);

我得到的错误是完整不存在...好的,我把它设置到一个地方,然后它解释说不能把CustomEvent转换成Event。

我错过了什么??

EN

回答 3

Stack Overflow用户

发布于 2012-06-07 19:56:57

您需要将此public static const COMPLETE:String = 'complete';声明为静态变量/常量不会被转移到扩展类。

将CustomEvent转换为Event的错误可能是因为将event listener设置为侦听Event而不是CustomEvent

票数 1
EN

Stack Overflow用户

发布于 2012-06-07 19:18:28

事件被分派到哪里,监听器的签名是什么样子的?

票数 0
EN

Stack Overflow用户

发布于 2012-06-08 03:05:40

我们在这里有几个问题要讨论:

  1. 你有你的public static const COMPLETE...注释掉了。为什么?如果你想引用CustomEvent.COMPLETE作为事件类型,这是必要的。
  2. 使用我的通灵第三只眼,你已经像这样声明了你的事件侦听器:

公共事件(evt:completeListener):无效...

这不会以你想要的方式工作。你需要

public completeListener(evt:CompleteEvent):Void ...

  • 与编译问题无关,您的自定义事件有另一个问题。您的clone方法不会克隆assetName属性。尝试如下所示:

公共覆盖函数CustomEvent():Event{ var ret:CustomEvent =新类型(类型,气泡,可取消);ret.assetName = assetName; ret;}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10930700

复制
相关文章

相似问题

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