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 当转到另一帧上的另一个flvplayback时,如何从后台完全删除flvplayback?_Actionscript 3_Flash_Flvplayback - Fatal编程技术网

Actionscript 3 当转到另一帧上的另一个flvplayback时,如何从后台完全删除flvplayback?

Actionscript 3 当转到另一帧上的另一个flvplayback时,如何从后台完全删除flvplayback?,actionscript-3,flash,flvplayback,Actionscript 3,Flash,Flvplayback,我正在尝试使用flash 5.5 AS3创建一个EXE投影仪,其中我有一些视频(FLV)要显示(它们的位置就在同一目录中EXE文件的旁边)-每个加载在不同的帧中,所有这些视频也应该有一个全屏选项。这些都是人们希望全屏观看的原创视频。这是体验的必要条件 我目前遇到的问题(在修复了观看不同视频后没有停止的声音后)很难描述,但我会尽全力 好的,当我点击视频上的全屏按钮并全屏观看时,我最终会想退出全屏,所以我点击底部的同一图标退出全屏(或ESC按钮,相同),然后点击导航按钮转到第二个FLV帧观看另一个视

我正在尝试使用flash 5.5 AS3创建一个EXE投影仪,其中我有一些视频(FLV)要显示(它们的位置就在同一目录中EXE文件的旁边)-每个加载在不同的帧中,所有这些视频也应该有一个全屏选项。这些都是人们希望全屏观看的原创视频。这是体验的必要条件

我目前遇到的问题(在修复了观看不同视频后没有停止的声音后)很难描述,但我会尽全力

好的,当我点击视频上的全屏按钮并全屏观看时,我最终会想退出全屏,所以我点击底部的同一图标退出全屏(或ESC按钮,相同),然后点击导航按钮转到第二个FLV帧观看另一个视频。在全屏观看第二个视频,然后退出全屏后,flash将我带到第一个视频的帧,这是一个大问题。另外,现在,将我带回第二个视频帧的按钮不起作用。就像闪光灯卡住了一样

我使用component菜单中的component-->FLVPlayback 2.5(我并不真正了解AS3编程),并在component参数中修复其属性

此外,我不认为以下任何一个是导致该错误的原因,但我使用这3个脚本在从一个帧(使用FLVplayback)导航到另一个帧时停止所有声音

具有另一FLVplayback的另一帧:

MyFLV.stop();

SoundMixer.stopAll();

MyFLV.addEventListener(Event.REMOVED_FROM_STAGE,xyz);
function xyz(e:Event):void{
MyFLV.stop();
}
我在网上找到了这些,人们在那里向我求助,寻找我描述的声音错误

第三个脚本应该在进入另一个帧之前将FLVplayback从舞台上移除,但它只有在没有进入全屏时才起作用。我需要的东西,将完全从舞台上删除前一个视频,所以在退出第二次观看的视频后,flash不会带我到一个视频,因为某种原因,它仍然在记忆中。我的项目中有大约30个视频,在导航到下一帧打开新的FLVPlayback之前,我需要将每个视频从舞台上移除


我试图添加一个链接到我针对该问题制作的演示,以便您查看,但它触发了一个“oops,出了问题”错误,可能是反垃圾邮件机制…

我建议只使用一个帧和一个flvplayback实例。否则,您必须处理一些奇怪的bug,比如您正在遇到的bug(通常是由于错误放置或忘记代码造成的)。当然,只使用一个框架需要使用更多的代码,但随着修复程序的增多,您可能会得到更少的代码

别担心,我会带你走过每件事

使用代码的原因(与多帧相反):

  • 更容易跟踪:
    • 了解所有代码的位置,以便轻松查找和修复任何问题
  • 更容易进行更改
    • 是否要切换现有视频?编辑一个文件引用,您就完成了
    • 要添加视频吗?不再将新的flvplayback实例拖到新的框架上,只需添加一些非常简单的代码和一个按钮,就完成了
  • 更多定制
  • 使用多个帧(和多个flvplayback实例)的原因:

  • 易于直观地放置
    • 有些人发现,当他们有一个真实的电影唇,他们可以视觉上放在舞台上更容易
  • 更少的代码
  • 我们开始:

    //import flv library
    import fl.video.*;
    
    这允许您使用ActionScript操纵flv播放器

    //video playback code-----------------------//
    var myVideo:FLVPlayback = new FLVPlayback();
    
    这将创建一个名为myVideo的FLVPlayback实例(从现在起在代码中引用为myVideo)

    下一块显示了flv播放器的许多可定制功能。没有必要包括它们

    //places the video player on stage at x,y
    myVideo.x = 115;
    myVideo.y = -10;
    //uses SkinOverPlayFullscreen.swf for controls
    myVideo.skin = "SkinOverPlayFullscreen.swf";
    //color of controls
    myVideo.skinBackgroundColor = 0x333333;
    //hide controls and time it takes controls to fade and reappear (milliseconds)
    myVideo.skinAutoHide=true;
    myVideo.skinFadeTime=300;
    //add the player to the stage
    addChild(myVideo);
    
    现在是重要的部分。我制作了按钮,并将它们添加到舞台上。我为每个按钮指定了不同的实例名称(box1_btn、box2_btn和box3_btn)。当有人点击一个按钮时,就会发生一个“事件”

    //button listener code-------------------------//
    
    //when button 1 is clicked throw button 1 event
    box1_btn.addEventListener(MouseEvent.CLICK, clicked1);
    //when button 2 is clicked throw button 2 event
    box2_btn.addEventListener(MouseEvent.CLICK, clicked2);
    //when button 3 is clicked throw button 3 event
    box3_btn.addEventListener(MouseEvent.CLICK, clicked3);
    
    //play different videos for different buttons---------//
    
    //when button 1 event is thrown
    function clicked1($e:MouseEvent):void
    {
        //play video 1.flv
        myVideo.source = "1.flv";
    
    }
    
    //when button 2 event is thrown
    function clicked2($e:MouseEvent):void
    {
        //play video 2.flv
        myVideo.source = "2.flv";
    
    }
    
    //when button 3 event is thrown
    function clicked3($e:MouseEvent):void
    {
        //play video 3.flv
        myVideo.source = "3.flv";
    
    }
    
    由于两个视频不能在播放器的一个实例中同时播放,因此此代码将不会有任何持续播放的声音。当你从全屏出来时,它也不会有任何混乱,因为只有一帧视频可以返回

    您可能会遇到一些可能的问题:

    它根本不起作用:

    • 通过从“组件”菜单(窗口>>组件或ctrl+F7)向后台添加实例,然后从后台删除该实例(该实例仍应显示在库中),确保已将FLVPlayback的实例添加到库中
    我想要的播放按钮未显示:

    • 关于如何使用As3操纵FLVPlayback,这里有一个很好的解释:

      查找有关“将蒙皮应用于FLVPlayback组件”的部分,然后使用adobe回放蒙皮。如果你想制作你自己独特的皮肤,我建议你打开并编辑一个预先制作好的皮肤。我在家里找到了我的

      C:\ProgramFiles(x86)\Adobe\Adobe Flash CS6\Common\Configuration\FLVPlayback Skins\FLA\ActionScript 3.0


    我希望这有帮助

    下面的是卸载
    FLVPlayback

    removeChild(MyFLV);
    
    这对我来说很好

    flvPlayBack.stop();
    removeChild(flvPlayBack);
    

    停止声音并取消播放。

    为什么FLVPlayback组件很少?它们在外观上是否不同?也许您应该尝试只切换源代码(到FLV的路径),例如
    player.source=“file.FLV”
    ?您可以发布更多的代码吗?e、 g.这些“返回”和“退出”按钮的使用方法。删除事件侦听器以启用GC或使用弱引用:useWeakReference:Boolean(默认值=false)-确定对侦听器的引用是强引用还是弱引用。强引用(默认值)可防止侦听器