在Flash AS3中从外部域加载图像

时间:2010-05-31 09:33:32

标签: security actionscript-3

我必须从外部域加载XML,所以我的代码看起来像这样

var loader:URLLoader = new URLLoader();
        configureListeners(loader);

        var request:URLRequest = new URLRequest("http://demo.softsolutions4u.com/ss4uplayer/modules/podcast/lib/PlayerAPI.php");
        try {
            loader.load(request);
        } catch (error:Error) {
            trace("Unable to load requested document.");
        }

        function configureListeners(dispatcher:IEventDispatcher):void {
            dispatcher.addEventListener(Event.COMPLETE, completeHandler);
            dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
         }

        function completeHandler(event:Event):void {
            var loader:URLLoader = URLLoader(event.target);
            trace("completeHandler: " + loader.data);
            datas.appendText("completeHandler: " +loader.data);
        }


        function securityErrorHandler(event:SecurityErrorEvent):void {
            trace("securityErrorHandler: " + event);
            datas.appendText("securityErrorHandler: " +event);
        }

但它在运行时抛出异常

securityErrorHandler: [SecurityErrorEvent type="securityError" bubbles=false cancelable=false eventPhase=2 text="Error #2048: Security sandbox violation: http://192.168.2.55/onlinemovie/Development/SS4UPlayer310310/test.swf cannot load data from http://demo.softsolutions4u.com/ss4uplayer/modules/podcast/lib/PlayerAPI.php."

还加载了Crossdomain XML文件,安全性allodomain位于(*)中。 请告诉我这里错过了什么。


它不是那样的。我们不会使用flash swf文件,但是我们的'N'没有客户端会在他们的服务器中使用这个swf,所以在那种情况下我怎么能放置crossdomain.xml。我不知道我应该把它放在哪里。请帮我解决。

2 个答案:

答案 0 :(得分:1)

我没有在位置http://demo.softsolutions4u.com/crossdomain.xml看到crossdomain.xml,它返回404错误。您应该将crossdomain.xml放在域的根目录下,然后重试。

答案 1 :(得分:1)

尝试添加此行

Security.allowInsecureDomain("demo.softsolutions4u.com");

您应该只能在Flash IDE或客户端服务器上测试影片