Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 声元';当我使用代码返回到前一个阶段时,我不会停止_Actionscript 3_Button_Audio - Fatal编程技术网

Actionscript 3 声元';当我使用代码返回到前一个阶段时,我不会停止

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

我有4个场景,我把我的音乐脚本放在场景2中,然后我跳到场景3,但当我回到场景2并按暂停或停止时,我的音乐不会这样做,但当我播放时,音乐播放,我得到2个音乐开始:(,有人能帮我看脚本吗

我是新手

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本身的一个错误。故事结束时,这些阶段根本不起作用。我很抱歉。顺便提一下,你可以复制和粘贴时间线中的图层,但除非你遵循上述方法,否则这不会起作用。你知道吗可以将层从一个时间线复制并粘贴到另一个时间线。进行此切换只需几个小时。我真的建议您复制文件并尝试此操作。