在AS3中继承字典的诀窍是什么?

Pan*_*sis 3 apache-flex inheritance dictionary actionscript-3

给出以下代码:

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);
    }
}
Run Code Online (Sandbox Code Playgroud)

这引发了错误#1056:

m_cdictNearIDs = new CDictionary();
m_cdictNearIDs[4] = "f";
Run Code Online (Sandbox Code Playgroud)

但这不是:

m_cdictNearIDs = new Dictionary();
m_cdictNearIDs[4] = "f";
Run Code Online (Sandbox Code Playgroud)

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

Jas*_*ges 6

您必须将您的班级定义为dynamic:

package
{
    import flash.utils.Dictionary;

    public dynamic class CDictionary extends Dictionary
    {
        public function CDictionary(weakKeys:Boolean=false)
        {
            super(weakKeys);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)