セキュリティ面での違いはないと思います。MXML は、実際のコンパイルが開始される前にmxmlcコンパイラによって ActionScript に変換されることを思い出してください。したがって、宣言型 SWFLoader (またはその他の宣言型要素) は、手動でコーディングするのではなく、何かを作成する簡単な方法にすぎません。mxmlc 引数を使用して-compiler.keep-generated-actionscript
、MXML から生成されるコードの種類を確認できます。
この例の行から実行時エラーが表示されない理由はloader2.source = source;
、コードの前の行がエラーを呼び出しているため、その関数の実行がそこで停止するためです。呼び出した行をコメントアウトしてみるとloader1.load(source)
、次の行でこの種の SecurityError がスローされることがわかります。
SecurityError: Error #2148: SWF file http://example.com/test.swf cannot access local resource file:///Users/username/Desktop/picture.jpg. Only local-with-filesystem and trusted local SWF files may access local resources.
at flash.display::Loader/_load()
at flash.display::Loader/load()
at mx.controls::SWFLoader/loadContent()
at mx.controls::SWFLoader/load()
at mx.controls::SWFLoader/commitProperties()
at mx.core::UIComponent/validateProperties()
at mx.managers::LayoutManager/validateProperties()
at mx.managers::LayoutManager/doPhasedInstantiation()
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()
at mx.core::UIComponent/callLaterDispatcher()