【发布时间】:2014-07-04 16:24:36
【问题描述】:
我希望标题不会太混乱。 我知道您可以访问另一个影片剪辑中的影片剪辑,就像我所做的那样;
function allowResourceCollection():void {
caveman.btn_CollectResources2.addEventListener(TouchEvent.TOUCH_TAP, checkResourceCollection);
}
但我现在已经更改了它,以便在影片剪辑 caveman 内部有另一个影片剪辑 cavemanmenu 是 AS Linkage btncavemanMenu 和内部cavemanmenu 是 btn_CollectResources2 所以我尝试了以下方法;
function allowResourceCollection():void {
caveman.cavemanmenu.btn_CollectResources2.addEventListener(TouchEvent.TOUCH_TAP, checkResourceCollection);
}
我得到了这个错误;
TypeError:错误 #1009:无法访问 null 的属性或方法 对象引用。在 stoneApp_new_fla::MainTimeline/allowResourceCollection()[stoneApp_new_fla.MainTimeline::frame1:104]
我对发生的事情感到非常困惑。我要做的就是点击caveman,弹出cavemanmenu,我可以点击嵌套在btn_CollectResources2中的强>穴居人菜单。这是该部分中的所有代码,以便您理解;
var myMovieClip:MovieClip = new btncavemanMenu();
//Caveman Menu
function allowTapCaveman():void {
caveman.addEventListener(TouchEvent.TOUCH_TAP, cavemanMenu);
}
function cancelTapCaveman():void {
caveman.removeEventListener(TouchEvent.TOUCH_TAP, cavemanMenu);
}
function cavemanMenu(event:TouchEvent):void {
addChild(myMovieClip);
myMovieClip.x = caveman.x;
myMovieClip.y = caveman.y;
//myMovieClip.addEventListener(TouchEvent.TOUCH_TAP, cavemanMenu);
//caveman.gotoAndStop(2);
//trace('2');
if (caveman.currentFrame == 2){
cancelTapCaveman();
allowTapCavemanClose();
}
}
function allowTapCavemanClose():void {
caveman.addEventListener(TouchEvent.TOUCH_TAP, cavemanMenuClose);
}
function cancelTapCavemanClose():void {
caveman.removeEventListener(TouchEvent.TOUCH_TAP, cavemanMenuClose);
}
function cavemanMenuClose(event:TouchEvent):void {
cancelTapCavemanClose();
removeChild(myMovieClip);
//caveman.gotoAndStop(1);
allowTapCaveman();
//trace('1');
}
function allowResourceCollection():void {
caveman.btncavemanMenu.btn_CollectResources2.addEventListener(TouchEvent.TOUCH_TAP, checkResourceCollection);
}
function cancelResourceCollection():void {
caveman.btn_CollectResources2.removeEventListener(TouchEvent.TOUCH_TAP, checkResourceCollection);
}
function checkResourceCollection(event:TouchEvent):void {
if(remaningActions >= 1){
spawnWood();
spawnFood();
spawnStone();
remaningActions -= 1;
updateTextBox();
}
if(remaningActions <= 0){
trace("not enough actions")
}
}
如您所见,我曾经拥有它,所以它只会更改电影剪辑 caveman 中的帧,但因为我需要创建多个 caveman,所以我需要无论他们身在何处,都能够在他们下方弹出菜单,并创建一个孩子并将其带入,这是我能找到的唯一方法。谢谢。
【问题讨论】:
标签: actionscript-3 flash