Actionscript 3 AS3多个滚动对象
对AS3来说非常新。对不起,如果这个问题真的很基本,我试着四处寻找正确的答案,但只找到了半相关的问题。请帮忙 目标:我希望在同一舞台上播放多部翻滚电影,独立播放动画 到目前为止,我只有1个行为正常的MovieClip对象。如果我添加另一个,第一个会正常运行,但第二个根本不会出现。我知道它可能只是调用我第一次进入阶段的实例,我需要更改代码,使其具有“主”或父MovieClip,并且这些实例应该是子实例,但我不确定如何在代码中编写它们。最终,我的想法是添加我的孩子们的movieclips,然后稍微更改每个剪辑中的内容 到目前为止,我的代码是:Actionscript 3 AS3多个滚动对象,actionscript-3,actionscript,instance,parent-child,rollover,Actionscript 3,Actionscript,Instance,Parent Child,Rollover,对AS3来说非常新。对不起,如果这个问题真的很基本,我试着四处寻找正确的答案,但只找到了半相关的问题。请帮忙 目标:我希望在同一舞台上播放多部翻滚电影,独立播放动画 到目前为止,我只有1个行为正常的MovieClip对象。如果我添加另一个,第一个会正常运行,但第二个根本不会出现。我知道它可能只是调用我第一次进入阶段的实例,我需要更改代码,使其具有“主”或父MovieClip,并且这些实例应该是子实例,但我不确定如何在代码中编写它们。最终,我的想法是添加我的孩子们的movieclips,然后稍微更
import flash.events.MouseEvent;
clip_boxes.removeEventListener(MouseEvent.ROLL_OUT, clipOut);
clip_boxes.addEventListener(MouseEvent.ROLL_OVER, clipOver);
function clipOver(event:MouseEvent):void {
clip_boxes.addEventListener(MouseEvent.ROLL_OUT, clipOut);
clip_boxes.removeEventListener(MouseEvent.ROLL_OVER,clipOver);
clip_boxes.gotoAndPlay("Over");
};
function clipOut(event:MouseEvent):void {
clip_boxes.addEventListener(MouseEvent.ROLL_OVER, clipOver);
clip_boxes.removeEventListener(MouseEvent.ROLL_OUT, clipOut);
clip_boxes.gotoAndPlay("Out");
};
你也可以在舞台上添加剪辑框的地方张贴代码吗?您是通过拖放或在代码中将它们添加到GUI中的吗 如果是这样,您可能需要在包含所有剪辑框的较大movieclip中创建每个剪辑框的实例。然后,您需要使用clip_box.box1等来引用每个文件 编辑:
哦,我看到你在那里有一张照片。我的错。确保为每个剪辑框指定其唯一的实例名称。您需要使用clip\u-box\u 1、clip\u-box\u 2等。然后在代码中使用clip\u-box\u 1。addEventListen…等。有几种方法可以做到这一点。我将按最坏到最好的顺序列出
clip\u box
是否是您打算播放所有电影剪辑的父时间表,或者它是否是您的电影剪辑本身
假设您有3个具有实例名称的剪辑:MC1
、MC2
、MC3
,您可以这样做(在包含它们的时间线的第一帧上)
首先,非常感谢。其次,我尝试详细地实现继承方法,但它不起作用。它抛出的错误是:SubClass.as,第10行,第40 1046列:找不到类型,或者不是编译时常量?我认为我正确地设置了链接,甚至尝试在主时间轴操作层中调用“MC1.SubClass();”。不走运。我有什么遗漏吗?可能是因为其中一个进口站错了
import Events.MouseEvent
实际上应该是import flash.Events.MouseEvent
-我更新了答案。
MC1.addEventListener(MouseEvent.ROLL_OVER, clipOver);
MC2.addEventListener(MouseEvent.ROLL_OVER, clipOver);
MC3.addEventListener(MouseEvent.ROLL_OVER, clipOver);
//If you had a whole bunch, you could also use a loop to add all the listeners
//you use event.currentTarget to get a referce to the object the listener was attached to - this way you only need this one handler function
function clipOver(event:MouseEvent):void {
MovieClip(event.currentTarget).addEventListener(MouseEvent.ROLL_OUT, clipOut);
MovieClip(event.currentTarget).gotoAndPlay("Over");
};
function clipOut(event:MouseEvent):void {
MovieClip(event.currentTarget).removeEventListener(MouseEvent.ROLL_OUT, clipOut);
MovieClip(event.currentTarget).gotoAndPlay("Out");
};
package {
import flash.display.MovieClip;
import flash.events.MouseEvent;
public class SubClass extends MovieClip {
public function SubClass(){
this.addEventListener(MouseEvent.ROLL_OVER, rollOver,false,0,true);
}
public function rollOver(event:MouseEvent):void {
this.addEventListener(MouseEvent.ROLL_OUT,rollOut,false,0,true);
this.gotoAndPlay("Over");
}
public function rollOut(event:MouseEvent):void {
this.removeEventListener(MouseEvent.ROLL_OUT,rollOut,false);
this.gotoAndPlay("Out");
}
}
}