当场景加载时,场景中没有自动播放的影片剪辑

时间:2014-05-22 13:18:59

标签: actionscript-3 flash air

我正在使用flash和adobe air为Android开发一个Android应用程序 在flash中我有一组场景,可以通过以下方式导航。

Navigation of scenes

在较低的场景(早晨,中午和晚上场景)中,每个场景每5帧有一个电影剪辑,其中嵌入了音频。在我拥有的电影片段的第一帧,我称之为stop();功能。并在剪辑结束时调度事件(dispatchEvent(new Event ("MEANING_TEXT_COMPLETE"));),以便主时间轴中的代码可以相应地执行。

以下是我主时间轴上的代码

            import flash.events.MouseEvent;

            MovieClip(this.root).stop();

            btn_home_parent.addEventListener(MouseEvent.CLICK, goto_dh_morn);
            mc_sound.addEventListener(MouseEvent.CLICK, control_sound_morn);
            btn_next_morn.addEventListener(MouseEvent.CLICK, goto_next_morn);
            btn_prev_morn.addEventListener(MouseEvent.CLICK, goto_prev_morn);

            //load all sound files
            var mn_1:Mn1 = new Mn1();
            var mn_2:Mn2 = new Mn2();
            var mn_3:Mn3 = new Mn3();
            var mn_4:Mn4 = new Mn4();
            var mn_5:Mn5 = new Mn5();
            var mn_6:Mn6 = new Mn6();
            var mn_7:Mn7 = new Mn7();
            var mn_8:Mn8 = new Mn8_();
            var mn_9:Mn9 = new Mn9();
            var mn_10:Mn10 = new Mn10();
            var mn_11:Mn11 = new Mn11();
            var mn_12:Mn12 = new Mn12();
            var mn_13:Mn13 = new Mn13();
            var mn_14:Mn14 = new Mn14();

            var frameCount_morn:int = 1;
            var lang1Init_morn:Boolean = false;
            var lang1:Object;
            var ar:Object;

            playSound_morn();

            function playSound_morn()
            {
                var currentSound:Sound = new Sound();
                channel.stop();
                trace("play sound");
                currentSound = this["mn_" + frameCount_morn];

                channel = currentSound.play();
                channel.addEventListener(Event.SOUND_COMPLETE, soundComplete_morn);
                trans.volume = 1;
                channel.soundTransform = trans;
            }

            function soundComplete_morn(e:Event):void
            {
                if (showlang1Text)
                {
                    trace("ar Sound Complete");
                    ar = getChildByName("arText" + (currentFrame - 1));
                    ar.visible = false;
                    trace("ar child acquired");
                    lang1 = getChildByName("lang1Text" + (currentFrame - 1));
                    lang1Init_morn = true;
                    lang1.visible = true;
                    lang1.play();
                    lang1.addEventListener("MEANING_TEXT_COMPLETE", translationComplete_morn);
                }
            }

            function translationComplete_morn(e:Event)
            {
                trace("translate Complete");
                ar= getChildByName("arText" + (currentFrame - 1));
                ar.visible = true;
                lang1 = getChildByName("lang1Text" + (currentFrame - 1));
                lang1.visible = false;
            }


            function goto_next_morn(e:MouseEvent)
            {
                if (MovieClip(this.root).currentFrame <= 61)
                {
                    var next_frame = MovieClip(this.root).currentFrame + 5;
                    frameCount_morn = frameCount_morn + 1;
                    channel.stop();
                    if (lang1Init_morn){lang1.stop();lang1Init_morn = false;}
                    MovieClip(this.root).gotoAndStop(next_frame);
                    playSound_morn();
                }
                trace("Current Frame: " + currentFrame);
            }

            function goto_prev_morn(e:MouseEvent)
            {
                if (MovieClip(this.root).currentFrame > 0)
                {
                    var prev_frame = MovieClip(this.root).currentFrame - 5;
                    frameCount_morn = frameCount_morn - 1;
                    channel.stop();
                    if (lang1Init_morn){lang1.stop();lang1Init_morn = false;}
                    MovieClip(this.root).gotoAndStop(prev_frame);
                    playSound_morn();
                }
                trace("Current Frame: " + currentFrame);
            }

            function control_sound_morn(e:MouseEvent)
            {
                control_sound(e);
                 if (!showlang1Text) {
                     mc_sound.gotoAndStop(5);
                     if (lang1Init_morn){
                        lang1.stop();
                        lang1Init_morn = false;
                        ar.visible = true;
                        lang1.visible = false;
                     }
                 }
                 else {
                     mc_sound.gotoAndStop(1)
                 }
            }

            function goto_dh_morn(e:MouseEvent) {
                if (lang1Init_morn){lang1.stop();lang1Init_morn = false;}
                channel.stop();
                goto_dh(e);
            }


影片剪辑对象为lang1 当我加载场景“早晨的场景”时,它的效果非常好,应该如此。然而,当我导航到“中午场景”或“晚上场景”时,来自放在“早晨场景”上的所有电影剪辑的音频自动开始播放。有趣的是,那些电影片段甚至没有添加到“中午场景”和“晚间场景”中。任何想法为什么会发生这种情况或如何解决它。 感谢

1 个答案:

答案 0 :(得分:1)

因为我没有答案。我修复它的方法是将每个场景编译成一个单独的swf文件,然后在需要时加载/卸载它们。