【发布时间】:2012-02-07 18:06:10
【问题描述】:
我正在构建一个小工具,让用户可以在屏幕上放置一些几何图形,然后移动它们并更改它们的属性。我对 as3/flex 很陌生。
图形在 as3 中表示为对象。所以我们有了具有不同属性的 Circle、Triangle、Rectangle 类。
我喜欢做的是在用户选择图形时显示某种“对象检查器”。此检查器窗口类似于许多 IDE 中的类似内容。
现在的问题是:是否可以利用 as3 [Inspectable] 标签获取属性列表并在运行时更改它们?
如果不可能,那么如果不编写特定类型的代码来编辑每个对象,您将如何解决这个问题?
编辑:
只是为了澄清。考虑这个例子:
public class Shape { /* ... */ }
public class Triangle extends Shape {
public var a:Number;
public var h:Number;
//...
}
public class Circle extends Shape {
public var r:Number;
public var name:String;
//...
}
我想让用户能够从Triangle 和r 编辑a、h 和r、name 从Circle。
根据我现在的想象,我可以走两条路:
使
Triangle和Circle实现IMyInspectable并为每种类型编写自定义getProperties():Dictionary、getProperty(name:String):Object和setProperty(name:String, value:Object):void方法。这将涉及完全不雅的切换意大利面。我忘记输入第一个解决方案的时间了。 :(
【问题讨论】:
-
你不能用创可贴修复刀伤。
-
我发现了这个:negush.net/blog/listing-the-properties-of-an-object 问题是它不适合我:[
-
我的应用程序的运行时当然。 “那么至少选择一个不同的标签”什么标签? :) 我的主要问题是我不知道如何实现这样的东西,更不用说为它制作标签了。
标签: flash actionscript-3 apache-flex