我正在制作一个动作脚本3中的游戏。在其中,我有一个角色类,玩家和敌人类将从其中派生。我这样做的目的是,除非我需要提供特定的AI或花哨的行为(比如老板),否则我可以在库中为每个敌人创建一个新的剪辑,而不需要创建一个actionscript文件。
然而,我遇到了一个问题。
每当我试图将参数传递给敌人的构造(使其更健康)时,我得到错误1136 (参数数量不正确)。
这是因为在运行时自动创建的构造函数没有与它的父类相同的参数。有没有办法绕过这个问题,而不是生成一个类文件,在这个文件中,我为数百个敌人复制并粘贴了父构造函数?
发布于 2012-04-15 06:09:46
编辑实际上是在重读你的问题,我想你可能在寻找();
示例
public class Actor{
private var myHelth:uint;
public function Actor(helth:uint = 100){
myHelth = helth; //this will be set to 100 if nothing it passed in or the value passed
}
}扩展Actor的类:
public class Boss extends Actor{
public function Boss(){
super(200); //passes 200 to Actor;
}
}如果您试图将数据传递到一个类构造函数中,则需要确保它接受参数。
public class Actor{
private var myHelth:uint;
public function Actor(helth:uint = 100){
myHelth = helth; //this will be set to 100 if nothing it passed in or the value passed
}
}然后使用
var a:Actor = new Actor(200); //setting health to 200
var b:Actor = new Actor(); //using the default of 100发布于 2012-04-15 06:17:39
确保Flash Pro中的元件具有适当的AS链接,然后在超级语句中使用传递构造函数参数:
执行元基类
package
{
public class Actor
{
public function Actor(name:String, role:String)
{
}
}
}Player -继承Actor定义自己的构造函数参数:
package
{
public final class Player extends Actor
{
public function Player(... params:Array)
{
// pass desired inherited constructor parameters
super("name", "role");
}
}
}敌人-从定义自己的构造函数参数的Actor继承:
package
{
public final class Enemy extends Actor
{
public function Enemy(... params:Array)
{
// pass desired inherited constructor parameters
super("name", "role");
}
}
}https://stackoverflow.com/questions/10155326
复制相似问题