我对 ActionScript 3 非常陌生,但我一直在逐步构建一个类似“坦克”的小型射击游戏,现在我正准备添加子弹射击,为此我制作了一个新的 AS3 类和导入它等,但是当我运行游戏时出现错误:
调用可能未定义的方法
turretShot
请帮助我找出为什么会发生这种情况。此错误在我的编译器错误中显示了两次,并且它所针对的行非常相似,以下是受影响的代码部分:
shootTurret.as(类文件)
package resources
{
import flash.display.*;
import flash.events.*;
public class turretShot extends MovieClip
{
var enemy_mc:MovieClip;
public function turretShot(enemy_mc:MovieClip)
{
var xSpeed:Number;
var ySpeed:Number;
var angle:Number;
public var shotSpeed:Number;
speed = 30;
var gravity:Number = 1;
var thisShot:MovieClip;
var platform1_mc:MovieClip;
var platform2_mc:MovieClip;
var thisParent: *;
enemy_mc = enemy;
this.addEventListener(Event.ADDED, initialize);
}
function initialize(event:Event):void
{
this.addEventListener(Event.ENTER_FRAME, moveShot);
thisParent = event.currentTarget.parent;
platform1_mc = thisParent.platform1_mc;
platform2_mc = thisParent.platform2_mc;
thisShot = MovieClip(this.parent.getChildByName(this.name));
angle = this.rotation / 180 * Math.PI;
xSpeed = Math.cos(angle) * speed;
ySpeed = Math.sin(angle) * speed;
}
function moveShot(event:Event):void
}
}
我已经在我的游戏 .FLA 动作脚本中导入了这个必要的框架:
import resources.*;
因为我的类文件位于游戏目录的“资源”文件夹中。
现在,抛出这些错误的两段代码......不确定是与它们有关还是与类有关,但它们是:
(第四行)
var shot_mc:MovieClip;
if (keyPressed == Keyboard.SPACE && spaceKeyDown == false)
{
shot_mc = new turretShot(enemy_mc);
shot_mc.x = user_mc.x + user_mc.turret_mc.x;
shot_mc.y = user_mc.y + user_mc.turret_mc.y;
shot_mc.rotation = user_mc.turret_mc.rotation;
addChild(shot_mc);
spaceKeyDown = true;
}
和(第一行):
var shot_mc:MovieClip = new turretShot(user_mc);
shot_mc.x = enemy_mc.x + enemy_mc.enemyTurret_mc.x;
shot_mc.y = enemy_mc.y + enemy_mc.enemyTurret_mc.y;
shot_mc.rotation = enemyTargetRotation;
shot_mc.speed = Math.random() * 15 + 15;
addChild(shot_mc);
任何帮助,将不胜感激。