SWF ファイルおよびビットマップをテキストフィールドにロードするには、次のコードに示すように、
<img>
タグを使用します。
<img src = 'filename.jpg' id = 'instanceName' >
この方法でロードされたコンテンツには、次のコードのように TextField インスタンスの
getImageReference()
メソッドを使用してアクセスします。
var loadedObject:DisplayObject = myTextField.getImageReference('instanceName');
ただし、この方法でロードされた SWF ファイルとイメージは、オリジンに対応するサンドボックスに置かれます。
テキストフィールド内の
<img>
タグを使用してイメージファイルをロードする場合、イメージ内のデータへのアクセスは、URL ポリシーファイルによって許可できます。次のコードのように、
checkPolicyFile
属性を
<img>
タグに追加してポリシーファイルをチェックします。
<img src = 'filename.jpg' checkPolicyFile = 'true' id = 'instanceName' >
テキストフィールドに
<img>
タグを使用した SWF をロードする場合、
Security.allowDomain()
メソッドを呼び出して、その SWF ファイルのデータへのアクセスを許可できます。
SWF 内に埋め込んだ Bitmap クラスを使用せず、テキストフィールド内の
<img>
タグを使用して外部ファイルをロードする場合、Loader オブジェクトは TextField オブジェクトの子として自動的に作成され、外部ファイルは、ActionScript 内の Loader オブジェクトを使用してファイルをロードする場合とまったく同じように、Loader にロードされます。その場合、
getImageReference()
メソッドは、自動的に作成された Loader を返します。この Loader オブジェクトは、呼び出しコードと同じセキュリティサンドボックス内に置かれているため、このオブジェクトにアクセスする場合にはセキュリティチェックは不要です。
しかし、ロードされたメディアにアクセスするために Loader オブジェクトの
content
プロパティを参照する場合は、セキュリティルールが適用されます。コンテンツがイメージの場合は、URL ポリシーファイルを実装する必要があり、コンテンツが SWF ファイルの場合は、SWF ファイル内のコードを使用して
allowDomain()
メソッドを呼び出す必要があります。
Adobe AIR
アプリケーションサンドボックスでは、フィッシング攻撃を回避するために、テキストフィールド内の <img> タグは無視されます。また、アプリケーションサンドボックス内で実行するコードでは、Security クラスの
allowDomain()
メソッドを呼び出せません。