首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionScript3:从父级继承构造函数参数

ActionScript3:从父级继承构造函数参数
EN

Stack Overflow用户
提问于 2012-04-15 00:36:12
回答 2查看 480关注 0票数 0

我正在制作一个动作脚本3中的游戏。在其中,我有一个角色类,玩家和敌人类将从其中派生。我这样做的目的是,除非我需要提供特定的AI或花哨的行为(比如老板),否则我可以在库中为每个敌人创建一个新的剪辑,而不需要创建一个actionscript文件。

然而,我遇到了一个问题。

每当我试图将参数传递给敌人的构造(使其更健康)时,我得到错误1136 (参数数量不正确)。

这是因为在运行时自动创建的构造函数没有与它的父类相同的参数。有没有办法绕过这个问题,而不是生成一个类文件,在这个文件中,我为数百个敌人复制并粘贴了父构造函数?

EN

回答 2

Stack Overflow用户

发布于 2012-04-15 06:09:46

编辑实际上是在重读你的问题,我想你可能在寻找();

示例

代码语言:javascript
复制
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的类:

代码语言:javascript
复制
public class Boss extends Actor{
     public function Boss(){
          super(200); //passes 200 to Actor;
     }
}

如果您试图将数据传递到一个类构造函数中,则需要确保它接受参数。

代码语言:javascript
复制
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
     }
}

然后使用

代码语言:javascript
复制
 var a:Actor = new Actor(200); //setting health to 200

 var b:Actor = new Actor(); //using the default of 100
票数 1
EN

Stack Overflow用户

发布于 2012-04-15 06:17:39

确保Flash Pro中的元件具有适当的AS链接,然后在超级语句中使用传递构造函数参数:

执行元基类

代码语言:javascript
复制
package
{

    public class Actor
    {
        public function Actor(name:String, role:String)
        {
        }
    }
}

Player -继承Actor定义自己的构造函数参数:

代码语言:javascript
复制
package
{

    public final class Player extends Actor
    {
        public function Player(... params:Array)
        {
            // pass desired inherited constructor parameters
            super("name", "role");
        }
    }
}

敌人-从定义自己的构造函数参数的Actor继承:

代码语言:javascript
复制
package
{

    public final class Enemy extends Actor
    {
        public function Enemy(... params:Array)
        {
            // pass desired inherited constructor parameters
            super("name", "role");
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10155326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档