AS3在另一个孩子的位置添加Child

时间:2014-07-21 09:40:38

标签: actionscript-3

嘿,我有一些穴居人,当他们建造小屋时,我希望将小屋添加到我最后点击的穴居人的坐标上,这需要能够准确知道用户点击/敲击的穴居人。以下是穴居人产卵的代码:

//////////////////////
///Starting Cavemen///
//////////////////////
var cavemanVar:Array = new Array(50);
for (var i:Number = 0; i < 50; i++)
{
    cavemanVar[i] = 0;
}
var foo:MovieClip = new btn_caveman();
cavemanVar[0] = addChildAt(foo, 7);
var bar:MovieClip = new btn_caveman();
cavemanVar[1] = addChildAt(bar, 7);
cavemanVar[0].x = 335.50;
cavemanVar[0].y = 316.55;
cavemanVar[1].x = 335.50;
cavemanVar[1].y = 369.5;
stage.addEventListener(Event.ENTER_FRAME, example2);
function example2 (evt:Event) {
    for (i = 0; i < 50; i++)
    {
        if (cavemanVar[i] != 0)
        {
            cavemanVar[i].addEventListener(TouchEvent.TOUCH_TAP, btn_cavemanMenu3);
        }
    }
}    

function option1CavemenSpawn():void {
    trace("using option 1")
    actions += 1;
    score += 5;
    remaningActions += 1;
    updateTextBox();
    var foo6:MovieClip = new btn_caveman();
    cavemanVar[2] = addChildAt(foo6, 7);
    cavemanVar[2].x = 352.10;
    cavemanVar[2].y = 260.80 + Math.random() * (392.40 - 260.80);
    }

任何帮助都会很棒,我尝试过使用“穴居人”,“穴居人”[2]&#39;,#cave; RV [i]&#39;没有什么是我想要的。 希望我解释得恰到好处,这是一件很难解释的事情。我还有一个想要实现的移动穴居人功能,可以选择最后点击/点击的穴居人并将其移动到用户点击/点击的位置,这样就可以完成任何操作,如果是这样的话?

编辑:

function btn_cavemanMenu3(event:TouchEvent):void {
    btn_cavemanM.gotoAndStop(2);
    trace('2');
    allowBuildHut();
    cancelTapCaveman();
    allowTapCavemanClose();
    if (remaningActions <= 2 || stone <= 29) {
            cancelBuildHut();
    }
}

2 个答案:

答案 0 :(得分:0)

你的意思是,

cavemanVar[i].addEventListener(TouchEvent.TOUCH_TAP, onTap);

function onTap(e:TouchEvent):void {
    var caveman:btn_caveman = e.currentTarget as btn_caveman;
    trace("caveman tapped --- (" + caveman.x + ", " + caveman.y + ")");
}

答案 1 :(得分:0)

好的,我立即注意到了一些事情:

  • 一次又一次地为每个帧附加eventListeners。如果你让你的游戏更大,这将使你的游戏变慢。我不确定,但我认为具有相同参数的多个事件监听器不会堆叠,所以它不是那么糟糕。
  • 缺少example2的返回类型。

但除此之外,我认为您尝试做的事情不起作用的原因是因为您没有在btn_cavemanMenu3函数中引用选定的穴居人。通过event.currentTarget,您可以参考被挖掘的穴居人。

目前,您的问题名称和您的问题描述存在冲突。你到底想要达到什么目的?什么在起作用,什么不起作用?