我在一个带有“bgdemo”实例的movieclip中有一个名为“trainglePoint”的影片剪辑链接,我想知道如何让“trianglePoint”工作。
“gags”也是获得“trianglePoint”的角色
这是我的代码,不起作用。
谢谢!
编辑:忘了添加'trianglePoint'多次上台(不知道是否有帮助)
var pickUpsArray:Array = new Array();
stage.addEventListener (Event.ENTER_FRAME, pickUpItems);
public function pickUpItems (e:Event)
{
for (var i=0; i<numChildren;i++)
{
if (getChildAt(i) is bgdemo.trianglePoint)
{
pickUpsArray.push(getChildAt(i));
}
}
for (var j=0; j<pickUpsArray.length;j++)
{
if (gags.hitTestObject (pickUpsArray[j]))
{
removeChild(pickUpsArray[j]);
trace ("hitTestObject: YES");
}
}
}
答案 0 :(得分:1)
您应该使用GetChildByName(name)。 GetChildAt意味着您知道所需子项在子层中的位置。 因此,如果您的孩子被命名为&#34; trianglePoint&#34;并且您想要访问它,只需使用getChildByName(&#34; trianglePoint&#34;);
其余代码存在一些问题。 首先,你推入一个数组,但永远不会删除它。使用removechild不会从数组中删除对象,这意味着您将始终测试它与&#34; gags&#34;的冲突。
另一个问题是您在每个帧中将对象添加到数组中。你应该做的是从GetChildByName获取你的对象,将它推入数组THEN循环并与之交互。
我会这样做:
import flash.display.MovieClip
public class bgdemo extends MovieClip
{
var pickUpsArray:Array
public function bgdemo()//constructor for your parent movieclip
{
pickUpsArray = new Array();
this.addEventListener (Event.ADDED_TO_STAGE, init_ok);
//this is to ensure the parent movieclip (bgdemo) is on the stage and we can access its children.
}
private function init_ok(e:Event):void
{
this.removeEventListener(Event.ADDED_TO_STAGE, init_ok);
//removing the listener so that we only do this once
pickUpsArray.push(this.getChildByName("trianglePoint"));
stage.addEventListener (Event.ENTER_FRAME, pickUpItems);
}
private function pickUpItems (e:Event):void
{
for (var j=0; j<pickUpsArray.length;j++)
{
if (gags.hitTestObject (pickUpsArray[j]))
{
removeChild(pickUpsArray[j]);
pickUpsArray.splice(j, 1); //removing the object from the array so we can't collide with it anymore
trace ("hitTestObject: YES");
}
}
}
}
您可以在bgdemo movieclip的构造函数中创建一个新数组,并为影片剪辑添加到舞台的事实添加一个侦听器。将movieclip添加到舞台上时,(删除&#34;添加到舞台监听器&#34;),让您的孩子将其添加到数组并添加一个监听器来输入框架。 然后在每个帧上测试数组中的每个对象(此时仅为1)和#34; gags&#34;。如果gags和对象发生碰撞,则从显示列表和数组中删除该对象。
尝试并告诉我它是否有效(您希望它的工作方式)。如果它不是您想要的,那么请更准确地说明您原来的帖子;)