Export Release Build无法正常运行

时间:2015-02-05 18:29:27

标签: actionscript-3 flex actionscript flash-builder

我发现使用Export Release Build导出时,我的项目无法正常工作。错误非常小:用于删除视频和卸载任何剩余音频的stop(0)功能不起作用。

该文件在bin-debug文件夹中正常工作。只有在导出到release文件夹时才会发生错误。我尝试使用release文件夹中的文件从bin-debug中刷出'正确'.swf文件。这导致'正确'文件失败。

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"  xmlns:local="*" >
    <mx:Script>
        <![CDATA[
            [Bindable] public var videoAddress:String 
            private static const YOUTUBE_EMBED_URL:String = "http://www.youtube.com/v/";            
            [Bindable] public var videoUrl:String = "";                                 
            public function play():void {
                Security.allowDomain("*");
                videoUrl = YOUTUBE_EMBED_URL+videoAddress;
            }                   
            public function stop():void{
                SoundMixer.stopAll();
                swfLoader.unloadAndStop(true)
            }
            public function playVideo(buttonNumber:int):void{
                    stop()
                switch(buttonNumber){                       
                    case 0:
                        videoAddress = "xUWeAOLY0FU?rel=0";
                        play()
                        break;
                    case 1:
                        videoAddress = "m2dg6teC7fg?rel=0"; 
                        play()
                        break;                  
                    default:                            
                        break;
                }           
            }                       
        ]]>
    </mx:Script>    
<mx:HBox>
    <mx:Button id="button0"   label="Button0"  click="playVideo(0)" useHandCursor="true" buttonMode="true" />
    <mx:Button id="button1"   label="Button1"  click="playVideo(1)" useHandCursor="true" buttonMode="true" />
</mx:HBox>
<mx:VBox id="vBox"    y="50" />
<mx:SWFLoader id="swfLoader" source="{videoUrl}"  y="50"/>

如何更正此错误?我认为这可能是跨域策略的问题,所以我将floowing文件添加到服务器,但它仍然不起作用: corssdomain.xml

<?xml version="1.0"?> 
<!-- http://www.foo.com/crossdomain.xml --> 
<cross-domain-policy> 
    <site-control permitted-cross-domain-policies="by-content-type"/> 
    <allow-access-from domain="*"/> 
   <allow-access-from domain="i.ytimg.com"/> 
   <allow-access-from domain="youtube.com"/> 
</cross-domain-policy>

2 个答案:

答案 0 :(得分:0)

bin-debug文件夹中的SWF工作方式不同的唯一原因是SWF执行一些可能不安全的操作(比如访问本地文件等),因为bin-debug文件夹通常位于&#34;白名单中#34;对于Flash播放器。

因此,您可以将bin-release文件夹添加到受信任位置列表中(在Flash播放器的全局设置中),或者,如果该应用程序适用于Web,只需先在Web环境中测试它,然后查看它是如何进行的的工作原理。

此外,为了查看所有运行时错误,您可以使用&#34;内容调试器&#34; Flash播放器的版本(http://www.adobe.com/support/flashplayer/downloads.html)。

答案 1 :(得分:0)

我看到你使用Flex SDK 3.6和FlashPlayer 9.方法&#34; unloadAndStop&#34;在FP 9中无法正常工作。 尝试使用Flex SDK 4.5.1并编译为FP 10.2.0。