简短说明:
我有一个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,但似乎也没有最终解决(或解释)。