Actionscript 3 AS3用于将MC1的暂停位置转移到MC2
嗨,我是个新手,需要一些代码。我有三个MCs,分别是Actionscript 3 AS3用于将MC1的暂停位置转移到MC2,actionscript-3,flash,position,adobe,playback,Actionscript 3,Flash,Position,Adobe,Playback,嗨,我是个新手,需要一些代码。我有三个MCs,分别是MC1、MC2和MC3。我将有3个专用按钮,将暂停一个MC的音乐,并将帧位置转移到另一个MC,然后开始播放。比如说,如果MC2正在播放,我按下MC3按钮,我希望它处于MC2(不是MC1)的暂停位置,并从MC3上的该帧继续播放,以及将视觉效果从MC2切换到MC3。这是一个多语言应用程序,所有3个MC都具有相同的帧长。换句话说,我想在不同的语言之间切换。 提前谢谢,任何帮助都会很好 编辑:到目前为止我还没有 mtlyrvult.stop(); it
MC1
、MC2
和MC3
。我将有3个专用按钮,将暂停一个MC的音乐,并将帧位置转移到另一个MC,然后开始播放。比如说,如果MC2
正在播放,我按下MC3
按钮,我希望它处于MC2
(不是MC1
)的暂停位置,并从MC3
上的该帧继续播放,以及将视觉效果从MC2
切换到MC3
。这是一个多语言应用程序,所有3个MC都具有相同的帧长。换句话说,我想在不同的语言之间切换。
提前谢谢,任何帮助都会很好
编辑:到目前为止我还没有
mtlyrvult.stop();
itlyrvult.stop();
engvult.addEventListener(MouseEvent.CLICK, playMC1);
function playMC1(e:MouseEvent):void {
itlyrvult.stop();
enlyrvult.gotoAndPlay(itlyrvult.currentFrame);
itlyrvult.gotoAndStop(1); //frame one is empty
engvult.mouseEnabled = false;
itvult.mouseEnabled = true;
}
itvult.addEventListener(MouseEvent.CLICK, playMC2);
function playMC2(e:MouseEvent):void {
enlyrvult.stop();
itlyrvult.gotoAndPlay(enlyrvult.currentFrame);
enlyrvult.gotoAndStop(1); //frame one is empty
itvult.mouseEnabled = false;
engvult.mouseEnabled = true;
}
这将从一种语言切换到另一种语言。现在我的客户给了我另一种语言<代码>mtlyrvult。我不知道AS3如何识别哪个mc正在播放,以从中获取pauseposition/currentframe。我坚持您的代码(没有类、方法、成员、addChild等)。我没有使用Flash或SDK尝试最终草稿
我假设你有:
- 3个对象:
,enlyrvult
,itlyrvult
李>mtlyrvult
- 3(SimpleButton、MovieClip等)对象:
,engvult
,itvult
李>mtvult
- 当我们从这里开始时,
正在播放(如果不是:enlyrvult
或enlyrvult.play();
)李>enlyrvult.stop();
或者,你想要多少(300?)
// add to your import:
import flash.utils.Dictionary;
// in your const/var section
const STARTING_FRAME:int = 1;
var dict = new Dictionary(); // mapping and memory
var currentTrack:MovieClip; // we will know who's last
initAll();
playTrack(enlyrvult, STARTING_FRAME, engvult);
function clickHandler(e:MouseEvent):void {
var playheadFrame:int = currentTrack.currentFrame; // we remember position
var trigger:InteractiveObject = (e.currentTarget as InteractiveObject); // who shot me ?
var nextTrack:MovieClip = (dict[trigger] as MovieClip); // who's next ?
resetAll(); // and again.. (http://en.wikipedia.org/wiki/Sisyphus)
playTrack(nextTrack, playheadFrame, trigger);
}
function playTrack(mc:MovieClip, fram:int, iObj:InteractiveObject):void {
currentTrack = mc;
currentTrack.gotoAndPlay(fram);
iObj.mouseEnabled = false;
}
function resetAll():void {
for (var key:InteractiveObject in dict) { key.mouseEnabled = true; }
for each (var value:MovieClip in dict) { value.gotoAndStop(1); } // diff-> each
}
function initAll():void {
dict[engvult] = enlyrvult;
dict[itvult] = itlyrvult;
dict[mtvult] = mtlyrvult;
//dict[avult] = alyrvult; //<- new one like this: dict[trigger]=lyrMC; add as much as you can!
for (var key:InteractiveObject in dict) {
key.addEventListener(MouseEvent.CLICK, clickHandler);
}
resetAll();
}
//添加到导入中:
导入flash.utils.Dictionary;
//在const/var部分
常量起始帧:int=1;
var dict=new Dictionary();//映射和内存
var currentTrack:MovieClip;//我们将知道谁是最后一个
initAll();
播放曲目(enlyrvult,起始帧,engvult);
函数clickHandler(e:MouseeEvent):无效{
var playheadFrame:int=currentTrack.currentFrame;//我们记住了位置
变量触发器:InteractiveObject=(e.currentTarget作为InteractiveObject);//谁杀了我?
var nextTrack:MovieClip=(dict[trigger]作为MovieClip);//下一个是谁?
resetAll();//然后重试(http://en.wikipedia.org/wiki/Sisyphus)
playTrack(nextTrack、playheadFrame、触发器);
}
函数播放轨迹(mc:MovieClip,fram:int,iObj:InteractiveObject):无效{
currentTrack=mc;
currentTrack.gotoAndPlay(fram);
iObj.mouseEnabled=false;
}
函数resetAll():void{
对于(var key:dict中的InteractiveObject){key.mouseEnabled=true;}
对于每个(var值:dict中的MovieClip){value.gotoAndStop(1);}//diff->each
}
函数initAll():void{
dict[engvult]=enlyrvult;
dict[itvult]=itlyrvult;
dict[mtvult]=mtlyrvult;
//dict[avult]=alyrvult;//您能发布一些代码行吗,这将有助于理解您正在尝试做什么?更新的问题。谢谢您,“以及将视觉效果从MC2
切换到MC3
是什么意思?”意思是说无论哪一个mc被暂停,都需要“消失”为新mc腾出空间。这就是gotoAndStop(1)。mc的第一帧是空的。我想我明白了。请看我的答案。如果有什么问题,请告诉我。
// add to your import:
import flash.utils.Dictionary;
// in your const/var section
const STARTING_FRAME:int = 1;
var dict = new Dictionary(); // mapping and memory
var currentTrack:MovieClip; // we will know who's last
initAll();
playTrack(enlyrvult, STARTING_FRAME, engvult);
function clickHandler(e:MouseEvent):void {
var playheadFrame:int = currentTrack.currentFrame; // we remember position
var trigger:InteractiveObject = (e.currentTarget as InteractiveObject); // who shot me ?
var nextTrack:MovieClip = (dict[trigger] as MovieClip); // who's next ?
resetAll(); // and again.. (http://en.wikipedia.org/wiki/Sisyphus)
playTrack(nextTrack, playheadFrame, trigger);
}
function playTrack(mc:MovieClip, fram:int, iObj:InteractiveObject):void {
currentTrack = mc;
currentTrack.gotoAndPlay(fram);
iObj.mouseEnabled = false;
}
function resetAll():void {
for (var key:InteractiveObject in dict) { key.mouseEnabled = true; }
for each (var value:MovieClip in dict) { value.gotoAndStop(1); } // diff-> each
}
function initAll():void {
dict[engvult] = enlyrvult;
dict[itvult] = itlyrvult;
dict[mtvult] = mtlyrvult;
//dict[avult] = alyrvult; //<- new one like this: dict[trigger]=lyrMC; add as much as you can!
for (var key:InteractiveObject in dict) {
key.addEventListener(MouseEvent.CLICK, clickHandler);
}
resetAll();
}