0

Flex プロジェクト内にアセットをロードしようとすると、次のエラーが発生しました。

SecurityError: Error #2142: Security sandbox violation: local SWF files 
cannot use the LoaderContext.securityDomain property. 
app:/Main.swf was attempting to load app:/assets/stories/bear.swf.

LoaderContext を作成して SWFLoader に割り当てましたが、それでもこのエラーが発生します。これが私のコードです:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               xmlns:ns1="*"
               applicationDPI="240" creationComplete="initApp(event)">
    <fx:Script>
        <![CDATA[
            import mx.events.FlexEvent;
            import flash.system.SecurityDomain;
            import flash.system.ApplicationDomain;

            protected function initApp(event:FlexEvent):void
            {
                var context:LoaderContext = new LoaderContext();
                context.securityDomain = SecurityDomain.currentDomain;
                context.applicationDomain = new ApplicationDomain();

                Story.loaderContext = context;
                Story.source = "app:/assets/stories/Bear1.swf";
            }

        ]]>
    </fx:Script>
    <s:SWFLoader id="Story" left="0" right="0" top="0" bottom="0" 
                 trustContent="true"
                 scaleContent="true"/>
</s:Application>

Flex のセキュリティ ポリシーについてよく読みましたが、アプリへのローカル アクセスを許可する方法がわかりませんでした。

4

2 に答える 2

0

この場合、loaderContext を使用する必要はありません。これはモバイル プロジェクトであるため、すべてのアセットはローカルと見なされます。私が間違っていたのは、「assets」ディレクトリを「src」ディレクトリの外に配置したことです。「src」ディレクトリ内のディレクトリのみが最終的なプロジェクトにエクスポートされます。

于 2013-02-26T07:35:07.750 に答える
0

thisまたはthisを使用して解決策を得ることができます。

于 2013-02-07T06:20:09.477 に答える