gpt4 book ai didi

actionscript-3 - "flash"没有在AS3中定义?

转载 作者:行者123 更新时间:2023-12-02 10:54:53 26 4
gpt4 key购买 nike

我正在使用常规 flash.utils.Dictionary用于源对象字典和自定义实现 flos.utils.Dictionary它具有扩展功能,例如检索字典的长度并在键的值设置为未定义时自动删除键。

我在编译过程中遇到这些错误:

  • “1046:找不到类型或不是编译时常量:字典。”
  • “1120:未定义属性闪存的访问。”
  • “1120:未定义属性闪存的访问。”

  • 下面代码中声明的每个私有(private)变量都会发生这三个错误。我正在导入我的自定义字典,因此在定位内置字典时使用完全限定名称 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()
    {
    }

    仅供引用,这个内部类曾经是与 Bindings 类在同一文件中声明的私有(private)类,位于文件底部的包之外。当我尝试调用 Binding 类的静态成员时,出现运行时错误 #1007“在非构造函数上尝试实例化。在 Binding$iinit()”。所有的类都有构造函数,我不知道出了什么问题,所以我将这些类移动到单独的文件中,这就是我遇到这些编译错误的时候。

    最佳答案

    似乎在 AS3 中绝对需要导入一个类,与 AS2 不同,如果您想使用它,除非它与您尝试使用它的类在同一个包中声明:Packages and Namespaces - Importing Packages

    您必须有一个类本身或包含它的包的导入语句。之一:

  • 导入 flash.utils.Dictionary
  • 导入 flash.utils.*;

  • 这意味着我看到的行为是设计使然。当导入来自外部包的两个类并具有相同的名称时,尽管维护困难,但在整个类中使用名称的任何地方都无法绕过使用完全限定名称来消除歧义的要求。

    我想我在想 AS3 的 import像 C# 的 using 这样的语句声明,尝试将一个字典设为默认值,以避免在最常引用的类上使用完全限定名称,而只在一两行中使用另一个类的完全限定名称。在 AS3 中,您必须同时导入两者,处理不明确的引用,并在对这两个类的每个引用上使用完全限定的名称。

    关于actionscript-3 - "flash"没有在AS3中定义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22206189/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com