我有一个名为navbar的MovieClip,它上面有按钮。如何将按钮连接到MovieClip,以便在移动MovieClip时按钮随之移动?我已经能够使导航栏可拖动,但按钮不会随之拖动。
我尝试了以下内容:
navbar.addChild(button1);
这只是让按钮消失了。
答案 0 :(得分:1)
您的方法是正确的:将按钮作为子项添加到MovieClip将允许所有按钮作为一个项目移动。
按钮消失可能有多种原因,例如x和y现在相对于新父母(即设置按钮y到600现在距离导航栏600像素,而不是来自舞台或旧父母)。
尝试注释掉您在按钮上设置的任何属性,看看是否能解决问题,从那里您可以确定哪个属性导致按钮消失。
所以你基本上应该有这样的东西:
var button1:Button = new Button();
navbar.addChild(button1);
即使使用最小代码也不会导致导航栏上显示按钮,您需要发布更多代码,以便我们可以看到问题发生的位置。
答案 1 :(得分:1)
如您所愿,如果您希望navbar
和按钮充当独特元素,您需要将按钮放在navbar
内,而不仅仅放在它上面。
按钮消失的原因是因为它已经放在Designer的舞台上,所以当你将它添加到navbar
时,你将它放到两个不同的显示堆栈中,这是不允许的
您应该将按钮放在Designer中的navbar
内,或者将它们导出为AS,然后动态实例化,如下所示:
var btn:Button1 = new Button1()
navbar.addChild(btn)
在导出for ActionScript 下的库的 MovieClip属性窗口中分配了类名Button1
。
答案 2 :(得分:1)
你可以计算从Movieclip的X,Y到按钮的距离,你可以编写如下代码:
var diff1:int = navbar.x - example_button1.x;
stage.addEventListener(Event.ENTER_FRAME, function(event:Event):void{
example_button1.x=navbar.x-diff1;
});
你可以复制example_buttons和diff变量。
或者你可以使用相同的事件监听器startDrag()
同时进行
navbar.addEventListener(someEvent.some, function(event:someEvent):void{
MovieClip(root).navbar.startDrag();
MovieClip(root).example_button1.startDrag();
});
MovieClip(root)
可让您影响主舞台。使用此属性,您可以从导航栏内部生成对象。