Actionscript 3 声元';当我使用代码返回到前一个阶段时,我不会停止
我有4个场景,我把我的音乐脚本放在场景2中,然后我跳到场景3,但当我回到场景2并按暂停或停止时,我的音乐不会这样做,但当我播放时,音乐播放,我得到2个音乐开始:(,有人能帮我看脚本吗 我是新手Actionscript 3 声元';当我使用代码返回到前一个阶段时,我不会停止,actionscript-3,button,audio,Actionscript 3,Button,Audio,我有4个场景,我把我的音乐脚本放在场景2中,然后我跳到场景3,但当我回到场景2并按暂停或停止时,我的音乐不会这样做,但当我播放时,音乐播放,我得到2个音乐开始:(,有人能帮我看脚本吗 我是新手 stop(); import flash.events.MouseEvent; import flash.media.SoundChannel; //declaring all variables var isPlaying:Boolean = false;// boolean type of v
stop();
import flash.events.MouseEvent;
import flash.media.SoundChannel;
//declaring all variables
var isPlaying:Boolean = false;// boolean type of variables can be true or false only
var myMusic = new soothing();// saving music in a varaible
var myChannel:SoundChannel = new SoundChannel();// sound channel Class to stop
var lastPosition:Number = 0;
play_btn.addEventListener(MouseEvent.CLICK, onPlayClick);
pause_btn.addEventListener(MouseEvent.CLICK, onPauseClick);
stop_btn.addEventListener(MouseEvent.CLICK, onStopClick);
function onPlayClick(event:MouseEvent):void
{
if (isPlaying == false)
{
isPlaying = true;
myChannel = myMusic.play(lastPosition);
}
myChannel.addEventListener(Event.SOUND_COMPLETE, completeHANDLER);
function completeHANDLER(event:Event):void
{
lastPosition = 0;
isPlaying = false;
}
}
function onPauseClick(event:MouseEvent):void
{
isPlaying = false;
lastPosition = myChannel.position;
myChannel.stop();
}
function onStopClick(event:MouseEvent):void
{
if (isPlaying == true)
{
isPlaying = false;
lastPosition = 0;
myChannel.stop();
}
}
homebtn.addEventListener(MouseEvent.CLICK, qnextScene);
function qnextScene(event:MouseEvent):void
{
gotoAndStop(1, "Scene 2");
}
gallerybtn.addEventListener(MouseEvent.CLICK, nxtScene);
function nxtScene(event:MouseEvent):void
{
gotoAndStop(1, "Scene 3");
}
mebtn.addEventListener(MouseEvent.CLICK, nextsScene);
function nextsScene(event:MouseEvent):void
{
gotoAndStop(1, "Scene 4");
}
啊,是的,我花了四个月的时间去寻找那个臭名昭著的舞台声音窃听器 一个解决办法:不要在舞台上倒退。舞台上有很多马车 取而代之的是,你放在一个特定的舞台上的东西,而不是放在一个电影唇中。创建两个函数来代替每个主要的电影唇,一个用于启动所有需要在它出现时发生的声音、动画等。另一个用于停止声音、动画等 然后,设置一个带有代码的单一阶段,以便在这些阶段之间进行交换 当您开始使用这种方法时,您将遇到的另一个问题是,变量似乎会自动清除。这是由于时间线的性质。这些主movieclips应该只有一帧,并且停止();必须是导入后的第一行代码。如果在这些主movieclips上有多个帧,或者如果忽略停止,则会继续重新初始化,这是一个麻烦 (在关卡处进行标题:是的,时间线上的代码是 可以接受,只要所有代码都与它所属的对象直接相关 在的时间线上。纯代码应停在文档中 类和链接类。你永远不应该把代码放在 时间线是AS2的一个遗留实践。)
我有一个大学任务,就是用ActionScript3制作一个网站,所以“不要在舞台上倒退”是不可能的哈哈,那我现在该怎么办呢?你能纠正一下脚本吗?顺便说一句,对不起,我会说英语,哈哈。不。这是Flash本身的一个错误。故事结束时,这些阶段根本不起作用。我很抱歉。顺便提一下,你可以复制和粘贴时间线中的图层,但除非你遵循上述方法,否则这不会起作用。你知道吗可以将层从一个时间线复制并粘贴到另一个时间线。进行此切换只需几个小时。我真的建议您复制文件并尝试此操作。