GameWorld.as,第 96 行 1180:调用可能未定义的方法初始化。
我正在向实现 IController 的 GameWorld 添加一个控制器:
addController(new BackgroundController(this));
public function addController(controller:IController):void
{
controller.initialize();
controllers.push(controller);
}
public interface IController
{
function initialize():void; //setup the controller
function getType():String; //define the controller by a type string
function update():void; //perform update actions
function destroy():void; //cleanup the controller
}
initialize 是来自 IController 的方法,但现在突然未定义
我没有收到任何语法错误,而且似乎无法将我的代码恢复到工作状态。
这可能是什么原因造成的?
这是背景控制器:
package controller
{
import Entity;
import flash.display.Bitmap;
import flash.display.Sprite;
public class BackgroundController implements IController
{
private var world:GameWorld;
private var images:Vector.<Bitmap>;
private var bgImage:Sprite;
public function BackgroundController(world:GameWorld)
{
this.world = world;
}
public function initialize():void
{
bgImage = new Sprite();
images = new Vector.<Bitmap>();
var ypos:int = 0;
for (var i:int = 0; i < 3; i++ )
{
var tempBmp:Bitmap = new Bitmap(new grasstile(0, 0));
images.push(tempBmp);
bgImage.addChild(tempBmp);
tempBmp.y = ypos;
ypos += 500;
}
GameWorld.lowerLayer.addChild(bgImage);
}
public function update():void
{
//update the background tiles
for (var i:int = 0; i < 3; i++ )
{
images[i].y -= world.gameSpeed;
if (images[i].y < -500 )
{
images[i].y += 1500;
}
}
}
public function getType():String
{
return "Background";
}
public function destroy():void
{
}
}
}