目前,我对flash中的课程还很新。我一直在观看大量有关它们的视频,我正在尝试更多地了解面向对象编程。
说到这里,我开始定义变量并将它们分配给我的库中的符号,所有这些都在我的类文件中。当我在我的代码中使用这些变量时,会收到一条错误消息弹出窗口,其中显示以下内容
错误讯息:
TypeError:错误#1009:无法访问空对象引用的属性或方法。 在Movement()[C:\ Users \ Kevin \ Main Directory \ Flash \ Clients \ org \ tcdsb \ ZenithsReach \ Movement.as:12] 在game / frame1()[game :: frame1:4] 在运行时:: ContentPlayer / loadInitialContent() 在运行时:: ContentPlayer / playRawContent() 在运行时:: ContentPlayer / playContent() 在运行时:: AppRunner / run() 在ADLAppEntry / run() 在global / runtime :: ADLEntry()
我的Movement.as类文件:
package
{
import flash.display.MovieClip;
import flash.events.TouchEvent;
public class Movement extends MovieClip
{
function Movement()
{
trace("SUCCESS | Constructed Movement Class");
down_dpad.addEventListener(TouchEvent.TOUCH_BEGIN, moveDownTouchBEGIN);
down_dpad.addEventListener(TouchEvent.TOUCH_END, moveDownTouchEND);
var inMotion:Boolean = false;
var area1:Boolean = true;
var area2:Boolean = false;
var area3:Boolean = false;
var player1:Boolean = true;
var playerPosKeeper_mc:MovieClip = new mc_PlayerPosKeeper ;
addChild(playerPosKeeper_mc);
playerPosKeeper_mc.x = 384;
playerPosKeeper_mc.y = 46;
var up_dpad:MovieClip = new dpad_Up ;
addChild(up_dpad);
up_dpad.x = 55;
up_dpad.y = 346;
var down_dpad:MovieClip = new dpad_Down ;
addChild(down_dpad);
down_dpad.x = 57;
down_dpad.y = 442;
var left_dpad:MovieClip = new dpad_Left ;
addChild(left_dpad);
left_dpad.x = 19;
left_dpad.y = 382;
var right_dpad:MovieClip = new dpad_Right ;
addChild(right_dpad);
right_dpad.x = 118;
right_dpad.y = 382;
var menu_dpad:MovieClip = new dpad_Menu ;
addChild(menu_dpad);
menu_dpad.x = 61;
menu_dpad.y = 386;
var run_dpad:MovieClip = new dpad_Menu ;
addChild(run_dpad);
run_dpad.x = 684;
run_dpad.y = 386;
var barrierRoof1_game:MovieClip = new game_BarrierRoof ;
addChild(barrierRoof1_game);
barrierRoof1_game.x = 0;
barrierRoof1_game.y = 0;
var barrierRoof2_game:MovieClip = new game_BarrierRoof ;
addChild(barrierRoof2_game);
barrierRoof2_game.x = 0;
barrierRoof2_game.y = 470;
var barrierSide1_game:MovieClip = new game_BarrierSide ;
addChild(barrierSide1_game);
barrierSide1_game.x = 790;
barrierSide1_game.y = 0;
function moveDownTouchBEGIN(e:TouchEvent):void
{
if (player1 == true)
{
if (area1 == true)
{
if (playerPosKeeper_mc.hitTestObject(barrierRoof1_game))
{
}
}
else
{
// add other areas in the future
}
}
else
{
// if your not player1, then we need to find out what you are,
// and give you the proper walking animations
}
}
function moveDownTouchEND(e:TouchEvent):void
{
}
}
}
}
答案 0 :(得分:3)
你已经完成了......
down_dpad.addEventListener(TouchEvent.TOUCH_BEGIN, moveDownTouchBEGIN);
在行
创建down_dpad对象之前 var down_dpad:MovieClip = new dpad_Down ;
所以只需将其移动
您也忘记了班级的括号:
必须new dpad_Down();
才能正常工作......不是当前使用的new dpad_Down ;