【问题标题】:Line 2? 1046: Type was not found or was not a compile-time constant: shield2号线? 1046:未找到类型或不是编译时常量:屏蔽
【发布时间】:2014-07-16 20:45:31
【问题描述】:

1046:找不到类型或不是编译时常量:屏蔽。 我正在尝试制作射击游戏,但此错误不断弹出。它说错误是第 2 行,但第 2 行没有任何内容!我不明白!

包装{

import flash.display.MovieClip;
import flash.events.Event;
import flash.ui.Keyboard;

public class Ship extends MovieClip{

    var velocity:Number;
    var shootLimiter:Number;
    var health:Number;
    var maxHealth:Number; 

        function Ship(){

        velocity = 10;
        shootLimiter = 0;
        health = 100;
        maxHealth = 100;
        addEventListener("enterFrame", move);

    }

    function kill(){

        var explosion = new Explosion();
        stage.addChild(explosion);
        explosion.x = this.x;
        explosion.y = this.y;

        removeEventListener("enterFrame", move);
        this.visible = false;

        Game.gameOver();

    }

    function takeDamage(d){

        health -= d;

        if(health<=0){
            health = 0;
            kill();
        }

        Game.healthMeter.bar.scaleX = health/maxHealth;

    }

    function move(e:Event){

        shootLimiter += 1;

        if(Key.isDown(Keyboard.D)){
            this.x = this.x + velocity;
        }
        if(Key.isDown(Keyboard.A)){
            this.x = this.x - velocity;
        }
        if(Key.isDown(Keyboard.W)){
            this.y = this.y - velocity;
        }
        if(Key.isDown(Keyboard.S)){
            this.y = this.y + velocity;
        }
        if(Key.isDown(Keyboard.SPACE) && shootLimiter > 8){
            shootLimiter = 0;
            var b = new Bullet();
            stage.addChild(b);
            b.x = this.x + 50;
            b.y = this.y + 3;
        }

        if(shield.visible == true){
            shield.alpha -= 0.0005;
            if(shield.alpha == 0){
                shield.visible = false;
                shield.alpha = 1;
            }
        }

    } 

}

}

【问题讨论】:

  • 您的 Ship 影片剪辑中是否有一个名为“shield”的影片剪辑?
  • 没有。我该怎么办?
  • 嗯,你一定有一个shield :) 你确定错误是在这个类中吗?因为我不是。寻找类似var myVar:shield

标签: actionscript-3


【解决方案1】:

这里:

    if(shield.visible == true){
        shield.alpha -= 0.0005;
        if(shield.alpha == 0){
            shield.visible = false;
            shield.alpha = 1;
        }
    }

您正在使用变量“屏蔽”而没有声明/实例化它。这不是我希望看到的有关此问题的错误消息,但这是一个问题。
“Ship”是否支持扩展具有“Shield”属性的东西?您是否从其他来源复制并忘记包含它?您提供的代码不完整吗? (只是可能导致这种情况的几种情况。)
无论如何,你需要解决这个问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多