我正在涉足游戏设计并尝试为游戏创建一些角色。现在我刚刚创建了一个包含矩形的MovieClip。 MovieClip符号扩展了我在Flash Builder中创建的类,该类实现了怪物的逻辑。然后我可以将这个怪物符号的实例从库拖到舞台上,当我运行模拟时代码可以工作。到目前为止,非常好。
现在我想创建几个怪物,都略有不同:
public class Monster extends MovieClip
{
public var isFriendly:Boolean = true;
public var strength:int = 10;
public var catchPhrase:String = "Booyah!";
public function Monster()
{
}
}
这样做的一种方法是为扩展Monster的每个怪物编写一个新类,并在构造函数中设置我想要的属性(我还必须在库中为每个变体创建一个唯一的符号) 。但是,如果我的怪物只因其属性值不同,这似乎有点过分了。
查看Flash Professional使用界面,我看到在“属性”面板的最底部是一个看起来像一个以“属性/值”为首的小表的部分。我可以使用它以某种方式从Flash Professional UI中设置我的类的属性吗?我找不到有关如何使用它的任何信息。
答案 0 :(得分:0)
好的,我明白了。关键是将我的符号转换为flash组件。
首先,我编辑了我的ActionScript类,以导出我想要设置的属性(包括Inspectable标记):
public class Monster
{
private var _catchPhrase:String;
public function Monster()
{
}
public function get catchPhrase():String
{
return _catchPhrase;
}
[Inspectable(name = "catchPhrase", type = String, defaultValue = "Booyah!")]
public function set catchPhrase(value:String):void
{
_catchPhrase = value;
}
}
然后我右键单击我库中的Monster符号并选择“Component Definition ...”。这会打开“组件定义”对话框。然后,我在“类”字段中输入了ActionScript类的名称,然后单击复选标记以对其进行验证。 Flash然后自动生成我需要的属性。
我还发现本教程很有帮助: http://redbjarne.wordpress.com/actionscript-3-0-custom-components-from-hell/