【问题标题】:What's the trick to inheriting from a Dictionary in AS3?从 AS3 中的 Dictionary 继承有什么技巧?
【发布时间】:2012-11-02 03:01:10
【问题描述】:

给定以下代码:

import flash.utils.Dictionary;

import mx.collections.ArrayCollection;
import mx.controls.Alert;

public class CDictionary extends Dictionary
{
    public function CDictionary(weakKeys:Boolean=false)
    {
        super(weakKeys);
    }
}

这会引发错误 #1056:

m_cdictNearIDs = new CDictionary();
m_cdictNearIDs[4] = "f";

但这不是:

m_cdictNearIDs = new Dictionary();
m_cdictNearIDs[4] = "f";

(在每种情况下,它都是一个成员变量,它被声明为与它被实例化的类型相同。)Wth?从字典继承的技巧是什么?谢谢!

【问题讨论】:

    标签: actionscript-3 apache-flex inheritance dictionary


    【解决方案1】:

    你必须将你的类定义为dynamic:

    package
    {
        import flash.utils.Dictionary;
    
        public dynamic class CDictionary extends Dictionary
        {
            public function CDictionary(weakKeys:Boolean=false)
            {
                super(weakKeys);
            }
        }
    }
    

    【讨论】:

    • 嗯,显然这实际上取决于您使用的编译器;看这篇文章的第二部分:stackoverflow.com/questions/8502204/…
    • 我对整个事情感到非常惊讶。嗯,这比我预期的要简单得多。谢谢大佬。
    • 类默认为sealed
    猜你喜欢
    • 1970-01-01
    • 2010-09-30
    • 2020-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-01
    相关资源
    最近更新 更多