在类中使用Inspectable同时使用Inspectable属性扩展父级时出现错误1119

时间:2016-02-24 20:45:10

标签: actionscript-3 flash actionscript

简短说明:

我有一个C类,它扩展了一个P类.P类具有一些Inspectable属性。

我在C类中添加了一些Inspectable属性,将C链接到库中的组件,并添加了C作为该组件的组件定义的类。此时,我可以通过“属性”窗口的“组件参数”部分读取并设置该组件实例的Inspectable属性(属于P和C)。

但是,如果我通过组件参数设置了C类的单个Inspectable属性,当我尝试导出.swf时,我为C的每个Inspectable属性得到一个不同的编译器错误1119(即使我没有设置它)并保留其默认值),表示我通过带有静态P的引用引用可能未定义的属性 childProperty

详细说明:

我有一个ChildClass类,它扩展了一个ParentClass类,我试图将ChildClass的一些 public 属性声明为Inspectable。 ParentClass也有一些Inspectable getter和setter帮助访问父对象中相应的 protected 属性。

为了完整起见,请考虑 ChildClass 的可检查属性名为 childProperty 。还要考虑有一个 ContainingClass 类型的对象,它具有 ChildClass 类型的公共属性 childClassInstance ContainingClass 链接到一个库组件,该组件具有 ChildClass 实例作为子项。最后,请注意 ChildClass 位于 samplePackageB.a ,而 ParentClass 位于 samplePackageA

所以代码看起来像这样:

    package samplePackageA
    {
        public class ParentClass extends MovieClip
        {
            protected var _parentValue:String;
            [Inspectable(defaultValue="")]
            public function get parentValue():String { return _parentValue; }
            public function set parentValue(value:String):void {
                _parentValue = value;
            }
            ...
        }
    }

    package samplePackageB.a
    {
        import samplePackageA.ParentClass;
        public class ChildClass extends ParentClass
        {
            [Inspectable(defaultValue="1.0")]
            public var childProperty:Number;
            ...
        }
    }

    package samplePackageB.b
    {
        import samplePackageB.a.ChildClass;
        public class ContainingClass extends MovieClip
        {
            public var childClassInstance:ChildClass;
            ...
        }
    }

我将 ChildClass 添加到库组件的组件定义中。我可以在舞台上的那个库组件的实例的组件参数中读取/设置 ParentClass ChildClass 的可检查属性。

然而,当我尝试导出此.fla文件的.swf时,我得到编译器错误1119 ,声明我“正在访问(可能)未定义的属性 childProperty 通过静态类型 ParentClass “。

的引用

我发现的唯一类似问题可以查看here,但似乎也没有最终解决(或解释)。

0 个答案:

没有答案