我正在使用常規的flash.utils.Dictionary
作爲源對象的詞典,而且自定義實現flos.utils.Dictionary
具有擴展功能,如檢索詞典的長度,並在其值設置爲undefined時自動刪除鍵。「flash」在AS3中沒有定義?
編譯過程中我得到這些錯誤:
- 「1046:類型未找到或不是編譯時常:詞典」
- 「1120:訪問未定義屬性Flash」。
- 「1120:訪問未定義屬性Flash」。
這三個錯誤發生在下面的代碼中聲明的每個私有變量。我正在導入我的自定義字典,因此我在使用完全限定名稱來定位內置字典flash.utils.Dictionary
時,但它似乎認爲flash
名稱空間未定義。
package flos.system.binding
{
import flos.utils.Dictionary;
internal class BindingDictionary
{
private var targetBindings:flash.utils.Dictionary = new flash.utils.Dictionary(); //Dictionary of targets, containing dictionaries of bound target properties, containing the source/propertyName pair that the target is bound to.
private var sourceBindings:flash.utils.Dictionary = new flash.utils.Dictionary(); //Dictionary of sources, containing Dictionaries of bound source properties, containing Binding instances that determine which targets/properties the source property is bound to.
public function BindingDictionary()
{
}
FYI,這個內部類用於在同一個文件作爲綁定類中聲明的私人類,包之外,文件的底部。當我嘗試調用Binding類的靜態成員時,我得到了一個運行時錯誤#1007「在Binding $ iinit()的非構造函數上試圖實例化」。所有的類都有構造函數,我無法弄清楚什麼是錯誤的,所以我將這些類移動到了單獨的文件中,這就是我碰到這些編譯錯誤的原因。
我認爲,通過聲明具有完全限定名稱的變量,我不必使用顯式導入語句,但顯然我是這樣做的。我不想爲內置字典類使用import語句的原因是因爲我不想在整個類的其餘部分對Dictionary進行模糊引用,我希望使用Dictionary的實現。我可能會被強制爲兩者都顯式導入,並在整個類中使用完全限定名稱以避免含糊不清的引用。 使用完全限定名稱時,我不需要導入。 – Triynko