flash.systemImageDecodingPolicy ImageDecodingPolicy クラスは、LoaderContext クラスの imageDecodingPolicy プロパティの値を定義します。ImageDecodingPolicy クラスは、LoaderContext クラスの imageDecodingPolicy プロパティの値を定義します。 Object ImageDecodingPolicy クラスは、LoaderContext クラスの imageDecodingPolicy プロパティの値を定義します。 LoaderContext.imageDecodingPolicyON_DEMAND ロードされるイメージが、必要になるまではデコードされないことを指定します。onDemandString ロードされるイメージが、必要になるまではデコードされないことを指定します。 ON_LOAD イメージが、ロード時、complete イベントが送信される前にデコードされることを指定します。onLoadString イメージが、ロード時、complete イベントが送信される前にデコードされることを指定します。 SystemUpdaterType SystemUpdaterType クラスは、システムの更新に使用される定数を提供します。Object SystemUpdaterType クラスは、システムの更新に使用される定数を提供します。これらの定数は、SystemUpdater.update() 関数で使用されます。

注意:SystemUpdater API はデスクトッププラットフォームでサポートされます。

DRM DRM モジュールを更新します。drmString DRM モジュールを更新します。 SYSTEM プレーヤーのランタイム自体を更新します。systemString プレーヤーのランタイム自体を更新します。
IMEConversionMode このクラスには、IME.conversionMode プロパティで使用できる定数があります。Object このクラスには、IME.conversionMode プロパティで使用できる定数があります。conversionModeALPHANUMERIC_FULL または JAPANESE_KATAKANA_FULL に設定すると、プレーヤーで全角フォントが使用されます。ALPHANUMERIC_HALF または JAPANESE_KATAKANA_HALF を使用すると、半角フォントが使用されます。 flash.system.IME.conversionModeALPHANUMERIC_FULL ストリング "ALPHANUMERIC_FULL"。IME.conversionMode プロパティで使用します。ALPHANUMERIC_FULLString ストリング "ALPHANUMERIC_FULL"IME.conversionMode プロパティで使用します。この定数は、すべての IME で使用します。シンタックス IMEConversionMode.ALPHANUMERIC_FULL を使用します。 flash.system.IME.conversionModeALPHANUMERIC_HALF ストリング "ALPHANUMERIC_HALF"。IME.conversionMode プロパティで使用します。ALPHANUMERIC_HALFString ストリング "ALPHANUMERIC_HALF"IME.conversionMode プロパティで使用します。この定数は、すべての IME で使用します。シンタックス IMEConversionMode.ALPHANUMERIC_HALF を使用します。 flash.system.IME.conversionModeCHINESE ストリング "CHINESE"。IME.conversionMode プロパティで使用します。CHINESEString ストリング "CHINESE"IME.conversionMode プロパティで使用します。この定数は、簡体字中国語 IME と繁体字中国語 IME で使用します。シンタックス IMEConversionMode.CHINESE を使用します。 flash.system.IME.conversionModeJAPANESE_HIRAGANA ストリング "JAPANESE_HIRAGANA"。IME.conversionMode プロパティで使用します。JAPANESE_HIRAGANAString ストリング "JAPANESE_HIRAGANA"IME.conversionMode プロパティで使用します。この定数は、日本語 IME で使用します。シンタックス IMEConversionMode.JAPANESE_HIRAGANA を使用します。 flash.system.IME.conversionModeJAPANESE_KATAKANA_FULL ストリング "JAPANESE_KATAKANA_FULL"。IME.conversionMode プロパティで使用します。JAPANESE_KATAKANA_FULLString ストリング "JAPANESE_KATAKANA_FULL"IME.conversionMode プロパティで使用します。この定数は、日本語 IME で使用します。シンタックス IMEConversionMode.JAPANESE_KATAKANA_FULL を使用します。 flash.system.IME.conversionModeJAPANESE_KATAKANA_HALF ストリング "JAPANESE_KATAKANA_HALF"。IME.conversionMode プロパティで使用します。JAPANESE_KATAKANA_HALFString ストリング "JAPANESE_KATAKANA_HALF"IME.conversionMode プロパティで使用します。この定数は、日本語 IME で使用します。シンタックス IMEConversionMode.JAPANESE_KATAKANA_HALF を使用します。 flash.system.IME.conversionModeKOREAN ストリング "KOREAN"。IME.conversionMode プロパティで使用します。KOREANString ストリング "KOREAN"IME.conversionMode プロパティで使用します。この定数は、韓国語 IME で使用します。シンタックス IMEConversionMode.KOREAN を使用します。 flash.system.IME.conversionModeUNKNOWN ストリング "UNKNOWN"。IME.conversionMode プロパティの呼び出しによって返されます。UNKNOWNString ストリング "UNKNOWN"IME.conversionMode プロパティの呼び出しによって返されます。この値は設定できず、プレーヤーが現在アクティブな IME を識別できない場合にのみ返されます。シンタックス IMEConversionMode.UNKNOWN を使用します。 flash.system.IME.conversionModeSecurityPanel SecurityPanel クラスは、どのセキュリティ設定パネルを表示するかを指定する値を提供します。Object SecurityPanel クラスは、どのセキュリティ設定パネルを表示するかを指定する値を提供します。

このクラスには、Security.showSettings() メソッドで使用する静的定数があります。SecurityPanel クラスの新しいインスタンスは作成できません。

次の例では、Sprite オブジェクトの click イベントを使用して、「Flash Player 設定」のローカル記憶領域パネルを表示する方法を示します。オレンジのボックスが draw() を使用してステージに追加されます。draw() では、click イベントリスナーに名前付き clickHandler() が追加されます。これは click イベントに応答し、ローカル記憶領域パネルを開くように Flash Player に指示します。 package { import flash.display.Sprite; import flash.text.TextField; import flash.events.*; import flash.system.Security; import flash.system.SecurityPanel; public class SecurityExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 100; public function SecurityExample() { draw(); } private function draw():void { var child:Sprite = new Sprite(); child.graphics.beginFill(bgColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); child.buttonMode = true; var label:TextField = new TextField(); label.text = "settings"; label.selectable = false; label.mouseEnabled = false; child.addChild(label); child.addEventListener(MouseEvent.CLICK, clickHandler); addChild(child); } private function clickHandler(event:MouseEvent):void { Security.showSettings(SecurityPanel.LOCAL_STORAGE); } } }
CAMERA Security.showSettings() に渡されると、Flash Player の [設定] の [カメラ] パネルが表示されます。cameraString Security.showSettings() に渡されると、Flash Player の [設定] の [カメラ] パネルが表示されます。 Security.showSettings()DEFAULT Security.showSettings() に渡されると、ユーザーが最後に Flash Player の「設定」を閉じたときに開いていたパネルが表示されます。defaultString Security.showSettings() に渡されると、ユーザーが最後に Flash Player の「設定」を閉じたときに開いていたパネルが表示されます。 Security.showSettings()DISPLAY Security.showSettings() に渡されると、Flash Player の [設定] の [Display] パネルが表示されます。displayString Security.showSettings() に渡されると、Flash Player の [設定] の [Display] パネルが表示されます。 Security.showSettings()LOCAL_STORAGE Security.showSettings() に渡されると、Flash Player の [設定] の [ローカル記憶領域] パネルが表示されます。localStorageString Security.showSettings() に渡されると、Flash Player の [設定] の [ローカル記憶領域] パネルが表示されます。 Security.showSettings()MICROPHONE Security.showSettings() に渡されると、Flash Player の [設定] の [マイク] パネルが表示されます。microphoneString Security.showSettings() に渡されると、Flash Player の [設定] の [マイク] パネルが表示されます。 Security.showSettings()PRIVACY Security.showSettings() に渡されると、Flash Player の [設定] の [プライバシー設定] パネルが表示されます。privacyString Security.showSettings() に渡されると、Flash Player の [設定] の [プライバシー設定] パネルが表示されます。 Security.showSettings()SETTINGS_MANAGER Security.showSettings() に渡されると、別のブラウザーウィンドウで設定マネージャーが表示されます。settingsManagerString Security.showSettings() に渡されると、別のブラウザーウィンドウで設定マネージャーが表示されます。 Security.showSettings()
TouchscreenType TouchscreenType クラスは、様々な種類のタッチスクリーンを表す値を提供する列挙クラスです。Object TouchscreenType クラスは、様々な種類のタッチスクリーンを表す値を提供する列挙クラスです。

TouchscreenType クラスによって定義された値を Capabilities.touchscreenType プロパティで使用します。

次の例は、Num Lock キーと Caps Lock キーの現在の状態と、実行環境のキーボードとタッチスクリーンの種類を表示する簡単なテストです。テストを実行したら、テキストフィールドをクリックして、プロパティの値を確認します。 import flash.events.~~; import flash.display.~~; import flash.ui.Keyboard; import flash.system.Capabilities; import flash.text.TextField; var keyboardInfoTxt:TextField = new TextField(); keyboardInfoTxt.x = 30; keyboardInfoTxt.y = 50; keyboardInfoTxt.width = 300; keyboardInfoTxt.height = 100; keyboardInfoTxt.border = true; addChild(keyboardInfoTxt); addEventListener (MouseEvent.CLICK, getScreenKeyboardType); function getScreenKeyboardType(e:MouseEvent):void{ keyboardInfoTxt.text= "Caps Lock is : " + String(flash.ui.Keyboard.capsLock)+ "\n" + "Num Lock is : " + String(flash.ui.Keyboard.numLock) +"\n" + "Has Virtual Keyboard : " + String(flash.ui.Keyboard.hasVirtualKeyboard) + "\n" + "Physical Keyboard Type : " + flash.ui.Keyboard.physicalKeyboardType + "\n" + "flash.system.Capabilities.touchscreenType is : " + flash.system.Capabilities.touchscreenType; }
Capabilities.touchscreenTypeflash.ui.Mouse.supportsCursorFINGER 指によるタッチに反応するように設計されているタッチスクリーン。fingerString 指によるタッチに反応するように設計されているタッチスクリーン。 NONE サポートされているタッチスクリーンがないコンピューターまたはデバイス。noneString サポートされているタッチスクリーンがないコンピューターまたはデバイス。 STYLUS ペンを使用するように設計されているタッチスクリーン。stylusString ペンを使用するように設計されているタッチスクリーン。
ApplicationDomain ApplicationDomain クラスは、クラス定義の個別のグループのコンテナです。Object ApplicationDomain クラスは、クラス定義の個別のグループのコンテナです。アプリケーションドメインは、同じセキュリティドメイン内にあるクラスを分割するために使用されます。これにより、同じクラスの定義が複数存在すること、および子が親の定義を再利用することが可能になります。

アプリケーションドメインは、外部 SWF ファイルが Loader クラスによってロードされる場合に使用されます。ロードされる SWF ファイルのすべての ActionScript 3.0 定義は、アプリケーションドメインに保存されます。アプリケーションドメインは、Loader オブジェクトの load() または loadBytes() メソッドの context パラメーターとして渡す LoaderContext オブジェクトの applicationDomain プロパティによって指定されます。LoaderInfo オブジェクトにも applicationDomain プロパティがあります。これは読み取り専用です。

SWF ファイル内のすべてのコードは、アプリケーションドメイン内に存在するように定義されます。現在のアプリケーションドメインは、メインアプリケーションが実行されている場所です。現在のドメインを含むすべてのアプリケーションドメインはシステムドメインに属します。つまり、システムドメインにはすべての Flash Player クラスが含まれます。

システムドメインを除くすべてのアプリケーションドメインには、親ドメインが関連付けられます。メインアプリケーションのアプリケーションドメインに対する親ドメインは、システムドメインです。ロードされるクラスは、その親によってまだ定義されていない場合にのみ定義されます。ロードされるクラスの定義を新しい定義でオーバーライドすることはできません。

アプリケーションドメインの使用例については、『ActionScript 3.0 開発ガイド』を参照してください。

ApplicationDomain() コンストラクター関数を使用すると、ApplicationDomain オブジェクトを作成できます。

次の例では、実行時のクラスのロードと、別の SWF に存在するクラスのパブリックメソッドの呼び出し方法を示します。

注意:

  • ClassLoader クラスによって SWF ファイルがロードされるので、ローカルセキュリティはファイルシステムレベルである必要があります。
  • この例を実行するには、"ApplicationDomainExample.swf" ファイルと同じフォルダーに存在する "RuntimeClasses.swf" という SWF ファイルが存在する必要があります。

最初に、以下のコードから "RuntimeClasses.swf" ファイルを作成します。

package { import flash.display.Sprite; public class RuntimeClasses extends Sprite { public function RuntimeClasses() {} public function greet():String { return("Hello World"); } } }

次に、以下のコードを実装します。

package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.text.TextField; public class ApplicationDomainExample extends Sprite { private var loader:ClassLoader; private var tf:TextField = new TextField(); public function ApplicationDomainExample() { addChild(tf); loader = new ClassLoader(); loader.addEventListener(ClassLoader.LOAD_ERROR,loadErrorHandler); loader.addEventListener(ClassLoader.CLASS_LOADED,classLoadedHandler); loader.load("RuntimeClasses.swf"); } private function loadErrorHandler(e:Event):void { tf.text = "Load failed"; throw new IllegalOperationError("Cannot load the specified file."); } private function classLoadedHandler(e:Event):void { var runtimeClassRef:Class = loader.getClass("RuntimeClasses"); var greeter:Object = new runtimeClassRef(); tf.text = greeter.greet(); } } } import flash.display.Loader; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; import flash.net.URLRequest; import flash.system.ApplicationDomain; import flash.system.LoaderContext; class ClassLoader extends EventDispatcher { public static var CLASS_LOADED:String = "classLoaded"; public static var LOAD_ERROR:String = "loadError"; private var loader:Loader; private var swfLib:String; private var request:URLRequest; private var loadedClass:Class; public function ClassLoader() { loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler); } public function load(lib:String):void { swfLib = lib; request = new URLRequest(swfLib); var context:LoaderContext = new LoaderContext(); context.applicationDomain=ApplicationDomain.currentDomain; loader.load(request,context); } public function getClass(className:String):Class { try { return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class; } catch (e:Error) { throw new IllegalOperationError(className + " definition not found in " + swfLib); } return null; } private function completeHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.CLASS_LOADED)); } private function ioErrorHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.LOAD_ERROR)); } private function securityErrorHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.LOAD_ERROR)); } }
複数の SWF ファイルに同じ名前だが異なる実装を提供するコンパイル済みクラスが含まれている場合、次の例に従って、外部からロードする SWF ファイルのクラスをそれぞれのクラスと分割できます。以前の例では、子 SWF が ApplicationDomain.currentDomain を使用するように指示されました。今回は、新しい ApplicationDomain が作成されます。これにより、2 番目にロードされる任意の SWF の Greeter クラスのプロパティおよびメソッドが、最初の Greeter クラスのプロパティおよびメソッドと置き換わることはありません。これは、context.applicationDomain プロパティ(load メソッド)をプロパティを変更してテストできます。このメソッドは ClassLoader 内のものです。

注意:

  • ClassLoader クラスによって SWF ファイルがロードされるので、ローカルセキュリティはファイルシステムレベルである必要があります。
  • この例を実行するには、Greeter.swf と呼ばれる 2 つの SWF ファイルがそれぞれ "en" フォルダーおよび "es" フォルダーに存在している必要があります。

以下のコードを使用して、Greeter.as ファイルを "en" ディレクトリに作成します。

package { import flash.display.Sprite; public class Greeter extends Sprite { public function Greeter() { } public function greet():String { return("Good Morning"); } } }

その後、同じ Greeter.as ファイルを "es" ディレクトリに作成します。

package { import flash.display.Sprite; public class Greeter extends Sprite { public function Greeter() { } public function greet():String { return("Buenos Dias"); } } }

両方の SWF ファイルをコンパイルし、以下のコードを実装します。

package { import flash.display.DisplayObject; import flash.display.Sprite; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class ApplicationDomainExample2 extends Sprite { private var spanishGreeterLoader:ClassLoader; private var englishGreeterLoader:ClassLoader; private var tf:TextField = new TextField(); private var greetersLoaded:uint = 0; public function ApplicationDomainExample2() { tf.autoSize = TextFieldAutoSize.LEFT; addChild(tf); spanishGreeterLoader = new ClassLoader(); spanishGreeterLoader.addEventListener(ClassLoader.LOAD_ERROR,loadErrorHandler); spanishGreeterLoader.addEventListener(ClassLoader.CLASS_LOADED,classLoadedHandler); spanishGreeterLoader.load("es/Greeter.swf"); englishGreeterLoader = new ClassLoader(); englishGreeterLoader.addEventListener(ClassLoader.LOAD_ERROR,loadErrorHandler); englishGreeterLoader.addEventListener(ClassLoader.CLASS_LOADED,classLoadedHandler); englishGreeterLoader.load("en/Greeter.swf"); } private function loadErrorHandler(e:Event):void { tf.text = "Load failed"; throw new IllegalOperationError("Cannot load the specified file."); } private function classLoadedHandler(e:Event):void { greetersLoaded++; if(greetersLoaded == 2) { greet(); } } private function greet():void { var spanishGreeter:Class = spanishGreeterLoader.getClass("Greeter"); var englishGreeter:Class = englishGreeterLoader.getClass("Greeter"); var greeter1 = new spanishGreeter(); var greeter2 = new englishGreeter(); tf.text = greeter1.greet() + "\n" + greeter2.greet(); } } } import flash.display.Loader; import flash.errors.IllegalOperationError; import flash.events.Event; import flash.events.EventDispatcher; import flash.events.IOErrorEvent; import flash.events.SecurityErrorEvent; import flash.net.URLRequest; import flash.system.ApplicationDomain; import flash.system.LoaderContext; class ClassLoader extends EventDispatcher { public static var CLASS_LOADED:String = "classLoaded"; public static var LOAD_ERROR:String = "loadError"; private var loader:Loader; private var swfLib:String; private var request:URLRequest; private var loadedClass:Class; public function ClassLoader() { loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,completeHandler); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler); loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR,securityErrorHandler); } public function load(lib:String):void { swfLib = lib; request = new URLRequest(swfLib); var context:LoaderContext = new LoaderContext(); // context.applicationDomain = ApplicationDomain.currentDomain; context.applicationDomain = new ApplicationDomain(); loader.load(request,context); } public function getClass(className:String):Class { try { return loader.contentLoaderInfo.applicationDomain.getDefinition(className) as Class; } catch (e:Error) { throw new IllegalOperationError(className + " definition not found in " + swfLib); } return null; } private function completeHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.CLASS_LOADED)); } private function ioErrorHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.LOAD_ERROR)); } private function securityErrorHandler(e:Event):void { dispatchEvent(new Event(ClassLoader.LOAD_ERROR)); } }
flash.display.Loader.load()flash.display.Loader.loadBytes()flash.display.LoaderInfoflash.net.URLRequestflash.system.LoaderContextApplicationDomain 新しいアプリケーションドメインを作成します。parentDomainflash.system:ApplicationDomainnull親ドメインが渡されない場合、このアプリケーションドメインはシステムドメインを親ドメインとします。 新しいアプリケーションドメインを作成します。 getDefinition 指定されたアプリケーションドメインから公開定義を取得します。指定された名前の公開定義は存在しません。 ReferenceErrorReferenceError定義に関連付けられたオブジェクトです。 ObjectnameString定義の名前です。 指定されたアプリケーションドメインから公開定義を取得します。定義には、クラス、名前空間、または関数の定義があります。 hasDefinition 指定されたアプリケーションドメイン内に公開定義が存在するかどうかを確認します。指定された定義が存在する場合は true を返します。含まれない場合は false を返します。 BooleannameString定義の名前です。 指定されたアプリケーションドメイン内に公開定義が存在するかどうかを確認します。定義には、クラス、名前空間、または関数の定義があります。 MIN_DOMAIN_MEMORY_LENGTH ApplicationDomain.domainMemory として使用するために必要なメモリオブジェクトの最小の長さを取得します。uint ApplicationDomain.domainMemory として使用するために必要なメモリオブジェクトの最小の長さを取得します。 currentDomain コードが実行されている現在のアプリケーションドメインを取得します。flash.system:ApplicationDomain コードが実行されている現在のアプリケーションドメインを取得します。 domainMemory この ApplicationDomain 内でドメイン全般のメモリ処理が実行されるオブジェクトを取得して設定します。flash.utils:ByteArray この ApplicationDomain 内でドメイン全般のメモリ処理が実行されるオブジェクトを取得して設定します。 parentDomain このアプリケーションドメインの親ドメインを取得します。flash.system:ApplicationDomain このアプリケーションドメインの親ドメインを取得します。
Security Security クラスによって、異なるドメインに属するコンテンツが互いにどのようにやり取りするかを指定できます。Object Security クラスによって、異なるドメインに属するコンテンツが互いにどのようにやり取りするかを指定できます。 次の例では、Sprite オブジェクトの click イベントを使用して、「Flash Player 設定」のローカル記憶領域パネルを表示する方法を示します。オレンジのボックスが draw() を使用してステージに追加されます。draw() では、click イベントリスナーに名前付き clickHandler() が追加されます。これは click イベントに応答し、ローカル記憶領域パネルを開くように Flash Player に指示します。 package { import flash.display.Sprite; import flash.text.TextField; import flash.events.*; import flash.system.Security; import flash.system.SecurityPanel; public class SecurityExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 100; public function SecurityExample() { draw(); } private function draw():void { var child:Sprite = new Sprite(); child.graphics.beginFill(bgColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); child.buttonMode = true; var label:TextField = new TextField(); label.text = "settings"; label.selectable = false; label.mouseEnabled = false; child.addChild(label); child.addEventListener(MouseEvent.CLICK, clickHandler); addChild(child); } private function clickHandler(event:MouseEvent):void { Security.showSettings(SecurityPanel.LOCAL_STORAGE); } } } allowDomain 指定したドメインの SWF ファイルから、allowDomain() 呼び出しを含む SWF ファイルのオブジェクトと変数にアクセスできるようにします。AIR アプリケーションセキュリティサンドボックスのコードからこのメソッドを呼び出すと、SecurityError 例外がスローされます。アプリケーションセキュリティサンドボックス外のコンテンツは、アプリケーションセキュリティサンドボックスのコンテンツをクロススクリプトできません。 SecurityErrorSecurityErrordomainsアクセス元として許可するドメインを指定するストリングまたは URLRequest オブジェクト。特別なドメイン "~~" を指定して、すべてのドメインからのアクセスを許可できます。

Flash Professional で「~~」を指定することは、Flash オーサリングツールで「ローカルでの再生に関するセキュリティ」オプションの「ネットワークにのみアクセスする」を使用してパブリッシュされたローカル SWF ファイルから、ローカル以外の SWF ファイルへのアクセスを許可する唯一の方法です。

注意:ワイルドカード値は、サブドメインでは動作しません。例えば、domains パラメーターで ~~.foo.com を使用することはできません。クロスドメインポリシーファイルについてはワイルドカード値でサブドメインを指定できますが(~~.foo.com など)、allowDomain() メソッドではこのようにワイルドカード値を使用することはできません。

SWF ファイルおよび HTML ファイルに対して、呼び出し元 SWF ファイルのオブジェクトと変数にアクセスすることを許可します。
指定したドメインの SWF ファイルから、allowDomain() 呼び出しを含む SWF ファイルのオブジェクトと変数にアクセスできるようにします。

注意:AIR アプリケーションサンドボックスのコードからこのメソッドを呼び出すと、SecurityError 例外がスローされます。アプリケーションセキュリティドメイン外のコンテンツは、アプリケーションサンドボックスのコンテンツを直接クロススクリプトできません。ただし、アプリケーションサンドボックス外のコンテンツは、サンドボックスブリッジを使用してアプリケーションセキュリティサンドボックス内のコンテンツと通信できます。

2 つの SWF ファイルが同じドメインに所属している場合(例えば、http://mysite.com/swfA.swf および http://mysite.com/swfB.swf)、swfA.swf で swfB.swf 内の変数、オブジェクト、プロパティ、メソッドなどを調査、変更でき、swfB.swf でも swfA.swf に対して同様のことを実行できます。これは、クロスムービースクリプトまたはクロススクリプトと呼ばれます。

2 つの SWF ファイルが異なるドメインに所属している場合(例えば http://siteA.com/swfA.swf および http://siteB.com/swfB.swf)、デフォルトでは、swfA.swf で swfB.swf をスクリプトすることも、swfB.swf で swfA.swf をスクリプトすることも許可されません。SWF ファイルは、Security.allowDomain() を呼び出すことで他のドメインの SWF ファイルに許可を付与します。これをクロスドメインスクリプトと呼びます。Security.allowDomain("siteA.com") を呼び出すことで、siteB.swf によって siteA.swf に siteB.swf をスクリプトする許可が付与されます。

クロスドメインの場合は、関与する 2 つのドメインを明確にすることが重要です。説明のため、ここでは、クロススクリプトを実行する側をアクセス元(通常、アクセスする SWF)と呼び、他をアクセス先(通常、アクセスされる SWF ファイル)と呼びます。siteA.swf が siteB.swf をスクリプトする場合、siteA.swf がアクセス元で、siteB.swf がアクセス先となります。

allowDomain() を使用して確立されるクロスドメイン許可は、非対称です。前の例では、siteA.swf は siteB.swf をスクリプトできますが、siteB.swf は siteA.swf をスクリプトできません。siteA.swf で、siteA.swf をスクリプトする許可を siteB.com の SWF ファイルに付与するための allowDomain() を呼び出していないためです。対称的な許可を設定するには、両方の SWF ファイルで allowDomain() を呼び出すようにする必要があります。

Flash Player では、SWF ファイルを他の SWF ファイルによるクロスドメインスクリプトから保護するだけでなく、HTML ファイル によるクロスドメインスクリプトからも保護します。HTML から SWF へのスクリプトは、SetVariable などの古いブラウザーの関数を使用するか、ExternalInterface.addCallback() で確立したコールバックを使用することで実行できます。HTML から SWF へのスクリプトがドメインを横切る場合、アクセス先 SWF ファイルは、アクセス元が SWF ファイルの場合と同様に、allowDomain() を呼び出す必要があります。それ以外の場合、操作は失敗します。

allowDomain() にパラメーターとして IP アドレスを指定しても、指定された IP アドレスに存在するすべてのアクセス元からのアクセスが許可されるわけではありません。許可されるのは、その IP アドレスにマッピングされるドメイン名ではなく、指定された IP アドレスが URL に含まれるアクセス元からのアクセスだけです。

バージョン固有の相違点

Flash Player のクロスドメインセキュリティ規則は、バージョンを追うごとに発展してきました。次の表は、相違点をまとめたものです。

クロススクリプトに関係する最新の SWF のバージョンallowDomain() の必要性allowInsecureDomain() の必要性allowDomain() または allowInsecureDomain() を呼び出す必要のある SWF ファイルallowDomain() または allowInsecureDomain() に指定できる項目5 以前不可不可N/AN/A6はい(スーパードメインが一致しない場合)不可アクセス先 SWF ファイルまたはアクセス先 SWF ファイルと同じスーパードメインにある任意の SWF ファイル
  • テキストベースのドメイン(mysite.com)
  • IP アドレス(192.168.1.1)
7はい(ドメインが完全に一致しない場合)はい(HTTP から HTTPS へのアクセスを実行する場合(ドメインが完全に一致する場合でも))アクセス先 SWF ファイルまたはアクセス先 SWF ファイルとまったく同じドメインにある任意の SWF ファイル
  • テキストベースのドメイン(mysite.com)
  • IP アドレス(192.168.1.1)
8 以降はい(ドメインが完全に一致しない場合)はい(HTTP から HTTPS へのアクセスを実行する場合(ドメインが完全に一致する場合でも))アクセス先 SWF ファイル
  • テキストベースのドメイン(mysite.com)
  • IP アドレス(192.168.1.1)
  • ワイルドカード(~~)

Flash Player の動作を制御するバージョンは、Flash Player 自身のバージョンでなく、SWF バージョン(SWF ファイルのパブリッシュバージョン)です。例えば、Flash Player 8 でバージョン 7 用にパブリッシュされた SWF ファイルを再生する場合、バージョン 7 と一貫した動作が適用されます。これによって、アップグレードしても、デプロイされた SWF ファイル内の Security.allowDomain() の動作は変更されなくなります。

前の表のバージョン列は、クロススクリプト操作に関係する最新の SWF のバージョンを示しています。Flash Player の動作は、アクセス元 SWF ファイルまたはアクセス先 SWF ファイルのバージョンのいずれか新しい方のバージョンによって決まります。

次の段落では、Security.allowDomain() に関係する Flash Player のセキュリティ機能の変更について詳細に説明します。

バージョン 5 : クロスドメインスクリプトの制限はありません。

バージョン 6 : クロスドメインスクリプトのセキュリティが導入されました。デフォルトでは、クロスドメインスクリプトは禁止されています。Security.allowDomain() で許可できます。2 つのファイルが同じドメインに属しているかどうかを判別するため、各ファイルのスーパードメインが使用されます。このスーパードメインは、ファイルの URL の完全なホスト名から最初のセグメントを除き、最低 2 セグメントにまでしたものです。例えば、www.mysite.com のスーパードメインは、mysite.com となります。www.mysite.com の SWF ファイルと store.mysite.com の SWF ファイルは、Security.allowDomain() を呼び出さずに、お互いをスクリプトします。

バージョン 7 : スーパードメイン一致が、完全なドメイン一致に変更されました。2 つのファイルでお互いにスクリプトの実行が許可されるのは、それらの URL のホスト名が同じ場合だけです。それ以外の場合は、Security.allowDomain() を呼び出す必要があります。デフォルトでは、HTTPS 以外の URL からロードしたファイルは、まったく同じドメインからファイルをロードしたとしても、HTTPS の URL からロードしたファイルをスクリプトできません。この制限は HTTPS ファイルの保護に役立ちます。HTTPS 以外のファイルは、ダウンロード中に変更されやすく、HTTPS 以外のファイルが悪意を持って変更されると、このような不正操作を受けにくい HTTPS ファイルを破損させる可能性があります。アクセス先の HTTPS SWF ファイルが自発的にこの制限を無効にできるように、Security.allowInsecureDomain() を導入しましたが、Security.allowInsecureDomain() を使用しないことをお勧めします。

バージョン 8 : 2 つの主要な変更点は次のとおりです。

  • Security.allowDomain() を呼び出した場合、アクセス先 SWF ファイルが Security.allowDomain() を呼び出した SWF ファイルであるときにのみ、クロススクリプト操作が許可されるようになりました。つまり、Security.allowDomain() を呼び出した SWF ファイルのみが、自身へのアクセスを許可できるようになりました。前のバージョンでは、Security.allowDomain() を呼び出した場合に、アクセス先 SWF ファイルが Security.allowDomain() を呼び出した SWF ファイルと同じドメインにある SWF ファイルであれば、クロススクリプト操作が許可されていました。前のバージョンでは、Security.allowDomain() を呼び出すと、呼び出し元 SWF ファイルのドメイン全体が開きました。
  • Security.allowDomain("~~") および Security.allowInsecureDomain("~~") では、ワイルドカード値のサポートが追加されました。ワイルドカード(~~)値を使用すると、アクセス元ファイルがどこからロードされたかを問わず、任意のファイルでクロススクリプト操作を許可できます。ワイルドカードは、グローバル許可と考えてください。ワイルドカード許可は、ローカルファイルセキュリティ規則の下で特定の操作を有効にする場合に必要となります。具体的には、ローカル SWF ファイルで、その SWF ファイルにインターネット上の SWF ファイルをスクリプトするネットワークアクセス許可がある場合、アクセス先のインターネット SWF ファイルは、ローカル SWF ファイルの出所が不明であることを反映して、Security.allowDomain("~~") を呼び出す必要があります。インターネット SWF ファイルが HTTPS URL からロードされる場合は、インターネット SWF ファイルでは、代わりに Security.allowInsecureDomain("~~") を呼び出す必要があります。

場合によっては、他のドメインから子 SWF ファイルをロードし、その子 SWF ファイルで親 SWF ファイルをスクリプトしたいが、子 SWF ファイルの最終的なドメインがわからないという状況になることがあります。例えば、ロードバランシングリダイレクトやサードパーティー製サーバーを使用する場合などです。

この状況では、Loader.load() に渡す URLRequest オブジェクトの url プロパティを使用できます。例えば、子 SWF ファイルを 親 SWF にロードする場合、親 SWF の Loader オブジェクトの contentLoaderInfo プロパティに次のようにアクセスできます。

Security.allowDomain(loader.contentLoaderInfo.url)

url プロパティの正しい値を取得するために、子 SWF ファイルのロードが開始されるまで待つようにしてください。子 SWF のロードがいつ開始されたかを確認するには、progress イベントを使用します。

この反対の状況が発生する場合もあります。つまり、親 SWF ファイルで子 SWF ファイルをスクリプトしたいが、親 SWF ファイルのドメインがわからない場合です。この状況では、SWF のルートオブジェクトである表示オブジェクトの loaderInfo プロパティにアクセスできます。子 SWF で、Security.allowDomain( this.root.loaderInfo.loaderURL) を呼び出します。親 SWF ファイルがロードされるまで待つ必要はありません。親 SWF ファイルは子 SWF ファイルがロードされた時点で既にロードされています。

Flash Player 8 以降用にパブリッシュする場合、Security.allowDomain("~~") を呼び出すことによってこのような状況を処理することもできます。ただし、これは危険な近道になりかねません。任意のドメインの任意の他の SWF ファイルから呼び出し元 SWF ファイルにアクセスできるようになるためです。通常、_url プロパティを使用した方が安全です。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

ExternalInterface.addCallback()flash.events.Event.COMPLETEflash.display.DisplayObject.parentflash.net.URLRequest.urlallowInsecureDomain()
allowInsecureDomain 指定したドメイン内の SWF ファイルおよび HTML ファイルが、HTTPS プロトコルでホストされた呼び出し元 SWF ファイルのオブジェクトと変数にアクセスすることを許可します。このメソッドを AIR アプリケーションセキュリティサンドボックス内のコードから呼び出すと、SecurityError 例外がスローされます。アプリケーションセキュリティサンドボックス外のコンテンツは、アプリケーションセキュリティサンドボックスのコンテンツをクロススクリプトできません。 SecurityErrorSecurityErrordomainsアクセス元として許可するドメインを指定するストリングまたは URLRequest オブジェクト。特別なドメイン "~~" を指定して、すべてのドメインからのアクセスを許可できます。

"~~" を指定することは、Flash オーサリングツールで「ローカルでの再生に関するセキュリティ」設定(ファイル/パブリッシュ設定/Flash タブ)の「ネットワークにのみアクセスする」オプションを使用してパブリッシュされたローカル SWF ファイルから、ローカル以外の SWF ファイルへのアクセスを許可する唯一の方法です。

注意:ワイルドカード値は、サブドメインでは動作しません。例えば、domains パラメーターで ~~.foo.com を使用することはできません。クロスドメインポリシーファイルについてはワイルドカード値でサブドメインを指定できますが(~~.foo.com など)、allowInsecureDomain() メソッドではこのようにワイルドカード値を使用することはできません。

HTTPS プロトコルでホストされた SWF ファイルおよび HTML ファイルが、呼び出し元 SWF ファイルのオブジェクトと変数にアクセスすることを許可します。
指定したドメイン内の SWF ファイルおよび HTML ファイルが、HTTPS プロトコルでホストされた呼び出し元 SWF ファイルのオブジェクトと変数にアクセスすることを許可します。

Flash Player では柔軟性を最大化するために allowInsecureDomain() が用意されていますが、このメソッドは呼び出さないことをお勧めします。 HTTPS を介してファイルを提供すると、開発者やユーザーに対して複数の保護機能を提供できますが、allowInsecureDomain の呼び出しによって、これらの保護機能は脆弱になります。

注意:AIR アプリケーションサンドボックスのコードからこのメソッドを呼び出すと、SecurityError 例外がスローされます。アプリケーションセキュリティドメイン外のコンテンツは、アプリケーションサンドボックスのコンテンツを直接クロススクリプトできません。ただし、アプリケーションサンドボックス外のコンテンツは、サンドボックスブリッジを使用してアプリケーションセキュリティサンドボックス内のコンテンツと通信できます。

このメソッドは、Security.allowDomain() と同様に機能します。ただし、アクセス元が HTTPS 以外のプロトコルでロードされ、アクセス先が HTTPS でロードされる操作も許可します。Flash Player 7 以降では、HTTPS 以外のファイルで、HTTPS ファイルをスクリプトすることは許可されません。アクセス先 HTTPS SWF ファイルで allowInsecureDomain() メソッドを使用すると、この制限が解除されます。

HTTPS 以外のファイルから HTTPS ファイルへのスクリプトを有効にする場合にのみ、allowInsecureDomain() を使用してください。アクセス元の HTTPS 以外のファイルとアクセス先の HTTPS ファイルが、同じドメインに所属しているときのスクリプト(例えば、http://mysite.com にある SWF ファイルで https://mysite.com にある SWF ファイルをスクリプトする場合)を有効にするために使用します。HTTPS 以外のファイル間でのスクリプト、HTTPS ファイル間でのスクリプトまたは HTTPS ファイルから HTTPS 以外のファイルへのスクリプトを有効にするためには使用しないでください。このような状況では、代わりに allowDomain() を使用します。

次のシナリオでは、allowInsecureDomain() を十分に考慮せずに使用した場合にセキュリティが危険にさらされる状況を説明します。

次の情報は、考えられるシナリオのうちの 1 つで、クロススクリプトの実際例を通じて allowInsecureDomain() を理解できるように設計されています。セキュリティアーキテクチャに関する問題をすべて取り上げているわけではなく、背景情報としてのみ使用する必要があります。Flash Player デベロッパーセンターには、Flash Player およびセキュリティに関する広範な情報があります。詳細については、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

次の 2 つのコンポーネントから構成される e-コマースサイトを構築するシナリオについて考えてみます。1 つはカタログで、公開情報しか含まれていないため、保護する必要はありません。もう 1 つは、ショッピングカート/チェックアウトコンポーネントで、ユーザーの財務情報と個人情報を保護するためにセキュリティで保護する必要があります。ここで、カタログのサービスは http://mysite.com/catalog.swf から、カートのサービスは https://mysite.com/cart.swf から提供するものとします。このサイトの 1 つの要件として、第三者がセキュリティアーキテクチャの脆弱性を利用して、ユーザーのクレジットカード番号を盗むことができないことが挙げられます。

ここで、中間当事者である攻撃者がサーバーとユーザーの間に介入して、ユーザーがショッピングカートアプリケーションに入力したクレジットカード番号を盗もうとするとします。中間当事者としては、一部のユーザーが利用している悪質な ISP、ユーザーの職場にいる悪意がある管理者など、パブリックインターネット経由で送信されるネットワークパケットをユーザーとサーバー間で表示または変更できるものが考えられます。この状況は珍しいことではありません。

cart.swf で HTTPS を使用してクレジットカード情報をサーバーに送信している場合、中間当事者の攻撃者は、HTTPS 送信が暗号化されているため、ネットワークパケットから直接この情報を盗むことができません。ただし、攻撃者は別の手法を使用できます。それは、いずれかの SWF ファイルの内容をユーザーへの配信時に変更し、その SWF ファイルを(ユーザー情報を攻撃者が所有する別のサーバーに送信する)改変バージョンと置き換えるという手法です。

HTTPS プロトコルは、何よりもまずこの "変更" 攻撃を防止します。暗号化されているだけでなく、HTTPS 送信に不正操作防止機能が付いているためです。中間当事者の攻撃者がパケットを変更すると、受信側はその変更を検出し、パケットを廃棄します。このため、この状況で攻撃者は cart.swf を変更できません。このファイルが HTTPS 経由で配信されるからです。

ところで、HTTP 経由で提供される catalog.swf 内のボタンで、HTTP 経由で提供される cart.swf 内のショッピングカートにアイテムを追加できるようにしたいとします。この機能を実現するために、cart.swf で allowInsecureDomain() を呼び出します。これで、catalog.swf は cart.swf をスクリプトできます。ただし、このアクションでは、予期しない結果が発生します。この場合、攻撃者は、catalog.swf をユーザーが最初にダウンロードする際、その内容を変更できます。catalog.swf は HTTP で配信され、不正操作防止機能が付いていないためです。攻撃者が変更した catalog.swf は、これで cart.swf をスクリプトできるようになります。cart.swf に allowInsecureDomain() への呼び出しが含まれているためです。変更された catalog.swf ファイルは、ActionScript を使用して、cart.swf 内の変数にアクセスできるため、ユーザーのクレジットカード情報やその他の機密データを読み取ることができます。その後、変更された catalog.swf は、このデータを攻撃者のサーバーに送信できます。

この実装は明らかに好ましいものではありませんが、サイト上の 2 つの SWF ファイル間でクロススクリプトを許可したい場合があります。次に、この仮想の e-コマースサイトを再設計して allowInsecureDomain() を除外する方法として、考えられる方法を 2 つ示します。

  • アプリケーション内のすべての SWF ファイルを HTTPS 経由で提供します。これは最も単純で信頼性が高いソリューションです。説明したシナリオでは、catalog.swf と cart.swf の両方を HTTPS 経由で提供します。catalog.swf などのファイルを HTTP から HTTPS に切り替える際、帯域幅の使用量とサーバーの CPU 負荷が少し上がり、ユーザー側では、アプリケーションのロード時間がやや長くなる可能性があります。実際のサーバーで実験して、これらの影響の重大度を判別する必要があります。通常は、それぞれ 10 ~ 20% 程度で、まったく影響がないこともあります。サーバーにある HTTPS 加速ハードウェアやソフトウェアを使用すると、通常は結果を改善できます。関係するすべての SWF ファイルを HTTPS 経由で提供する主要なメリットは、ブラウザーから内容が混在した警告を生成せずに、HTTPS URL をユーザーのブラウザー内の主要な URL として使用できることです。また、ブラウザーのカギのアイコンが表示されるため、セキュリティに関する共通の信頼できるインジケーターがユーザーに提供されます。
  • HTTP から HTTPS へのスクリプトでなく、HTTPS から HTTP へのスクリプトを使用します。説明したシナリオでは、ユーザーのショッピングカートの内容を catalog.swf に保存し、cart.swf でチェックアウトプロセスのみ管理させることができます。チェックアウト時に、cart.swf で、catalog.swf 内の ActionScript 変数からカートの内容を取得できます。HTTP から HTTPS へのスクリプトに関する制限は非対称的なものです。HTTP 経由で提供される catalog.swf ファイルが HTTPS 経由で提供される cart.swf ファイルをスクリプトすることは安全上許可されませんが、HTTPS 経由で提供される cart.swf ファイルは HTTP 経由で提供される catalog.swf ファイルをスクリプトできます。このアプローチは、すべて HTTPS 経由のアプローチよりも微妙な点があります。不正操作を受けやすいため、HTTP 経由で提供される SWF ファイルは信頼しないように注意する必要があります。例えば、cart.swf でカートの内容を記述した ActionScript 変数を取得する際、cart.swf 内の ActionScript コードで、この変数の値が期待した形式になっていると信頼することはできません。カートの内容を確認して、cart.swf に好ましくないアクションを実行させる無効なデータが含まれていないことを調べる必要があります。また、中間当事者が catalog.swf を変更して、例えば、ユーザーのカートにアイテムを入れることにより、有効だが不正確なデータを cart.swf に提供する危険性を甘受する必要があります。通常のチェックアウトプロセスでは、カートの内容と合計金額を表示してユーザーに最後の承認を求めることで、この危険性をいくぶん緩和していますが、それでも危険性は残っています。

Web ブラウザーでは、長年にわたり HTTPS ファイルと HTTPS 以外のファイルの分離を強制してきました。説明したシナリオでは、この制限が必要であることの 1 つの理由が明確に示されています。Flash Player では、絶対必要な場合、このセキュリティの制限を回避できますが、それを実行する前に結果を慎重に検討する必要があります。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

allowDomain()
loadPolicyFile url パラメーターで指定された場所でポリシーファイルを探します。urlString読み込むポリシーファイルの URL の場所。 url パラメーターで指定された場所でポリシーファイルを探します。 url パラメーターで指定された場所でポリシーファイルを探します。Adobe AIR および Flash Player は、ポリシーファイルを使用して、アプリケーションが自身のサーバー以外のサーバーからデータをロードしてよいかどうか判断します。メソッド名は loadPolicyFile() ですが、ネットワー要求によってポリシーファイルが要求されるまではファイルは実際にはロードされません。

Security.loadPolicyFile() によって、Flash Player または AIR では任意の場所からポリシーファイルをロードできるようになります。次に例を示します。

Security.loadPolicyFile("http://www.example.com/sub/dir/pf.xml");

これにより、Flash Player または AIR は指定された URL からポリシーファイルを取得しようとします。この場所に置かれているポリシーファイルによって得られる許可は、サーバーの仮想ディレクトリ階層で同レベル以下のコンテンツすべてに適用されます。

例えば、前のコードに続くこれらの行によって例外はスローされません。

import flash.net.~~; var request:URLRequest = new URLRequest("http://www.example.com/sub/dir/vars.txt"); var loader:URLLoader = new URLLoader(); loader.load(request); var loader2:URLLoader = new URLLoader(); var request2:URLRequest = new URLRequest("http://www.example.com/sub/dir/deep/vars2.txt"); loader2.load(request2);

ただし、次のコードではセキュリティ例外がスローされます。

import flash.net.~~; var request3:URLRequest = new URLRequest("http://www.example.com/elsewhere/vars3.txt"); var loader3:URLLoader = new URLLoader(); loader3.load(request3);

loadPolicyFile() を使用して、任意の数のポリシーファイルをロードできます。ポリシーファイルを必要とする要求がある場合、Flash Player または AIR はポリシーファイルのダウンロードがすべて完了するまで必ず待機します。その間に要求が拒否されることはありません。loadPolicyFile() で指定されたポリシーファイルによって要求が許可されなかった場合は、最終的にデフォルトの場所が参照されます。

マスターポリシーファイルのチェックを行うとき、Flash Player はサーバーの応答を 3 秒間待機します。 応答がない場合、Flash Player ではマスターポリシーファイルが存在しないと判断されます。しかし、loadPolicyFile() の呼び出しのデフォルトタイムアウト値はありません。Flash Player では、呼び出されているファイルが存在するものとして、そのファイルをロードするのに必要なだけ待機します。したがって、マスターポリシーファイルを確実にロードするには、loadPolicyFile() を使用し、明示的に呼び出します。

一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。

特定のポート番号で xmlsocket プロトコルを使用することで、直接 XMLSocket サーバーからポリシーファイルを取得することができます。次に例を示します。ソケット接続は、上記のよく予約されるポートに関する制限事項の対象外です。

Security.loadPolicyFile("xmlsocket://foo.com:414");

このコードを使用すると、Flash Player または AIR は指定されたホストとポートからポリシーファイルを取得しようとします。指定されたポートを使用して接続が確立されると、Flash Player または AIR は <policy-file-request /> を送信します(これは、null バイトで終了します)。ポリシーファイルを終了するためにサーバーから null バイトを送信し、それ以降の接続を閉じる必要があります。サーバー側で接続を閉じなければ、最後の null バイトが受信されるとすぐに Flash Player 側または AIR 側で接続が閉じられます。

SWF ファイルがこのメソッドを使用しないようにするには、allowNetworking パラメーター(SWF コンテンツを含んでいる HTML ページの object タグおよび embed タグのパラメーター)を設定します。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

showSettings Flash Player のセキュリティ設定パネルを表示します。panelStringdefaultどのセキュリティ設定パネルを表示するかを指定する SecurityPanel クラスの値です。このパラメーターを省略すると、SecurityPanel.DEFAULT が使用されます。 Flash Player のセキュリティ設定パネルを表示します。このメソッドは Adobe AIR のコンテンツに適用されません。AIR アプリケーションでこのメソッドを呼び出しても無効です。 SecurityPanelAPPLICATION このファイルは AIR アプリケーションで実行され、そのアプリケーションのパッケージ(AIR ファイル)と共にインストールされます。applicationString このファイルは AIR アプリケーションで実行され、そのアプリケーションのパッケージ(AIR ファイル)と共にインストールされます。このコンテンツは AIR アプリケーションリソースディレクトリ(アプリケーションコンテンツのインストール先)に含まれています。 sandboxTypeREMOTELOCAL_WITH_FILELOCAL_WITH_NETWORKLOCAL_TRUSTEDLOCAL_TRUSTED このファイルはローカルファイルであり、信頼性があります。このファイルは Flash Player 設定マネージャーまたは FlashPlayerTrust 構成ファイルを使用します。localTrustedString このファイルはローカルファイルであり、信頼性があります。このファイルは Flash Player 設定マネージャーまたは FlashPlayerTrust 構成ファイルを使用します。このファイルは、ローカルのデータソースから読み取ることも、インターネットでやり取りすることもできます。 sandboxTypeREMOTELOCAL_WITH_FILELOCAL_WITH_NETWORKAPPLICATIONLOCAL_WITH_FILE このファイルはローカルファイルであり、信頼性はなく、ネットワークを指定してパブリッシュされた SWF ファイルではありません。localWithFileString このファイルはローカルファイルであり、信頼性はなく、ネットワークを指定してパブリッシュされた SWF ファイルではありません。Adobe AIR では、ローカルファイルはアプリケーションリソースディレクトリにはありません。これらのファイルはアプリケーションセキュリティサンドボックスに配置されます。 ファイルは、ローカルのデータソースから読み取ることはできますが、インターネットでのやり取りはできません。 sandboxTypeREMOTELOCAL_WITH_NETWORKLOCAL_TRUSTEDAPPLICATIONLOCAL_WITH_NETWORK このファイルはローカルファイルであり、信頼性はありませんが、ネットワークを指定してパブリッシュされた SWF ファイルです。localWithNetworkString このファイルはローカルファイルであり、信頼性はありませんが、ネットワークを指定してパブリッシュされた SWF ファイルです。このファイルはインターネットとのやり取りはできますが、ローカルデータソースからの読み取りはできません。 sandboxTypeREMOTELOCAL_WITH_FILELOCAL_TRUSTEDAPPLICATIONREMOTE このファイルはインターネット URL からのものであり、ドメインベースのサンドボックス規則に従って機能します。remoteString このファイルはインターネット URL からのものであり、ドメインベースのサンドボックス規則に従って機能します。 sandboxTypeLOCAL_WITH_FILELOCAL_WITH_NETWORKLOCAL_TRUSTEDAPPLICATIONexactSettings 特定の コンテンツ設定に使用するドメインを Flash Player または AIR がどのように選択するかを指定します。設定には、カメラとマイクの許可、記憶領域の割り当て、永続共有オブジェクトの記憶領域などがあります。BooleanFlash Player または AIR アプリケーションは、プレーヤー設定に関する決定で exactSettings の値を少なくとも一度使用しました。 SecurityErrorSecurityError 特定の コンテンツ設定に使用するドメインを Flash Player または AIR がどのように選択するかを指定します。設定には、カメラとマイクの許可、記憶領域の割り当て、永続共有オブジェクトの記憶領域などがあります。Flash Player 6 で使用されていた設定と同じ設定を SWF ファイルで使用するには、exactSettingsfalse に設定します。

Flash Player 6 では、これらのプレーヤー設定に使用されていたドメインは、SWF ファイルのドメインの最後の部分に基づいていました。www.example.com のように SWF ファイルのドメインに 3 つ以上のセグメントが含まれている場合、ドメインの最初のセグメント("www")は削除され、ドメインの残りの部分 example.com が使用されます。したがって、Flash Player 6 における www.example.com と store.example.com では、どちらも example.com がこれらの設定のドメインとして使用されます。同様に、www.example.co.uk と store.example.co.uk はどちらも example.co.uk をこれらの設定のドメインとして使用します。Flash Player 7 以降では、プレーヤー設定はデフォルトで SWF ファイルの正確なドメインに従って選択されます。例えば、www.example.com の SWF ファイルは www.example.com のプレーヤー設定を使用し、store.example.com の SWF ファイルはそれとは別の store.example.com のプレーヤー設定を使用します。

Security.exactSettingstrue に設定された場合、Flash Player または AIR は、プレーヤー設定に対して正確なドメインを使用します。exactSettings のデフォルト値は true です。exactSettings をデフォルト値から変更する場合は、Flash Player または AIR でプレーヤー設定を選択する必要があるイベントが発生する前に、その変更を行う必要があります。例えば、カメラまたはマイクの使用や永続共有オブジェクトの取得などのイベントの前です。

バージョン 6 の SWF ファイルをパブリッシュし、そのファイルから永続共有オブジェクトを作成しているときに、バージョン 7 以降にその SWF ファイルを移植した後で SWF ファイルからその永続共有オブジェクトを取得するか、バージョン 7 以降の別の SWF ファイルからその永続共有オブジェクトを取得する必要がある場合は、Security.exactSettingsfalse に設定してから SharedObject.getLocal() を呼び出します。

pageDomain SWF を含んでいるページのドメインを取得します。String SWF を含んでいるページのドメインを取得します。セキュリティ上の理由から、このメソッドは完全な URL を返さず、ページのドメインのみ(http://www.example.com など)を返します。 sandboxType 呼び出し元のファイルが動作しているセキュリティサンドボックスのタイプを示します。String 呼び出し元のファイルが動作しているセキュリティサンドボックスのタイプを示します。

Security.sandboxType は、次のいずれかの値になります。

  • remote (Security.REMOTE) — この ファイルはインターネット URL からのものであり、ドメインベースのサンドボックス規則に従って機能します。
  • localWithFile (Security.LOCAL_WITH_FILE) - このファイルはローカルファイルであり、信頼性はなく、ネットワークを指定してパブリッシュされた SWF ファイルではありません。ファイルは、ローカルのデータソースから読み取ることはできますが、インターネットでのやり取りはできません。
  • localWithNetwork (Security.LOCAL_WITH_NETWORK) - この SWF ファイルはローカルファイルであり、信頼性はありませんが、ネットワークを指定してパブリッシュされています。この SWF ファイルはインターネットとのやり取りはできますが、ローカルデータソースからの読み取りはできません。
  • localTrustedSecurity.LOCAL_TRUSTED)- この ファイルはローカルファイルであり、信頼性があります。このファイルは Flash Player 設定マネージャーまたは FlashPlayerTrust 構成ファイルを使用します。 このファイルは、ローカルのデータソースから読み取ることも、インターネットでやり取りすることもできます。
  • applicationSecurity.APPLICATION)- このファイルは AIR アプリケーションで実行され、そのアプリケーションのパッケージ(AIR ファイル)と共にインストールされます。デフォルトでは、AIR アプリケーションサンドボックスのファイルは、任意のドメインの任意のファイルをクロススクリプトできます(ただし、AIR アプリケーションサンドボックス外のファイルでは、AIR ファイルをクロススクリプトできない場合があります)。デフォルトでは、AIR アプリケーションサンドボックスのファイルは、任意のドメインからコンテンツおよびデータを読み込むことができます。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

REMOTELOCAL_WITH_FILELOCAL_WITH_NETWORKLOCAL_TRUSTEDAPPLICATION
LoaderContext LoaderContext クラスは、Loader クラスを使用して、SWF ファイルなどのメディアをロードするオプションを指定します。Object LoaderContext クラスは、Loader クラスを使用して、SWF ファイルなどのメディアをロードするオプションを指定します。LoaderContext クラスは、Loader クラスの load() および loadBytes() メソッドで context パラメーターとして使用されます。

Loader.load() メソッドで SWF ファイルをロードする場合、次の 2 つのことを決定します。ロードした SWF ファイルをどのセキュリティドメインに配置するか、およびそのセキュリティドメイン内のどのアプリケーションドメインに配置するかです。これらの選択の詳細については、applicationDomain および securityDomain プロパティを参照してください。

Loader.loadBytes() メソッドで SWF ファイルをロードする場合、Loader.load() の場合と同じアプリケーションドメイン選択がありますが、セキュリティドメインを指定する必要はありません。Loader.loadBytes() では、ロードされた SWF ファイルが常にロード元 SWF ファイルのセキュリティドメインに配置されるためです。

SWF ファイルではなくイメージ(JPEG、GIF または PNG)をロードする場合、SecurityDomain またはアプリケーションドメインを指定する必要はありません。これらの概念は SWF ファイルに対してのみ意味を持ちます。代わりに、次のことのみを決定します。ロードしたイメージのピクセルにプログラムによってアクセスする必要があるかどうかです。必要がある場合は、checkPolicyFile プロパティを参照してください。イメージのロード時に非ブロックを適用する場合は、LoaderContext クラスの代わりに JPEGLoaderContext クラスを使用します。

flash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.ApplicationDomainflash.system.JPEGLoaderContextflash.system.LoaderContext.applicationDomainflash.system.LoaderContext.checkPolicyFileflash.system.LoaderContext.securityDomainflash.system.SecurityDomainflash.system.ImageDecodingPolicyLoaderContext 指定された設定で、新しい LoaderContext オブジェクトを作成します。checkPolicyFileBooleanfalseオブジェクトをロードする前に、URL ポリシーファイルの存在を確認するかどうかを指定します。 applicationDomainflash.system:ApplicationDomainnullLoader オブジェクトで使用する ApplicationDomain オブジェクトを指定します。 securityDomainflash.system:SecurityDomainnullLoader オブジェクトで使用する SecurityDomain オブジェクトを指定します。

注意:AIR アプリケーションセキュリティサンドボックスのコンテンツでは、他のサンドボックスからその SecurityDomain にコンテンツをロードすることはできません。

指定された設定で、新しい LoaderContext オブジェクトを作成します。これらの設定について詳しくは、このクラスのプロパティの説明を参照してください。
flash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.ApplicationDomainflash.system.SecurityDomain
allowCodeImport Loader オブジェクトを使用して、呼び出し元のセキュリティサンドボックスに、実行可能コードと共に SWF ファイルなどのコンテンツを読み込むことができるかどうかを指定します。Boolean Loader オブジェクトを使用して、呼び出し元のセキュリティサンドボックスに、実行可能コードと共に SWF ファイルなどのコンテンツを読み込むことができるかどうかを指定します。影響を受ける読み込み操作が 2 つあります。Loader.loadBytes() メソッドと、LoaderContext.securityDomain = SecurityDomain.currentDomain を指定した Loader.load() メソッドです(後者の操作は、AIR アプリケーションサンドボックスではサポートされません)。allowCodeImport プロパティを false に設定すると、読み込み操作はイメージのロードなどの安全な操作のみに制限されます。通常の、Loader.load() メソッドでロードされる非読み込み SWF ファイルは、このプロパティの値によって影響されません。

このプロパティは、サンドボックスにイメージコンテンツを読み込むときに、必要なのはイメージファイルだけであるが SWF ファイルも読み込んでしまうというセキュリティ上のリスクを避ける場合に有用です。例えば、別のドメインからのイメージをレプリケートまたは処理する場合などがこれに該当します。SWF ファイルには ActionScript コードが含まれているため、SWF ファイルの読み込みは、イメージファイルの読み込みに比べて大きなリスクを伴います。

アプリケーションサンドボックスの AIR コンテンツでは、デフォルト値は false です。アプリケーション以外のコンテンツ(Flash Player 内のすべてのコンテンツを含む)では、デフォルト値は true です。

allowCodeImport プロパティが、Flash Player 10.1 および AIR 2.0 に追加されました。ただし、Flash ランタイムがこのプロパティをサポートする場合には、このプロパティは SWF ファイルおよびすべてのバージョンの AIR アプリケーションで使用できます。

flash.display.Loader.loadBytes()flash.display.Loader.load()securityDomain
applicationDomain Loader.load() または Loader.loadBytes() メソッドで使用するアプリケーションドメインを指定します。nullflash.system:ApplicationDomain Loader.load() または Loader.loadBytes() メソッドで使用するアプリケーションドメインを指定します。ActionScript 1.0 や ActionScript 2.0 で記述されたイメージまたは SWF ファイルではなく、ActionScript 3.0 で記述された SWF ファイルをロードする場合にのみ、このプロパティを使用します。

すべてのセキュリティドメインは、複数のアプリケーションドメインに分割することもできます。アプリケーションドメインは ApplicationDomain オブジェクトで表されます。アプリケーションドメインの目的はセキュリティではありません。ActionScript コードの協調単位の管理が目的です。別のドメインから SWF ファイルをロードし、別のセキュリティドメインへの配置を許可する場合、ロードされた SWF ファイルが配置されるアプリケーションドメインの選択は制御できません。アプリケーションドメインの選択を指定した場合は、無視されます。ただし、独自のセキュリティドメインに SWF ファイルをロードする場合は、SWF ファイルが独自のドメインから取得されるか、または独自のセキュリティドメインに読み込まれるので、ロードされる SWF ファイルに対するアプリケーションドメインの選択を制御できます。

独自のセキュリティドメインからのみ、LoaderContext.applicationDomain でアプリケーションドメインを渡すことができます。その他のセキュリティドメインからアプリケーションドメインを渡そうとすると、SecurityError 例外になります。

使用する ApplicationDomain プロパティは、次の 4 種類から選択できます。

  • ローダーの ApplicationDomain の子。 デフォルト。この選択は、シンタックス new ApplicationDomain(ApplicationDomain.currentDomain) で明示的に表すことができます。この選択では、ロードされた SWF ファイルは親のクラスを直接使用できます。たとえば、new MyClassDefinedInParent() を記述します。ただし、親はこのシンタックスを使用できません。親が子のクラスを使用する場合、ApplicationDomain.getDefinition() を呼び出して取得する必要があります。この選択の利点は、親によって既に定義されているクラスと同じ名前のクラスを子が定義する場合にエラーが発生しないことです。子は、そのクラスの親の定義を継承します。子の競合する定義は、子または親が ApplicationDomain.getDefinition() メソッドを呼び出してその定義を取得しない限り使用されません。
  • ローダー自体の ApplicationDomain。 このアプリケーションドメインは、ApplicationDomain.currentDomain を使用する場合に使用します。ロードが完了すると、親および子はいずれも互いのクラスの両方を直接使用できます。親が既に定義しているクラスと同じ名前のクラスを子が定義しようとすると、親クラスが使用され、子クラスは無視されます。
  • システム ApplicationDomain の子。 このアプリケーションドメインは、new ApplicationDomain(null) を使用する場合に使用します。ローダーとローディーは完全に分離され、競合や影響を発生させずに同じ名前で別々のバージョンのクラスを定義できます。一方が他方のクラスを参照する唯一の方法は、ApplicationDomain.getDefinition() メソッドの呼び出しです。
  • 他の ApplicationDomain の子。複雑な ApplicationDomain 階層がある場合があります。独自の SecurityDomain から任意の ApplicationDomain に SWF ファイルをロードできます。たとえば、new ApplicationDomain(ApplicationDomain.currentDomain.parentDomain.parentDomain) では、SWF ファイルは現在のドメインの親の親の新しい子にロードされます。

ロードの完了後、ApplicationDomain.getDefinition() を呼び出すために、ロードする側またはロードされる側のいずれかが独自の ApplicationDomain または他方の ApplicationDomain を見つける必要がある場合があります。いずれの側も、ApplicationDomain.currentDomain によって独自のアプリケーションドメインの参照を取得できます。ロード元 SWF ファイルは、Loader.contentLoaderInfo.applicationDomain によって、ロードされた SWF ファイルの ApplicationDomain の参照を取得できます。ロードされた SWF ファイルで、自身がどのようにロードされたかがわかる場合は、ロード元 SWF ファイルの ApplicationDomain オブジェクトを見つけることができます。たとえば、子がデフォルトの方法でロードされた場合、ApplicationDomain.currentDomain.parentDomain によって、子はロード元 SWF ファイルのアプリケーションドメインを見つけることができます。

詳細については、『ActionScript 3.0 開発ガイド』の「クライアントのシステム環境」の章にある「ApplicationDomain クラス」を参照してください。

flash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.ApplicationDomain
checkPolicyFile オブジェクト自体の読み込みを開始する前に、アプリケーションで、読み込まれるオブジェクトのサーバーから URL ポリシーファイルをダウンロードしようとするかどうかを指定します。falseBoolean オブジェクト自体の読み込みを開始する前に、アプリケーションで、読み込まれるオブジェクトのサーバーから URL ポリシーファイルをダウンロードしようとするかどうかを指定します。このフラグは、Loader.load() メソッドには適用できますが、Loader.loadBytes() メソッドには適用できません。

イメージ(JPEG、GIF または PNG)を呼び出し元 SWF ファイル自体のドメイン外からロードし、そのイメージのコンテンツに ActionScript からアクセスする必要がある場合に、このフラグを true に設定します。イメージコンテンツへのアクセスの例には、ビットマップオブジェクトを取得するための Loader.content プロパティの参照や、ロードされたイメージのピクセルのコピーを取得するための BitmapData.draw() メソッドの呼び出しなどがあります。読み込み時に、指定された checkPolicyFile を持たずにこれらの操作のいずれかを試行した場合、SecurityError 例外を受け取る場合があります。必要なポリシーファイルがまだ読み込まれていないためです。

Loader.load() メソッドを呼び出す際に LoaderContext.checkPolicyFiletrue に設定していると、関連する URL ポリシーファイルが正常にダウンロードされるか、そのようなポリシーファイルが存在しないことがわかるまで、アプリケーションは URLRequest.url で指定されたオブジェクトのダウンロードを開始しません。Flash Player または AIRでは、最初に既にダウンロードされているポリシーファイルが考慮され、次に Security.loadPolicyFile() メソッドの呼び出しで指定された保留されているポリシーファイルのダウンロードが試行されます。次に、URLRequest.url に対応するデフォルトの場所からのポリシーファイルのダウンロードが試行されます。これは、URLRequest.url と同じサーバーの /crossdomain.xml です。どのような場合でも、所定のポリシーファイルが、ポリシーファイルの場所に基づいて URLRequest.url に存在していること、およびそのポリシーファイルの <allow-access-from> タグによってアクセスが許可されていることが必要となります。

checkPolicyFiletrue に設定した場合、Loader.load() メソッドで指定された主要なダウンロードは、ポリシーファイルの処理が完了するまで行われません。 したがって、必要なポリシーファイルが存在している場合には、Loader オブジェクトの contentLoaderInfo プロパティから ProgressEvent.PROGRESS または Event.COMPLETE イベントを受け取るとすぐにポリシーファイルのダウンロードが完了し、ポリシーファイルが必要な操作を安全に開始できます。

checkPolicyFiletrue に設定し、関連するポリシーファイルが見つからない場合、SecurityError 例外をスローする操作を試行するまで、エラーは表示されません。ただし、LoaderInfo オブジェクトによって ProgressEvent.PROGRESS または Event.COMPLETE イベントが送出されると、LoaderInfo.childAllowsParent プロパティの値を確認することによって、関連するポリシーファイルが見つかったかどうかをテストできます。

ロードするイメージへのピクセルレベルのアクセスが必要ない場合は、checkPolicyFile プロパティを true に設定しないようにする必要があります。この場合、ポリシーファイルの確認は時間の浪費になります。ダウンロードの開始が遅れ、ネットワーク帯域幅を不必要に消費する場合があるためです。

また、Loader.load() メソッドを使用して SWF ファイルをダウンロードする場合、checkPolicyFiletrue に設定しないでください。これは、SWF から SWF への権限はポリシーファイルではなく Security.allowDomain() メソッドによって制御され、SWF ファイルをロードする場合は checkPolicyFile は無効であるためです。この場合、ポリシーファイルの確認は時間の浪費になります。SWF ファイルのダウンロードが遅れ、ネットワーク帯域幅を不必要に消費する場合があるためです。ポリシーファイルのダウンロードは主要なダウンロードの前に行われるので、SWF ファイルとイメージのどちらが主要なダウンロードであるかを Flash Player または AIR で判別することはできません。

サーバーサイド HTTP リダイレクトを使用する可能性がある URL からオブジェクトをダウンロードする場合は、checkPolicyFile に注意してください。ポリシーファイルは常に、URLRequest.url で指定された対応する初期 URL から取得されます。 最終的なオブジェクトが HTTP リダイレクトによって別の URL から取得される場合、最初にダウンロードされたポリシーファイルはオブジェクトの最終的な URL に適用できないことがあります。この URL はセキュリティ判定において重要です。このような場合、ProgressEvent.PROGRESS または Event.COMPLETE イベントを受け取った後で、LoaderInfo.url の値を調べることができます。これにより、オブジェクトの最終的な URL がわかります。次に、オブジェクトの最終的な URL に基づくポリシーファイル URL で Security.loadPolicyFile() メソッドを呼び出します。次に、LoaderInfo.childAllowsParent の値を、それが true になるまでポーリングします。

このプロパティを、アプリケーションサンドボックスで実行している AIR コンテンツに設定する必要はありません。AIR アプリケーションサンドボックスのコンテンツは、ロードされたイメージコンテンツをソースとして使用し、BitmapData.draw() メソッドを呼び出すことができます。

flash.display.BitmapData.draw()flash.display.Loader.contentflash.display.Loader.load()flash.display.LoaderInfo.childAllowsParentflash.display.LoaderInfo.urlflash.system.Security.allowDomain()flash.system.Security.loadPolicyFile()
imageDecodingPolicy イメージデータのデコードを、使用時またはロード時のどちらで行うかを指定します。String イメージデータのデコードを、使用時またはロード時のどちらで行うかを指定します。

デフォルトのポリシー ImageDecodingPolicy.ON_DEMAND では、表示またはその他の目的のためにイメージデータが必要なときに、ランタイムによってデータがデコードされます。このポリシーでは、以前のバージョンのランタイムによって使用されたデコードの動作が維持されます。

ImageDecodingPolicy.ON_LOAD ポリシーでは、イメージのロード直後で complete イベントの送出前に、ランタイムによってイメージがデコードされます。オンデマンドではなくロード時にイメージをデコードすると、複数のロードされたイメージが立て続けに表示される、スクロールリストやカバーフロー制御などの処理時に、アニメーションや UI のパフォーマンスを向上できます。一方、onLoad ポリシーを無差別に使用すると、onDemand ポリシー適用時に比べて、より多くのデコードされたイメージデータが一度にメモリに格納されるので、アプリケーションのピークメモリ使用量が増加することになります。

両方のポリシーにおいて、同じキャッシュおよびフラッシュの動作がイメージのデコード後に、ランタイムによって適用されます。デコードされたデータはいつでもフラッシュされ、次回必要なときにイメージが再デコードされることが可能です。

flash.system.ImageDecodingPolicy
parameters コンテンツの LoaderInfo オブジェクトに渡すパラメーターを含むオブジェクトです。Object コンテンツの LoaderInfo オブジェクトに渡すパラメーターを含むオブジェクトです。

通常、contentLoaderInfo.parameters プロパティの値は、要求 URL の解析によって取得されます。parameters var が設定されている場合、contentLoaderInfo.parameters は、要求 URL からではなく、LoaderContext オブジェクトから値を取得します。parameters var は、URL パラメーターと同様に、名前と値のストリングペアを含むオブジェクトのみを受け付けます。オブジェクトに名前と値のストリングペアが含まれていない場合、IllegalOperationError がスローされます。

この API の目的は、SWF ファイルのロードを有効にして、そのパラメーターをロードされた SWF ファイルに転送することです。この機能は loadBytes() メソッドを使用する場合に特に便利です。これは、LoadBytes では URL を介してパラメーターを渡す手段が提供されないためです。パラメーターは別の AS3 SWF ファイルにのみ正常に転送できます。AVM1Movie の AS3 loaderInfo.parameters オブジェクトは転送されるオブジェクトになりますが、AS1 または AS2 SWF ファイルはアクセス可能な形式でパラメーターを受け取ることができません。

例えば、次のような URL があるとします。

http://yourdomain/users/jdoe/test01/child.swf?foo=bar;

次のコードは、LoaderContext.parameters プロパティを使用して、この URL に渡されたパラメーターを複製します。

      import flash.system.LoaderContext; 
      import flash.display.Loader; 
      var l:Loader = new Loader(); 
      var lc:LoaderContext = new LoaderContext; 
      lc.parameters = { "foo": "bar" }; 
      l.load(new URLRequest("child.swf"), lc);
     

パラメーターが適切に渡されたことを確認するには、このコードの実行後に次の trace ステートメントを使用します。

trace(loaderInfo.parameters.foo);

コンテンツが正常にロードされた場合、この trace によって「bar」と表示されます。

requestedContentParent Loader が試行する、ロードされたコンテンツの追加先となる親です。flash.display:DisplayObjectContainer Loader が試行する、ロードされたコンテンツの追加先となる親です。

コンテンツが完全にロードされると、Loader オブジェクトは、通常そのコンテンツの親となります。requestedContentParent が設定されている場合、ランタイムエラーによって割り当てが妨害されない限り、これを指定したオブジェクトが親となります。この親の再設定は、complete イベント後にこのプロパティを使用しないで実行することもできます。ただし、LoaderContext.requestedContentParent を使用して親を指定すると、必要でないイベントが除外されます。

LoaderContext.requestedContentParent は、ロードされたコンテンツ内のフレーム 1 のスクリプトの実行前、コンストラクターの実行後に、目的の親を設定します。requestedContentParent が null の場合(デフォルト)、Loader オブジェクトがコンテンツの親となります。

ロードされたコンテンツが AVM1Movie オブジェクトの場合、または requestedContentParent オブジェクトに対して addChild() が呼び出されたときにエラーがスローされた場合、次のアクションが発生します。

  • Loader オブジェクトがロードされたコンテンツの親になります。
  • ランタイムが AsyncErrorEvent を送出します。

要求された親とロードされたコンテンツが異なるセキュリティサンドボックスにある場合で、かつ要求された親がロードされたコンテンツにアクセスできない場合は、次のアクションが発生します。

  • Loader がロードされたコンテンツの親になります。
  • ランタイムが SecurityErrorEvent を送出します。

次のコードは、requestedContentParent を使用して、ロードされたコンテンツを Sprite オブジェクト内に配置します。

      import flash.system.LoaderContext; 
      import flash.display.Loader; 
      import flash.display.Sprite; 
     
      var lc:LoaderContext = new LoaderContext(); 
      var l:Loader = new Loader(); 
      var s:Sprite = new Sprite(); 
      lc.requestedContentParent = s; 
      addChild(s); 
      l.load(new URLRequest("child.swf"), lc);
     

このコードを実行すると、子 SWF ファイルがステージ上に表示されます。このことによって、ステージに追加した Sprite オブジェクトがロードされた child.swf ファイルの親であることを確認できます。

securityDomain Loader.load() 操作に使用するセキュリティドメインを指定します。nullflash.system:SecurityDomain Loader.load() 操作に使用するセキュリティドメインを指定します。このプロパティは、イメージではなく SWF ファイルをロードする場合にのみ使用します。

セキュリティドメインの選択は、ロード元 SWF ファイルとは異なるドメイン(異なるサーバー)から取得される可能性がある SWF ファイルをロードする場合にのみ意味を持ちます。独自のドメインから SWF ファイルをロードする場合は、常に独自のセキュリティドメインに配置されます。ただし、SWF ファイルを別のドメインからロードする場合は、2 つのオプションがあります。ロードされる SWF ファイルを、ロード元 SWF ファイルとは異なる "通常の" セキュリティドメインに配置できます。これはデフォルトの設定です。もう 1 つのオプションでは、myLoaderContext.securityDomainSecurityDomain.currentDomain が等しくなるように設定して、ロードされる SWF ファイルをロード元 SWF ファイルと同じセキュリティドメインに配置するように指定します。これは読み込みロードと呼ばれます。これは、セキュリティのために、ロードされる SWF ファイルを独自のサーバーにコピーしてそこからロードする場合と同じです。読み込みロードが成功するには、ロードされる SWF ファイルのサーバーに、ロード元 SWF ファイルのドメインを信頼するポリシーファイルが必要です。

LoaderContext.securityDomain で、独自のセキュリティドメインのみを渡すことができます。その他のセキュリティドメインを渡そうとすると、SecurityError 例外になります。

AIR アプリケーションセキュリティサンドボックスのコンテンツでは、他のサンドボックスからその SecurityDomain にコンテンツをロードすることはできません。

詳しくは、『ActionScript 3.0 Developer's Guide』の「セキュリティ」の章を参照してください。

flash.display.Loader.load()flash.system.SecurityDomain
allowLoadBytesCodeExecution allowCodeImport によって置き換えられたが、互換性のために引き続きサポートされるレガシープロパティ。Boolean allowCodeImport によって置き換えられたが、互換性のために引き続きサポートされるレガシープロパティ。以前は、allowLoadBytesCodeExecution によって影響される操作は Loader.loadBytes() メソッドだけでしたが、Flash Player 10.1 および AIR 2.0 では、LoaderContext.securityDomain = SecurityDomain.currentDomain が指定されている Loader.load() による読み込みとロード操作も同様に影響されます(後者の操作は、AIR アプリケーションサンドボックスではサポートされません)。このような二重の影響によってプロパティ名 allowLoadBytesCodeExecution の固有性が過度になるため、現在は allowCodeImport が推奨されるプロパティ名となっています。allowCodeImport または allowLoadBytesCodeExecution のいずれかを設定すると、両方の値に影響します。

Loader オブジェクトを使用して、呼び出し元のセキュリティサンドボックスに、実行可能コードと共に SWF ファイルなどのコンテンツを読み込むことができるかどうかを指定します。このプロパティを false に設定すると、読み込み操作はイメージのロードなどの安全な操作のみに制限されます。

アプリケーションサンドボックスの AIR コンテンツでは、デフォルト値は false です。アプリケーションコンテンツ以外では、デフォルト値は true です。

flash.display.Loader.loadBytes()
JPEGLoaderContext JPEGLoaderContext クラスには、JPEG 画像のロード時に非ブロックフィルターを有効にするプロパティが含まれています。flash.system:LoaderContext JPEGLoaderContext クラスには、JPEG 画像のロード時に非ブロックフィルターを有効にするプロパティが含まれています。非ブロックフィルターは、隣接するセルをスムージングすることによって、高圧縮時の画質を向上させます。JPEG イメージのロード時に非ブロックを適用するには、JPEGLoaderContext オブジェクトを作成して、その deblockingFilter プロパティを設定します。次に、JPEGLoaderContext オブジェクトの名前を、context パラメーターの値として、イメージのロードに使用される Loader オブジェクトの load() メソッドで使用します。

JPEGLoaderContext クラスは LoaderContext クラスを拡張します。ロードしたイメージのピクセルにプログラムでアクセスする必要がある場合、checkPolicyFile プロパティを true に設定します(例えば、BitmapData.draw() メソッドを使用する場合など)。アプリケーションサンドボックス内で実行される AIR コンテンツについては、checkPolicyFile プロパティを設定する必要はありません。

flash.display.Loader.load()flash.display.BitmapData.draw()JPEGLoaderContext 指定された設定で、新しい JPEGLoaderContext オブジェクトを作成します。deblockingFilterNumber0.0非ブロックフィルターの強度を指定します。値を 1.0 にすると、最高強度の非ブロックフィルターが適用され、値を 0.0 にすると、非ブロックフィルターは無効になります。 checkPolicyFileBooleanfalseオブジェクトを読み込む前に、Flash Player が URL ポリシーファイルの存在を確認するかどうかを指定します。アプリケーションセキュリティサンドボックス内で実行される AIR コンテンツには適用されません。 applicationDomainflash.system:ApplicationDomainnullLoader オブジェクトで使用する ApplicationDomain オブジェクトを指定します。 securityDomainflash.system:SecurityDomainnullLoader オブジェクトで使用する SecurityDomain オブジェクトを指定します。 指定された設定で、新しい JPEGLoaderContext オブジェクトを作成します。 flash.system.LoaderContextflash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.ApplicationDomainflash.system.SecurityDomaindeblockingFilter 非ブロックフィルターの強度を指定します。0.0Number 非ブロックフィルターの強度を指定します。値を 1.0 にすると、最高強度の非ブロックフィルターが適用され、値を 0.0 にすると、非ブロックフィルターは無効になります。
Capabilities Capabilities クラスは、アプリケーションをホスティングするシステムとランタイムを記述するプロパティを提供します。Object Capabilities クラスは、アプリケーションをホスティングするシステムとランタイムを記述するプロパティを提供します。例えば、携帯電話の画面は 100 × 100 ピクセル、モノクロで、PC の画面は 1000 × 1000 ピクセル、カラーである場合があります。Capabilities オブジェクトを使用して、クライアントが備えている機能を特定することによって、できるだけ多数のユーザーに対して適切なコンテンツを提供できます。デバイスの機能がわかると、適切な SWF ファイルを送るようにサーバーに指示したり、表示形式を変更するように SWF ファイルに指示したりすることができます。

ただし、Adobe AIR の一部の機能は、Capabilities クラスのプロパティとしてリストに示されていません。これらは他のクラスのプロパティです。

プロパティ説明NativeApplication.supportsDockIconオペレーティングシステムがアプリケーションドックアイコンをサポートするかどうか。NativeApplication.supportsMenuオペレーティングシステムがグローバルアプリケーションメニューバーをサポートするかどうか。NativeApplication.supportsSystemTrayIconオペレーティングシステムがシステムトレイアイコンをサポートするかどうか。NativeWindow.supportsMenuオペレーティングシステムがウィンドウメニューをサポートするかどうか。NativeWindow.supportsTransparencyオペレーティングシステムが透明なウィンドウをサポートするかどうか。

Capabilities.os または Capabilities.manufacturer を使用して、オペレーティングシステムに基づく機能を判断しないでください。機能をオペレーティングシステムに依存することは、アプリケーションが潜在的なすべてのターゲットオペレーティングシステムを考慮していない場合に問題が発生する可能性があるので、適切ではありません。代わりに、テストしている機能に対応するプロパティを使用します。

機能情報(Capabilities.serverString プロパティに URL エンコードされたストリングとして格納されている)を、GET または POST HTTP メソッドを使用して送信できます。次に、MP3 をサポートし、解像度が 1600 × 1200 ピクセルで、Windows XP を実行しており、IME がインストールされているコンピューターに対するサーバーストリングの例を示します。

A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&
     SB=f&DEB=t&V=WIN%209%2C0%2C0%2C0&M=Adobe%20Windows&
     R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP&
     L=en&PT=External&AVD=f&LFD=f&WD=f&IME=t

次の表に、Capabilities クラスのプロパティと、それに対応するサーバーストリングを示します。 Capabilities クラスのプロパティサーバーストリングavHardwareDisableAVDhasAccessibilityACChasAudioAhasAudioEncoderAEhasEmbeddedVideoEVhasIMEIMEhasMP3MP3hasPrintingPRhasScreenBroadcastSBhasScreenPlaybackSPhasStreamingAudioSAhasStreamingVideoSVhasTLSTLShasVideoEncoderVEisDebuggerDEBlanguageLlocalFileReadDisableLFDmanufacturerMmaxLevelIDCMLosOSpixelAspectRatioARplayerTypePTscreenColorCOLscreenDPIDPscreenResolutionXRscreenResolutionYRversionV

ウィンドウレスモードが無効化されているかどうかを示す WD サーバーストリングもあります。Flash Player では、Web ブラウザーまたは mms.cfg ファイルのユーザー設定との不適合という理由でウィンドウレスモードを無効化できます。対応する Capabilities プロパティはありません。

Capabilities クラスのプロパティは、すべて読み取り専用です。

次の例では、flash.system.Capabilities オブジェクトで見つかった値を出力します。最初に、テキストフィールドに値を出力します。次に、trace() の呼び出しを複数個使用して値を出力します。 package { import flash.display.Sprite; import flash.system.Capabilities; import flash.text.TextField; import flash.text.TextFieldAutoSize; public class CapabilitiesExample extends Sprite { public function CapabilitiesExample() { showCapabilities(); } private function showCapabilities():void { var tf:TextField = new TextField(); tf.height = 600; tf.width = 400; tf.autoSize = TextFieldAutoSize.LEFT; tf.wordWrap = true; tf.text = "avHardwareDisable: " + Capabilities.avHardwareDisable + "\nhasAccessibility: " + Capabilities.hasAccessibility + "\nhasAudio: " + Capabilities.hasAudio + "\nhasAudioEncoder: " + Capabilities.hasAudioEncoder + "\nhasEmbeddedVideo: " + Capabilities.hasEmbeddedVideo + "\nhasIME: " + Capabilities.hasIME + "\nhasMP3: " + Capabilities.hasMP3 + "\nhasPrinting: " + Capabilities.hasPrinting + "\nhasScreenBroadcast: " + Capabilities.hasScreenBroadcast + "\nhasScreenPlayback: " + Capabilities.hasScreenPlayback + "\nhasStreamingAudio: " + Capabilities.hasStreamingAudio + "\nhasStreamingVideo: " + Capabilities.hasStreamingVideo + "\nhasTLS: " + Capabilities.hasTLS + "\nhasVideoEncoder: " + Capabilities.hasVideoEncoder + "\nisDebugger: " + Capabilities.isDebugger + "\nisEmbeddedInAcrobat: " + Capabilities.isEmbeddedInAcrobat + "\nlanguage: " + Capabilities.language + "\nlocalFileReadDisable: " + Capabilities.localFileReadDisable + "\nmanufacturer: " + Capabilities.manufacturer + "\nmaxLevelIDC: " + Capabilities.maxLevelIDC + "\nos: " + Capabilities.os + "\npixelAspectRatio: " + Capabilities.pixelAspectRatio + "\nplayerType: " + Capabilities.playerType + "\nscreenColor: " + Capabilities.screenColor + "\nscreenDPI: " + Capabilities.screenDPI + "\nscreenResolutionX: " + Capabilities.screenResolutionX + "\nscreenResolutionY: " + Capabilities.screenResolutionY + "\nserverString: " + Capabilities.serverString + "\ntouchscreenType: " + Capabilities.touchscreenType + // The following capabilities are supported only when publishing for AIR. // If you are publishing for AIR, uncomment the following lines. //"\nlanguages: " + Capabilities.languages + //"\ncpuArchitecture: " + Capabilities.cpuArchitecture + //"\nsupports32BitProcesses: " + Capabilities.supports32BitProcesses + //"\nsupports64BitProcesses: " + Capabilities.supports64BitProcesses + "\nversion: " + Capabilities.version; addChild(tf); trace("avHardwareDisable: " + Capabilities.avHardwareDisable); trace("hasAccessibility: " + Capabilities.hasAccessibility); trace("hasAudio: " + Capabilities.hasAudio); trace("hasAudioEncoder: " + Capabilities.hasAudioEncoder); trace("hasEmbeddedVideo: " + Capabilities.hasEmbeddedVideo); trace("hasIME: " + Capabilities.hasIME); trace("hasMP3: " + Capabilities.hasMP3); trace("hasPrinting: " + Capabilities.hasPrinting); trace("hasScreenBroadcast: " + Capabilities.hasScreenBroadcast); trace("hasScreenPlayback: " + Capabilities.hasScreenPlayback); trace("hasStreamingAudio: " + Capabilities.hasStreamingAudio); trace("hasStreamingVideo: " + Capabilities.hasStreamingVideo); trace("hasTLS: " + Capabilities.hasTLS); trace("hasVideoEncoder: " + Capabilities.hasVideoEncoder); trace("isDebugger: " + Capabilities.isDebugger); trace("isEmbeddedInAcrobat: " + Capabilities.isEmbeddedInAcrobat); trace("language: " + Capabilities.language); trace("localFileReadDisable: " + Capabilities.localFileReadDisable); trace("manufacturer: " + Capabilities.manufacturer); trace("maxLevelIDC: " + Capabilities.maxLevelIDC); trace("os: " + Capabilities.os); trace("pixelAspectRatio: " + Capabilities.pixelAspectRatio); trace("playerType: " + Capabilities.playerType); trace("screenColor: " + Capabilities.screenColor); trace("screenDPI: " + Capabilities.screenDPI); trace("screenResolutionX: " + Capabilities.screenResolutionX); trace("screenResolutionY: " + Capabilities.screenResolutionY); trace("serverString: " + Capabilities.serverString); trace("touchscreenType: " + Capabilities.touchscreenType); // The following capabilities are supported only when publishing for AIR. // If you are publishing for AIR, uncomment the following lines. //trace("cpuArchitecture: " + Capabilities.cpuArchitecture); //trace("languages: " + Capabilities.languages); //trace("supports32BitProcesses: " + Capabilities.supports32BitProcesses); //trace("supports64BitProcesses: " + Capabilities.supports64BitProcesses); trace("version: " + Capabilities.version); } } }
avHardwareDisable ユーザーのカメラとマイクへのアクセスが管理上禁止されているか(true)、または許可されているか(false)を指定します。Boolean ユーザーのカメラとマイクへのアクセスが管理上禁止されているか(true)、または許可されているか(false)を指定します。サーバーストリングは AVD です。

Adobe AIR™ のコンテンツでは、このプロパティはアプリケーションセキュリティサンドボックス以外のセキュリティサンドボックス内のコンテンツにのみ適用されます。アプリケーションセキュリティサンドボックス内のコンテンツは常にユーザーのカメラとマイクにアクセスできます。

flash.media.Camera.getCamera()flash.media.Microphone.getMicrophone()Security.showSettings()
cpuArchitecture 現在の CPU アーキテクチャを指定します。String 現在の CPU アーキテクチャを指定します。cpuArchitecture プロパティは、"PowerPC"、"x86"、"SPARC" および "ARM" のいずれかのストリングを返します。サーバーストリングは ARCH です。 hasAccessibility システムがアクセシビリティ補助との通信をサポートしているか(true)、またはサポートしていないか(false)を指定します。Boolean システムがアクセシビリティ補助との通信をサポートしているか(true)、またはサポートしていないか(false)を指定します。サーバーストリングは ACC です。 flash.accessibility.Accessibility.activeflash.accessibility.Accessibility.updateProperties()hasAudioEncoder システムが、マイクからの入力などのオーディオストリームをエンコードできるか(true)、またはできないか(false)を指定します。Boolean システムが、マイクからの入力などのオーディオストリームをエンコードできるか(true)、またはできないか(false)を指定します。サーバーストリングは AE です。 hasAudio システムにオーディオ機能があるかどうかを指定します。Boolean システムにオーディオ機能があるかどうかを指定します。このプロパティは常に true です。サーバーストリングは A です。 hasEmbeddedVideo システムが埋め込みビデオをサポートしているか(true)、またはサポートしていないか(false)を指定します。Boolean システムが埋め込みビデオをサポートしているか(true)、またはサポートしていないか(false)を指定します。サーバーストリングは EV です。 hasIME システムに IME がインストールされているか(true)、またはインストールされていないか(false)を指定します。Boolean システムに IME がインストールされているか(true)、またはインストールされていないか(false)を指定します。サーバーストリングは IME です。 flash.system.IMEflash.system.System.imehasMP3 システムに MP3 デコーダが存在するか(true)、または存在しないか(false)を指定します。Boolean システムに MP3 デコーダが存在するか(true)、または存在しないか(false)を指定します。サーバーストリングは MP3 です。 hasPrinting システムが印刷をサポートしているか(true)、またはサポートしていないか(false)を指定します。Boolean システムが印刷をサポートしているか(true)、またはサポートしていないか(false)を指定します。サーバーストリングは PR です。 hasScreenBroadcast Flash Media Server を通して実行されるスクリーンブロードキャストアプリケーションの開発がシステムでサポートされているか(true)、またはサポートされていないか(false)を指定します。Boolean Flash Media Server を通して実行されるスクリーンブロードキャストアプリケーションの開発がシステムでサポートされているか(true)、またはサポートされていないか(false)を指定します。サーバーストリングは SB です。 hasScreenPlayback Flash Media Server を通して実行されているスクリーンブロードキャストアプリケーションの再生がシステムでサポートされているか(true)、またはサポートされていないか(false)を指定します。Boolean Flash Media Server を通して実行されているスクリーンブロードキャストアプリケーションの再生がシステムでサポートされているか(true)、またはサポートされていないか(false)を指定します。サーバーストリングは SP です。 hasStreamingAudio システムがストリーミングオーディオを再生できるか(true)、またはできないか(false)を指定します。Boolean システムがストリーミングオーディオを再生できるか(true)、またはできないか(false)を指定します。サーバーストリングは SA です。 hasStreamingVideo システムがストリーミングビデオを再生できるか(true)、またはできないか(false)を指定します。Boolean システムがストリーミングビデオを再生できるか(true)、またはできないか(false)を指定します。サーバーストリングは SV です。 hasTLS NetConnection によるネイティブ SSL ソケットがサポートされているか(true)、またはサポートされていないか(false)を指定します。Boolean NetConnection によるネイティブ SSL ソケットがサポートされているか(true)、またはサポートされていないか(false)を指定します。サーバーストリングは TLS です。 flash.net.NetConnection.connectedProxyTypeflash.net.NetConnection.proxyTypeflash.net.NetConnection.usingTLShasVideoEncoder システムが、Web カメラからの入力などのビデオストリームをエンコードできるか(true)、またはできないか(false)を指定します。Boolean システムが、Web カメラからの入力などのビデオストリームをエンコードできるか(true)、またはできないか(false)を指定します。サーバーストリングは VE です。 isDebugger システムがデバッグ用の特別なバージョンか(true)、または正式にリリースされたバージョンか(false)を指定します。Boolean システムがデバッグ用の特別なバージョンか(true)、または正式にリリースされたバージョンか(false)を指定します。 サーバーストリングは DEB です。このプロパティは、Flash Player のデバッグ版または AIR Debug Launcher(ADL)で実行する場合、true に設定されます。 isEmbeddedInAcrobat Flash ランタイムが、Acrobat 9.0 以降で開くことができる PDF ファイルに埋め込まれているか(true)、またはそうでないか(false)を指定します。Boolean Flash ランタイムが、Acrobat 9.0 以降で開くことができる PDF ファイルに埋め込まれているか(true)、またはそうでないか(false)を指定します。 languages オペレーティングシステムでユーザーが選択したユーザーインターフェイスの言語に関する情報を含むストリングの配列です。Array オペレーティングシステムでユーザーが選択したユーザーインターフェイスの言語に関する情報を含むストリングの配列です。このストリングには、RFC4646(http://www.ietf.org/rfc/rfc4646.txt)で定義された言語タグ(および該当する場合はスクリプト情報と地域情報)が格納され、区切り記号としてダッシュが使用されます(例えば「en-US」「ja-JP」など)。オペレーティングシステムの設定により決定される環境設定の順序で言語が配列のリストに含まれます。

オペレーティングシステムにより、ロケールストリングで返される地域の情報は異なります。あるオペレーティングシステムでは "en-us" を返すのに対し、別のオペレーティングシステムでは "en" を返します。

返される配列の最初のエントリには一般に、Capabilities.language プロパティと同じ主言語 ID が含まれます。例えば、Capabilities.languages[0]"en-US" に設定されている場合、language プロパティは "en" に設定されます。ただし、Capabilities.language プロパティが "xu" に設定されている場合(不明な言語が指定されています)、この配列の最初のエレメントは異なります。こうした理由から、Capabilities.languages[0]Capabilities.language よりも正確になる場合があります。

サーバーストリングは LS です。

language コンテンツが実行されているシステムの言語コードを指定します。String コンテンツが実行されているシステムの言語コードを指定します。言語は、ISO 639-1 で規定された小文字 2 文字の言語コードで指定されます。中国語については、簡体字と繁体字を識別するために、ISO 3166 で規定された大文字 2 文字の国コードが追加されます。言語コードは、言語の英語名に基づきます。たとえば、hu はハンガリー語を示します。

英語のシステムでは、このプロパティは言語コード(en)のみを返し、国コードは返しません。Microsoft Windows システムでは、このプロパティはユーザーインターフェイス(UI)言語を返します。UI 言語は、すべてのメニュー、ダイアログボックス、エラーメッセージ、ヘルプファイルなどで使用される言語です。次の表に、指定できる値を示します。 言語チェコ語csデンマーク語daオランダ語nl英語enフィンランド語fiフランス語frドイツ語deハンガリー語huイタリア語it日本語ja韓国語koノルウェー語noその他/不明xuポーランド語plポルトガル語ptロシア語ru簡体字中国語zh-CNスペイン語esスウェーデン語sv繁体字中国語zh-TWトルコ語tr

注意:Capabilities.language プロパティの値は、このリストの有効な値に制限されています。この制限のために、Adobe AIR アプリケーションではシステムのユーザーインターフェイスの主言語を決定するために Capabilities.languages 配列の最初のエレメントを使用する必要があります。

サーバーストリングは L です。

次の例では、ユーザーのオペレーティングシステムの言語により異なるコンテンツが表示されます。

Capabilities.language プロパティによって、ISO 639-1 言語コード(例えば、英語の場合は "en")が返されます。switch ステートメントによって、言語コードがチェックされ、その言語固有の挨拶文が myTextField テキストフィールドの内容として設定されます。言語コードがこの例でサポートされていない場合は、デフォルトのエラーストリングが返されます。

package { import flash.display.Sprite; import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.system.Capabilities; public class Capabilities_languageExample extends Sprite { public function Capabilities_languageExample() { var myTextField:TextField = new TextField(); myTextField.x = 10; myTextField.y = 10; myTextField.background = true; myTextField.autoSize = TextFieldAutoSize.LEFT; var greetingEnglish:String = "Hello World"; var greetingGerman:String = "Hallo Welt"; var greetingFrench:String = "Bonjour Monde"; var greetingSpanish:String = "Hola Mundo"; var lang:String = Capabilities.language; switch (lang) { case "en": myTextField.text = greetingEnglish; break; case "de": myTextField.text = greetingGerman; break; case "fr": myTextField.text = greetingFrench; break; case "es": myTextField.text = greetingSpanish; break; default: myTextField.text = "Sorry your system's language is not supported at this time."; } this.addChild(myTextField); } } }
languages
localFileReadDisable ユーザーのハードディスクへの読み取りアクセスが管理上禁止されているか(true)、または許可されているか(false)を指定します。Boolean ユーザーのハードディスクへの読み取りアクセスが管理上禁止されているか(true)、または許可されているか(false)を指定します。Adobe AIR のコンテンツでは、このプロパティはアプリケーションセキュリティサンドボックス以外のセキュリティサンドボックス内のコンテンツにのみ適用されます。(アプリケーションセキュリティサンドボックス内のコンテンツは常にファイルシステムから読み取ることができます。)このプロパティが true の場合、Flash Player では、ユーザーのハードディスクからファイル(Flash Player が起動するときの最初のファイルを含む)を読み取ることができません。このプロパティが true の場合、アプリケーションセキュリティサンドボックス外の AIR コンテンツでは、ユーザーのハードディスクからファイルを読み取ることができません。 たとえば、ロードメソッドを使用してユーザーのハードディスク上にあるファイルを読み取ろうとしても、このプロパティが true の場合は、読み取りに失敗します。

このプロパティが true に設定されている場合、ランタイム共有ライブラリの読み取りも失敗しますが、ローカル共有オブジェクトはこのプロパティの値に関係なく読み取ることができます。

サーバーストリングは LFD です。

flash.display.Loader
manufacturer Flash Player または AIR ランタイムの実行バージョンの製造会社を "Adobe OSName" の形式で指定します。String Flash Player または AIR ランタイムの実行バージョンの製造会社を "Adobe OSName" の形式で指定します。OSName の値は、"Windows""Macintosh""Linux" または別のオペレーティングシステム名になります。サーバーストリングは M です。

より具体的な機能のプロパティが存在する場合に、Capabilities.manufacturer を使用して、オペレーティングシステムに基づく機能を判断しないでください。機能をオペレーティングシステムに依存することは、アプリケーションが潜在的なすべてのターゲットオペレーティングシステムを考慮していない場合に問題が発生する可能性があるので、適切ではありません。代わりに、テストしている機能に対応するプロパティを使用します。詳細については、Capabilities クラスの説明を参照してください。

maxLevelIDC クライアントハードウェアがサポートする H.264 の最高レベルの IDC を取得します。String クライアントハードウェアがサポートする H.264 の最高レベルの IDC を取得します。このレベルでのメディア実行は保証されますが、最高レベルでのメディア実行は最高品質では実行されない場合があります。このプロパティは、クライアントの機能をターゲットとするサーバーに役立ちます。このプロパティを使用すると、サーバーはクライアントに送るビデオのレベルを決定できます。

サーバーストリングは ML です。

os 現在のオペレーティングシステムを指定します。String 現在のオペレーティングシステムを指定します。os プロパティは、次のストリングを返すことができます。 オペレーティングシステムWindows 7"Windows 7"Windows Vista"Windows Vista"Windows Server 2008 R2"Windows Server 2008 R2"Windows Server 2008"Windows Server 2008"Windows Home Server"Windows Home Server"Windows Server 2003 R2"Windows Server 2003 R2"Windows Server 2003"Windows Server 2003"Windows XP 64"Windows Server XP 64"Windows XP"Windows XP"Windows 98"Windows-98"Windows 95"Windows 95"Windows NT"Windows NT"Windows 2000"Windows 2000"Windows ME"Windows ME"Windows CE"Windows CE"Windows SmartPhone"Windows SmartPhone"Windows PocketPC"Windows PocketPC"Windows CEPC"Windows CEPC"Windows Mobile"Windows Mobile"Mac OS"Mac OS X.Y.Z"(X.Y.Z はバージョン番号。例:"Mac OS 10.5.2"Linux"Linux"(Flash Player では Linux バージョンが付加されます。例:"Linux 2.6.15-1.2054_FC5smp"iPhone OS 4.1"iPhone3,1"

サーバーストリングは OS です。

より具体的な機能のプロパティが存在する場合に、Capabilities.os を使用して、オペレーティングシステムに基づく機能を判断しないでください。機能をオペレーティングシステムに依存することは、アプリケーションが潜在的なすべてのターゲットオペレーティングシステムを考慮していない場合に問題が発生する可能性があるので、適切ではありません。代わりに、テストしている機能に対応するプロパティを使用します。詳細については、Capabilities クラスの説明を参照してください。

pixelAspectRatio 画面のピクセル縦横比を指定します。Number 画面のピクセル縦横比を指定します。サーバーストリングは AR です。 playerType ランタイム環境のタイプを指定します。String ランタイム環境のタイプを指定します。このプロパティに指定できる値は、次のうちのいずれかです。
  • "ActiveX" - Microsoft Internet Explorer で使用される Flash Player ActiveX コントロール
  • "Desktop" - Adobe AIR ランタイム(Capabilities.playerType"PlugIn" に設定されている HTML ページによりロードされる SWF コンテンツは除く)
  • "External" - 外部 Flash Player またはプレビューモード
  • "PlugIn" - Flash Player ブラウザーのプラグイン(および AIR アプリケーションの HTML ページで読み込まれた SWF コンテンツ)
  • "StandAlone" - スタンドアローン Flash Player

サーバーストリングは PT です。

screenColor 画面の色を指定します。String 画面の色を指定します。このプロパティの値は、"color""gray"(グレースケール)または "bw"(モノクロ)です。サーバーストリングは COL です。 screenDPI 画面の 1 インチあたりのドット数(dpi)解像度をピクセル単位で指定します。Number 画面の 1 インチあたりのドット数(dpi)解像度をピクセル単位で指定します。サーバーストリングは DP です。 screenResolutionX 画面の最大水平解像度を指定します。Number 画面の最大水平解像度を指定します。サーバーストリングは R で、画面の幅と高さの両方を返します。このプロパティはユーザーの画面解像度で更新されず、代わりに Flash Player または Adobe AIR アプリケーションの起動時の解像度だけを示します。 また、この値はメイン画面のみを指定します。 screenResolutionY 画面の最大垂直解像度を指定します。Number 画面の最大垂直解像度を指定します。サーバーストリングは R で、画面の幅と高さの両方を返します。このプロパティはユーザーの画面解像度で更新されず、代わりに Flash Player または Adobe AIR アプリケーションの起動時の解像度だけを示します。 また、この値はメイン画面のみを指定します。 次の例は、現在の画面の解像度とオペレーティングシステムのバージョンを表示する簡単なテストです。テストを実行したら、テキストフィールドをクリックして、プロパティの値を確認します。 import flash.events.~; import flash.display.~; import flash.system.Capabilities; import flash.text.TextField; var screenInfoTxt:TextField = new TextField(); var screenInfoTxt.x = 30; var screenInfoTxt.y = 50; var screenInfoTxt.width = 300; var screenInfoTxt.height = 100; var screenInfoTxt.border = true; addChild(screenInfoTxt); addEventListener(MouseEvent.CLICK, getScreenNVersion); function getScreenNVersion(e:MouseEvent):void{ screenInfoTxt.text= "flash.system.Capabilities.screenResolutionX is : " + String(flash.system.Capabilities.screenResolutionX) + "\n" + "flash.system.Capabilities.screenResolutionY is : " + String(flash.system.Capabilities.screenResolutionY) + "\n" + "flash.system.Capabilities.version is : " + flash.system.Capabilities.version; } serverString それぞれの Capabilities プロパティの値を指定する URL エンコードストリングです。String それぞれの Capabilities プロパティの値を指定する URL エンコードストリングです。

URL エンコードストリングの例を次に示します。

A=t&SA=t&SV=t&EV=t&MP3=t&AE=t&VE=t&ACC=f&PR=t&SP=t&
	 SB=f&DEB=t&V=WIN%208%2C5%2C0%2C208&M=Adobe%20Windows&
	 R=1600x1200&DP=72&COL=color&AR=1.0&OS=Windows%20XP&
	 L=en&PT=External&AVD=f&LFD=f&WD=f

supports32BitProcesses 32 ビットプロセスの実行がサポートされているかどうかを指定します。Boolean 32 ビットプロセスの実行がサポートされているかどうかを指定します。サーバーストリングは PR32 です。 supports64BitProcesses 64 ビットプロセスの実行がサポートされているかどうかを指定します。Boolean 64 ビットプロセスの実行がサポートされているかどうかを指定します。サーバーストリングは PR64 です。 touchscreenType タッチスクリーンがサポートされる場合、そのタッチスクリーンの種類を指定します。String タッチスクリーンがサポートされる場合、そのタッチスクリーンの種類を指定します。flash.system.TouchscreenType クラスに定義されている値です。 次の例は、現在のタッチスクリーンの種類を表示する簡単なテストです。テストを実行したら、テキストフィールドをクリックして、プロパティの値を確認します。 import flash.events.~~; import flash.display.~~; import flash.system.Capabilities; import flash.text.TextField; var capabilitiesTouchScreenTypeTxt:TextField = new TextField(); capabilitiesTouchScreenTypeTxt.width = 300; capabilitiesTouchScreenTypeTxt.border = true; addChild(capabilitiesTouchScreenTypeTxt); addEventListener(MouseEvent.CLICK, getScreenKeyboardType); function getScreenKeyboardType(e:MouseEvent):void{ capabilitiesTouchScreenTypeTxt.text= "flash.system.Capabilities.touchscreenType is : " + flash.system.Capabilities.touchscreenType; } TouchscreenType クラスflash.ui.Mouse.supportsCursorversion Flash Player または Adobe&#xAE; AIR&#xAE; のプラットフォームとバージョン情報を指定します。String Flash Player または Adobe® AIR® のプラットフォームとバージョン情報を指定します。バージョン番号の書式は、platform majorVersion,minorVersion,buildNumber,internalBuildNumber です。platform の有効な値は、"WIN""MAC""LNX" および "AND" です。バージョン情報の例を次に示します。
	 WIN 9,0,0,0  // Flash Player 9 for Windows
	 MAC 7,0,25,0   // Flash Player 7 for Macintosh
	 LNX 9,0,115,0  // Flash Player 9 for Linux
	 AND 10,2,150,0 // Flash Player 10 for Android
	 

より具体的な機能のプロパティが存在する場合に、Capabilities.version を使用して、オペレーティングシステムに基づく機能を判断しないでください。機能をオペレーティングシステムに依存することは、アプリケーションが潜在的なすべてのターゲットオペレーティングシステムを考慮していない場合に問題が発生する可能性があるので、適切ではありません。代わりに、テストしている機能に対応するプロパティを使用します。詳細については、Capabilities クラスの説明を参照してください。

サーバーストリングは V です。

次の例は、現在の画面の解像度とオペレーティングシステムのバージョンを表示する簡単なテストです。テストを実行したら、テキストフィールドをクリックして、プロパティの値を確認します。 import flash.events.~; import flash.display.~; import flash.system.Capabilities; import flash.text.TextField; var screenInfoTxt:TextField = new TextField(); var screenInfoTxt.x = 30; var screenInfoTxt.y = 50; var screenInfoTxt.width = 300; var screenInfoTxt.height = 100; var screenInfoTxt.border = true; addChild(screenInfoTxt); addEventListener(MouseEvent.CLICK, getScreenNVersion); function getScreenNVersion(e:MouseEvent):void{ screenInfoTxt.text= "flash.system.Capabilities.screenResolutionX is : " + String(flash.system.Capabilities.screenResolutionX) + "\n" + "flash.system.Capabilities.screenResolutionY is : " + String(flash.system.Capabilities.screenResolutionY) + "\n" + "flash.system.Capabilities.version is : " + flash.system.Capabilities.version; }
fscommand SWF ファイルが、Flash Player または Flash Player のホストプログラム(Web ブラウザーなど)と通信できるようになります。マウスイベントやキー入力イベントなどのユーザー操作に応じて関数が呼び出されない場合。 ErrorErrorcommandStringホストアプリケーションに任意の用途で渡されるストリング、または Flash Player に渡されるコマンドです。 argsStringホストアプリケーションに任意の用途で渡されるストリング、または Flash Player に渡される値です。 SWF ファイルが、Flash Player または Flash Player のホストプログラム(Web ブラウザーなど)と通信できるようになります。fscommand() 関数を使用して、Director、または ActiveX コントロールに対応している Visual Basic や Visual C++ などのプログラムにメッセージを渡すこともできます。

fscommand() 関数を使用すると、SWF ファイルが Web ページ内のスクリプトと通信できるようになります。ただし、スクリプトへのアクセスは、Web ページの allowScriptAccess 属性の設定により制御されます。この属性は、SWF ファイルが埋め込まれる HTML コード内で設定します。例えば、Internet Explorer の PARAM タグ内や、Netscape の EMBED タグ内で設定します。

  • allowScriptAccess「sameDomain」(デフォルト)に設定されている場合は、Web ページと同じドメインに存在する SWF ファイルからのスクリプト実行のみが許可されます。
  • allowScriptAccess「always」に設定されている場合、SWF ファイルと HTML ページのドメインが異なる場合でも、SWF ファイルは埋め込み先の HTML ページとやり取りできます。
  • allowScriptAccess「never」に設定されていると、SWF ファイルはどの HTML ページともやり取りできません。この値の使用はお勧めしません。また、信頼されていない SWF ファイルを独自のドメインから提供していない限り、この値を使用する必要はありません。信頼されていない SWF ファイルを提供する必要がある場合は、区別するためのサブドメインを作成し、信頼されていないコンテンツはすべてそこに配置することをお勧めします。

SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含んでいる HTML ページに allowNetworking パラメーター(object タグおよび embed タグのパラメーター)を設定します。

fscommand() 関数は、呼び出し元 SWF ファイルがローカルファイルシステムのサンドボックスまたはネットワーク接続したローカルのサンドボックスに置かれ、さらに、含まれている HTML ページが信頼されないページとしてサンドボックスに置かれている場合には、使用できません。

セキュリティについて詳しくは、Flash Player デベロッパーセンターのトピック:セキュリティを参照してください。

シンタックス 1:fscommand() を使用して Flash Player にメッセージを送るには、定義済みのコマンドとパラメーターを使用します。次の表に、fscommand() 関数の command パラメーターと args パラメーターに指定できる値を示します。これらの値は、プロジェクターを含め、Flash Player で再生する SWF ファイルを制御します。プロジェクターは、Flash Player がなくてもスタンドアローンアプリケーションとして実行可能な形式で保存される SWF ファイルです。

コマンドパラメーター (args) 用途quitなしプロジェクターを終了します。fullscreentrue または falsetrue を指定すると、Flash Player はフルスクリーンモードに設定されます。false を指定すると、プレーヤーはノーマルメニュービューになります。allowscaletrue または falsefalse を指定すると、SWF ファイルは常に元のサイズで表示され、拡大 / 縮小されないようにプレーヤーが設定されます。true を指定すると、SWF ファイルは強制的にプレーヤーのウィンドウサイズに対して 100% に拡大 / 縮小されます。showmenutrue または falsetrue を指定すると、すべてのコンテキストメニューアイテムが有効になります。false を指定すると、[設定] および [Flash Player について] 以外のすべてのコンテキストメニュー項目が非表示になります。execアプリケーションへのパス プロジェクターの内部からアプリケーションを実行します。trapallkeystrue または falsetrue を指定すると、アクセラレーターキーを含むすべてのキーイベントが Flash Player の onClipEvent(keyDown/keyUp) ハンドラーに送られます。

すべてのアプリケーションで、表に記載されているすべてのコマンドを利用できるわけではありません。

  • Web プレーヤーでは、コマンドはいずれも利用できません。
  • すべてのコマンドをスタンドアローンのプロジェクターアプリケーションで利用できます。
  • AIR アプリケーションでは、同様の関数に対して、flash.desktop.NativeApplication クラス(fscommand("quit") ではなく NativeApplication.nativeApplication.exit() など)を使用します。
  • ムービープレビュープレーヤーでは、allowscale および exec のみを利用できます。

exec コマンドで使用できる文字は、A ~ Z、a ~ z、0 ~ 9、ピリオド(.)、アンダースコア(_)だけです。exec コマンドは、fscommand サブディレクトリでのみ実行されます。つまり、exec コマンドを使ってアプリケーションを呼び出す場合、アプリケーションは fscommand という名前のサブディレクトリ内に存在する必要があります。exec コマンドは、Flash プロジェクターファイル内だけから実行できます。

シンタックス 2:fscommand() を使用して、Web ブラウザーの JavaScript などのスクリプト言語にメッセージを送るには、パラメーター commandargs 内に 2 つのパラメーターを渡します。これらのパラメーターはストリングと式のいずれでもよく、fscommand() 関数をキャッチする、つまり fscommand() 関数を処理する JavaScript 関数側で使用されます。

Web ブラウザーでは、fscommand() は、SWF ファイルを含む Web ページ内に存在する JavaScript 関数 moviename_DoFScommand を呼び出します。moviename には、EMBED タグの NAME 属性または OBJECT タグの ID プロパティに使用した Flash オブジェクトの名前を指定します。SWF ファイルに "myMovie" という名前を付けている場合、JavaScript 関数 myMovie_DoFScommand が呼び出されます。

前述のように、SWF ファイルを含む Web ページでは、allowScriptAccess 属性を設定することで、SWF ファイルによるその Web ページへのアクセスを許可または拒否します。この属性は、SWF ファイルが埋め込まれる HTML コード内で設定します。例えば、Internet Explorer の PARAM タグ内や、Netscape の EMBED タグ内で設定します。

ブラウザーで実行される Flash Player 10 以降では、このメソッドをプログラムで使用してポップアップウィンドウを開く方法は有効でない場合があります。ブラウザー(およびブラウザーの設定)によってはポップアップウィンドウがブロックされる場合があり、すべてのポップアップウィンドウが表示される保証はありません。ただし、ユーザー操作の直接の結果として実行されるコード(マウスのクリックやキー入力イベントのイベントハンドラーなど)に限っては、このクラスを使用してポップアップウィンドウを開く方法が有効です。

シンタックス 3:fscommand() 関数は、メッセージを Director (アドビ システムズ社の Macromedia Director) に送ることができます。これらのメッセージは、Lingo(Director のスクリプト言語)により、ストリング、イベント、実行可能 Lingo コードのいずれかと解釈されます。メッセージがストリングまたはイベントである場合、fscommand() 関数からメッセージを受信するための Lingo コードを書き、Director 内でアクションを実行する必要があります。詳細については、www.adobe.com/jp/support/director/ の Director サポートセンターを参照してください。

シンタックス 4:ActiveX コントロールに対応した VisualBasic や Visual C++ などのプログラムでは、fscommand() を使って、その環境のプログラミング言語で処理できる 2 つのストリングを含む VB イベントを送信できます。詳細については、www.adobe.com/jp/support/flash/ の Flash サポートセンターで "Flash メソッド" というキーワードを使用して検索してください。

注意:ExternalInterface クラスを使用すると、JavaScript と ActionScript(シンタックス 2)との間、または ActionScript と、VisualBasic や Visual C++ などの ActiveX コントロールに対応した他のプログラム(シンタックス 4)との間の通信機能が向上します。fscommand() は、メッセージを Flash Player に送信するため(シンタックス 1)および Director に送信するために(シンタックス 3)引き続き使用する必要があります。

fscommand() を使用して Flash Player をフルスクリーンモードにし、拡大 / 縮小を許可しないようにする方法を示します。オレンジのボックスが draw() を使用してステージに追加されます。draw() では、click イベントリスナーに名前付き clickHandler() が追加されます。これは click イベントに応答して fscommand() の別の呼び出しを使用して Flash Player に終了を指示します。

メモ : この例は、Web ブラウザーではなく、スタンドアローン Flash Player で実行する必要があります。

package { import flash.display.Sprite; import flash.text.TextField; import flash.system.fscommand; import flash.events.MouseEvent; public class FSCommandExample extends Sprite { private var bgColor:uint = 0xFFCC00; private var size:uint = 100; public function FSCommandExample() { fscommand("fullscreen", "true"); fscommand("allowscale", "false"); draw(); } private function clickHandler(event:MouseEvent):void { fscommand("quit"); trace("clickHandler"); } private function draw():void { var child:Sprite = new Sprite(); child.graphics.beginFill(bgColor); child.graphics.drawRect(0, 0, size, size); child.graphics.endFill(); child.buttonMode = true; addEventListener(MouseEvent.CLICK, clickHandler); var label:TextField = new TextField(); label.text = "quit"; label.selectable = false; label.mouseEnabled = false; child.addChild(label); addChild(child); } } }
flash.desktop.NativeApplication
IME IME クラスを使用すると、クライアントコンピューターで実行されている Flash ランタイムアプリケーションで、オペレーティングシステムの IME を直接操作できます。オペレーティングシステムの IME を直接操作できます。 flash.events:EventDispatcher IME クラスを使用すると、クライアントコンピューターで実行されている Flash ランタイムアプリケーションで、オペレーティングシステムの IME を直接操作できます。IME がインストールされているかどうか、IME が現在有効になっているかどうかおよびどの IME が有効になっているかを調べることができます。アプリケーションで IME を無効または有効にすることができます。また、オペレーティングシステムによっては、その他の限られた機能を使用できます。

AIR プロファイルのサポート:この機能はデスクトップオペレーティングシステムではサポートされますが、すべてのモバイルデバイスではサポートされませんまた、テレビ用 AIR デバイスでもサポートされません。IME.isSupported プロパティを使用して、サポートされているかどうかを実行時にテストすることができます。複数のプロファイル間での API サポートについて詳しくは、AIR プロファイルのサポートを参照してください。

IME を使用すると、中国語、日本語、韓国語といったマルチバイトの言語で ASCII 以外の文字を入力できるようになります。IME の使用方法の詳細については、アプリケーションの開発対象である OS のマニュアルを参照してください。追加情報については、次の Web サイトを参照してください。

  • http://www.microsoft.com/globaldev/default.mspx
  • http://developer.apple.com/documentation/
  • http://java.sun.com

IME がユーザーのコンピューターでアクティブではない場合、IME のメソッドまたはプロパティの呼び出しは、Capabilities.hasIME を除き、失敗します。IME を手動でアクティブにすると、それ以降の IME のメソッドまたはプロパティの ActionScript 呼び出しは、意図したとおりに動作します。例えば、日本語 IME を使用する場合、IME のメソッドまたはプロパティを呼び出す前にアクティブにする必要があります。

次の表に、このクラスのプラットフォーム別の対応状況を示します。

機能WindowsMac OSXLinuxIME がインストールされているかどうかの確認 Capabilities.hasIMEIME のオン / オフ IME.enabledIME のオン / オフの確認 IME.enabledIME 変換モードの取得または設定 IME.conversionMode可 ~~~~不可変換対象ストリングの IME への送信 IME.setCompositionString()可 ~~不可不可IME からの変換前のストリングの取得 System.ime.addEventListener()可 ~~不可不可IME への変換要求の送信 IME.doConversion()可 ~~不可不可

~~ 一部の Windows IME では、上記のうち一部サポートしていない操作があります。すべての操作をサポートしている IME は、日本語 IME のみです。

~~~~ Macintosh の場合は、日本語 IME でのみこれらのメソッドがサポートされており、サードパーティー製の IME ではサポートされていません。

このクラスの ActionScript 3.0 バージョンは Macintosh Classic をサポートしていません。

imeComposition ユーザーが IME 入力を完了し、読み取りストリングが使用可能になったときに送出されます。flash.events.IMEEvent.IME_COMPOSITIONflash.events.IMEEvent ユーザーが IME 入力を完了し、読み取りストリングが使用可能になったときに送出されます。IME は、通常、日本語、中国語、韓国語など、表音文字ではなく表意文字を持つ言語のテキストを入力するために使用されます。 compositionAbandoned 進行中の入力はすべてランタイムによって破棄されます。 進行中の入力はすべてランタイムによって破棄されます。入力領域の外側をユーザーがクリックしたとき、またはフォーカスがあるインタラクティブオブジェクトが破棄されたかリセットされたときに、このメソッドを呼び出します。ランタイムは、クライアントで confirmComposition() を呼び出すことによって、入力を確定します。さらに、ランタイムは IME をリセットして、入力が破棄されたことをオペレーティングシステムに通知します。 compositionSelectionChanged 入力内の選択範囲が対話的またはプログラムによって更新されたときに、このメソッドを呼び出します。startint選択範囲の開始位置のオフセットをバイト単位で指定します。 endint選択範囲の終了位置のオフセットをバイト単位で指定します。 入力内の選択範囲が対話的またはプログラムによって更新されたときに、このメソッドを呼び出します。 doConversion 現在の入力ストリングの第 1 候補を選択するように IME に指示します。呼び出しが成功しませんでした。 ErrorError 現在の入力ストリングの第 1 候補を選択するように IME に指示します。 setCompositionString IME への入力ストリングを設定します。呼び出しが成功しませんでした。 ErrorErrorcompositionStringIME に送るストリングです。 IME への入力ストリングを設定します。このストリングが設定されると、ユーザーは IME 候補を選択してから、現在フォーカスのあるテキストフィールドの結果を確定できます。

どのテキストフィールドにもフォーカスがない場合、このメソッドは失敗し、エラーをスローします。

conversionMode 現在の IME の変換モードです。String設定試行が成功しませんでした。 ErrorError 現在の IME の変換モードです。変換モードを示す、次の IME モードストリング定数を指定できます。
  • ALPHANUMERIC_FULL
  • ALPHANUMERIC_HALF
  • CHINESE
  • JAPANESE_HIRAGANA
  • JAPANESE_KATAKANA_FULL
  • JAPANESE_KATAKANA_HALF
  • KOREAN
  • UNKNOWN(読み取り専用の値であり、設定できません)
flash.system.IMEConversionMode.ALPHANUMERIC_FULLflash.system.IMEConversionMode.ALPHANUMERIC_HALFflash.system.IMEConversionMode.CHINESEflash.system.IMEConversionMode.JAPANESE_HIRAGANAflash.system.IMEConversionMode.JAPANESE_KATAKANA_FULLflash.system.IMEConversionMode.JAPANESE_KATAKANA_HALFflash.system.IMEConversionMode.KOREANflash.system.IMEConversionMode.UNKNOWN
enabled システム IME が有効になっているか(true)無効になっているか(false)を示します。Boolean設定試行が成功しませんでした。 ErrorError システム IME が有効になっているか(true)無効になっているか(false)を示します。IME が有効であるときはマルチバイト入力になり、IME が無効であるときは英数入力になります。 isSupported 現在のプラットフォームで IME クラスがサポートされている場合、isSupported プロパティは true に設定されます。サポートされていない場合は、false に設定されます。Boolean 現在のプラットフォームで IME クラスがサポートされている場合、isSupported プロパティは true に設定されます。サポートされていない場合は、false に設定されます。
System System クラスには、ローカル設定と操作に関連するプロパティが含まれています。Object System クラスには、ローカル設定と操作に関連するプロパティが含まれています。これらのプロパティには、カメラとマイクの設定、共有オブジェクトの操作、クリップボードの使用に関するものがあります。

追加のプロパティとメソッドが、flash.system パッケージ内のその他のクラス(Capabilities クラス、IME クラス、Security クラス)にあります。

このクラスには、静的なメソッドとプロパティのみが含まれています。System クラスの新しいインスタンスは作成できません。

次の例は、システムの合計メモリに関する情報をシステムクリップボードにコピーする方法を示しています。System.setClipboard() メソッドの呼び出し内で System.totalMemory の呼び出しを使用します。 package { import flash.display.Sprite; import flash.system.System; public class SystemExample extends Sprite { public function SystemExample() { System.setClipboard("System.totalMemory: " + System.totalMemory); } } }
flash.system.Securityflash.events.IMEEventdisposeXML 指定した XML オブジェクトを即時にガベージコレクションで処理できるようにします。nodeXMLガベージコレクションで処理できるようにする XML 参照です。 指定した XML オブジェクトを即時にガベージコレクションで処理できるようにします。このメソッドを使用すると、指定した XML ノードに対するすべてのノード間の親接続と子接続が削除されます。 exit Flash Player を閉じます。codeuintオペレーティングシステムに渡す値です。通常、処理が正常に終了すると、値は 0 になります。 Flash Player を閉じます。

スタンドアローン Flash Player デバッグ版のみ。

AIR アプリケーションでは、アプリケーションを終了するために NativeApplication.exit() メソッドを呼び出す必要があります。

flash.desktop.NativeApplication.exit()
gc ガベージコレクションプロセスを強制します。 ガベージコレクションプロセスを強制します。

Flash Player デバッグ版および AIR アプリケーションのみ。AIR アプリケーションでは、System.gc() メソッドは AIR Debug Launcher(ADL)で実行しているコンテンツ、またはインストールされているアプリケーションではアプリケーションセキュリティサンドボックスのコンテンツでのみ有効になります。

pause Flash Player または AIR Debug Launcher(ADL)を一時停止します。 Flash Player または AIR Debug Launcher(ADL)を一時停止します。 このメソッドを呼び出したときにアプリケーションで実行が続行されるのは、Socket イベントの配信だけです。

Flash Player デバッガー版または AIR Debug Launcher(ADL)のみに対応しています。

resume()
resume System.pause() を呼び出した後、アプリケーションを再開します。 System.pause() を呼び出した後、アプリケーションを再開します。

Flash Player デバッガー版または AIR Debug Launcher(ADL)のみに対応しています。

pause()
setClipboard クリップボードの内容を、指定されたテキストストリングで置き換えます。stringStringシステムクリップボードの現在の内容(存在する場合)を置き換えるプレーンテキストストリング文字です。 クリップボードの内容を、指定されたテキストストリングで置き換えます。 クリップボードの内容を、指定されたテキストストリングで置き換えます。このメソッドは、キー入力や入力デバイスのクリックなどのユーザーイベントに応じて呼び出されたときに、任意のセキュリティコンテキストで動作します。

このメソッドは、Flash Player 9 で実行されている SWF コンテンツに提供されます。クリップボードへのストリング内容の追加のみが許可されます。

Flash Player 10 のコンテンツと AIR アプリケーションのアプリケーションセキュリティサンドボックスのコンテンツは、Clipboard.setData() メソッドを呼び出すことができます。

flash.desktop.Clipboard
freeMemory Adobe&#xAE; Flash&#xAE; Player または Adobe&#xAE; AIR&#xAE; に割り当てられているが現在使用されていないメモリ量(バイト単位)です。Number Adobe® Flash® Player または Adobe® AIR® に割り当てられているが現在使用されていないメモリ量(バイト単位)です。この割り当て済みメモリの未使用領域(System.totalMemory)は、ガベージコレクションが行われると変動します。このプロパティを使用して、ガベージコレクションを監視します。 privateMemorytotalMemorytotalMemoryNumberime 現在インストールされているシステムの IME です。flash.system:IME 現在インストールされているシステムの IME です。imeComposition イベントに登録するには、このインスタンスで addEventListener() を呼び出します。 IMEConversionModeprivateMemory アプリケーションで使用されるメモリ量の合計(バイト単位)です。Number アプリケーションで使用されるメモリ量の合計(バイト単位)です。これは、プロセス全体の常駐プライベートメモリの量です。

AIR 開発者は、このプロパティを使用してアプリケーション全体のメモリ消費量を特定します。

Flash Player の場合は、Web ブラウザーなどのコンテナアプリケーションで使用されるメモリも含まれます。

freeMemorytotalMemorytotalMemoryNumber
totalMemoryNumber Flash Player または AIR によって直接割り当てられている現在使用中のメモリ量(バイト単位)です。Number Flash Player または AIR によって直接割り当てられている現在使用中のメモリ量(バイト単位)です。

このプロパティは、int 型の System.totalMemory プロパティよりも大きい値を許容する Number 型として表現されます。

このプロパティは、Adobe AIR アプリケーション、または Flash Player コンテンツを含むアプリケーション(ブラウザーなど)によって使用されるすべてのメモリを返すわけではありません。ブラウザーまたはオペレーティングシステムは、これ以外にメモリを消費する可能性があります。System.privateMemory プロパティは、アプリケーションによって使用されるすべてのメモリを反映します。

freeMemoryprivateMemorytotalMemory
totalMemory Flash Player または AIR によって直接割り当てられている現在使用中のメモリ量(バイト単位)です。uint Flash Player または AIR によって直接割り当てられている現在使用中のメモリ量(バイト単位)です。

このプロパティは、Adobe AIR アプリケーション、または Flash Player コンテンツを含むアプリケーション(ブラウザーなど)によって使用されるすべてのメモリを返すわけではありません。ブラウザーまたはオペレーティングシステムは、これ以外にメモリを消費する可能性があります。System.privateMemory プロパティは、アプリケーションによって使用されるすべてのメモリを反映します。

割り当てられたメモリ量が、uint オブジェクトの最大値(uint.MAX_VALUE、または 4,294,967,295)よりも大きい場合、このプロパティは 0 に設定されます。System.totalMemoryNumber プロパティでは、より大きい値が許容されます。

freeMemoryprivateMemorytotalMemoryNumber
useCodePage 外部テキストファイルを解釈するときにどのコードページを使用するかを決定するブール値です。Boolean 外部テキストファイルを解釈するときにどのコードページを使用するかを決定するブール値です。 このプロパティを false に設定すると、外部テキストファイルは Unicode として解釈されます。 これらのファイルは、保存する際に Unicode でエンコードする必要があります。このプロパティを true に設定すると、アプリケーションを実行するオペレーティングシステムの通常のコードページを使用して外部テキストファイルが解釈されます。 useCodePage のデフォルト値は false です。

Loader.load()、URLLoader クラスまたは URLStream を使用して)外部ファイルとしてロードするテキストを Unicode として認識するには、そのファイルを Unicode として保存しておく必要があります。 外部ファイルを Unicode でエンコードするには、Unicode をサポートするアプリケーション(Windows のメモ帳など)でファイルを保存します。

Unicode でエンコードされていない外部テキストファイルをロードする際には、useCodePagetrue に設定してください。次の行を、データをロードしているファイルのコードの最初の行として追加します(Flash Professional の場合は、最初のフレームに追加します)。

System.useCodePage = true;

このコードがあると、外部テキストは、オペレーティングシステムの通常のコードページを使用して解釈されます。 例えば、一般に、英語の Windows オペレーティングシステムでは CP1252 が、日本語のオペレーティングシステムでは Shift-JIS が使用されます。

Flash Player 6 以降で useCodePagetrue に設定すると、テキストは Flash Player 5 の場合と同様に扱われます。Flash Player 5 では、すべてのテキストは、Flash Player を実行するオペレーティングシステムの通常のコードページを使用して解釈されていました。

useCodePagetrue に設定した場合、外部テキストファイル内で使用されている文字がアプリケーションを実行するオペレーティングシステムの通常のコードページに含まれていないと、そのテキストは表示されません。たとえば、中国語を含む外部テキストファイルをロードする場合、CP1252 コードページを使用するシステムでは、これらの文字を表示できません。CP1252 コードページには中国語が含まれていないためです。

アプリケーションで使用する外部テキストファイルをすべてのプラットフォームのユーザーが表示できるようにするには、すべての外部テキストファイルを Unicode でエンコードし、useCodePagefalse に設定します。 これにより、アプリケーション(Flash Player 6 以降または AIR )でテキストが Unicode として解釈されます。

flash.display.Loader.load()
SecurityDomain SecurityDomain クラスは、現在のセキュリティ "サンドボックス" を表し、セキュリティドメインとも呼ばれます。Object SecurityDomain クラスは、現在のセキュリティ "サンドボックス" を表し、セキュリティドメインとも呼ばれます。このクラスのインスタンスを Loader.load() に渡すことによって、ロードされたメディアを特定のサンドボックスに配置することを要求できます。 currentDomain 現在のセキュリティドメインを取得します。flash.system:SecurityDomain 現在のセキュリティドメインを取得します。 flash.display.Loader.load()flash.display.Loader.loadBytes()flash.system.LoaderContextSystemUpdater SystemUpdater クラスを使用すると、Flash Access 用の DRM モジュールなどの Flash Player のモジュールや、Flash Player 自体を更新できます。flash.events:EventDispatcher SystemUpdater クラスを使用すると、Flash Access 用の DRM モジュールなどの Flash Player のモジュールや、Flash Player 自体を更新できます。更新可能なモジュールは、SystemUpdaterType クラスにリストされています。

Flash Player では、NetStatusEvent イベントの送出によって、Flash Access モジュールの更新が必要であることが示されます。イベントには、"DRM.UpdateNeeded" の値が設定された code プロパティがあります。Flash Access モジュールに対する更新では、ユーザーの承諾は必要ありません。イベントを監視し、update("DRM") を呼び出して、更新を開始します。

Flash Player では、いくつかの有効な code プロパティ値が指定された StatusEvent イベントを送出することによって、プレーヤーの更新が必要であることが示されます(status を参照)。プレーヤーに対する更新では、ユーザーの承諾は必要ありません。イベントを監視し、更新するオプションをユーザーに表示します。ユーザーは、ユーザーインターフェイス内のボタンをクリックするなどして、実際の更新に対して同意して更新を開始する必要があります。次に、update("SYSTEM") を呼び出すことによって、ActionScript 内で直接プレーヤーの更新を開始できます。

注意:SystemUpdater API はすべてのデスクトッププラットフォームでサポートされます。

flash.system.SystemUpdaterTypecancel プレーヤー自体の更新がユーザーによってキャンセルされたときに送出されます。flash.events.Event.CANCELflash.events.Event プレーヤー自体の更新がユーザーによってキャンセルされたときに送出されます。SystemUpdaterType.SYSTEM 型の更新が要求され、ユーザーが更新をキャンセルした場合にのみ、このイベントは送出されます。 complete 更新が完了したときに送出されます。flash.events.Event.COMPLETEflash.events.Event 更新が完了したときに送出されます。 securityError セキュリティエラーが発生したときに送出されます。flash.events.SecurityErrorEvent.SECURITY_ERRORflash.events.SecurityErrorEvent セキュリティエラーが発生したときに送出されます。例えば、セキュリティポリシーによって更新が許可されていない場合にプレーヤーが更新を試みると、このイベントを送出する可能性があるセキュリティエラーが発生します。 ioError I/O エラーが発生したときに送出されます。flash.events.IOErrorEvent.IO_ERRORflash.events.IOErrorEvent I/O エラーが発生したときに送出されます。例えば、このイベントを発生させるエラーの 1 つに、インターネット接続の切断があります。 progress ダウンロードの進捗状況を示すために送出されます。flash.events.ProgressEvent.PROGRESSflash.events.ProgressEvent ダウンロードの進捗状況を示すために送出されます。このイベントは、Loader クラスと URLLoader クラスの progress イベントと類似しています。 status 更新に失敗したときに送出されます。flash.events.StatusEvent.STATUSflash.events.StatusEvent 更新に失敗したときに送出されます。次のいずれかの理由により、更新に失敗することがあります。

  • 呼び出し元が、サポートされていないプラットフォーム上またはアーキテクチャ上で実行されています。この場合、code プロパティの値は "DRM.UpdateFailedNotSupported" であり、level プロパティの値は "error" です。
  • 要求された更新パッケージが、サーバー上に見つかりません。この場合、code プロパティの値は "DRM.UpdateFailedNotCurrentlyAvailable" であり、level プロパティの値は "error" です。
  • Flash Access モジュールがインストールされていません。このエラーは、NetStatusEvent によって送出される "DRM.UpdateNeeded" コードに似ています。ただし、この場合は、Flash Player のバージョンが新しいものから先にダウンロードする必要があります。この場合、code プロパティの値は "DRM.UpdateNeededButIncompatible" であり、level プロパティの値は "error" です。Flash Player の更新を実行するには、SystemUpdater.update(SystemUpdaterType.SYSTEM) を呼び出します。
  • 新しい DRM モジュールをダウンロードできませんでした。この場合、code プロパティの値は "DRM.UpdateFailed" であり、level プロパティの値は "error" です。

open 更新を開始したときに送出されます。flash.events.Event.OPENflash.events.Event 更新を開始したときに送出されます。更新は、'complete' イベントが送信されたとき、または IOErrorEvent、SecurityErrorEvent、あるいは StatusEvent が送信されたときに完了します。 SystemUpdater コンストラクターです。 コンストラクターです。 cancel アクティブな更新をキャンセルします。 アクティブな更新をキャンセルします。 update 指定されたタイプの更新を開始します。typeString 指定されたタイプの更新を開始します。更新のタイプは、SystemUpdaterType クラスで定義されているストリング定数の 1 つです。すべてのブラウザーで、一度に 1 つの更新だけが許可されます。

更新が開始された後は、このクラスで定義されているイベントを監視します。次のイベントは更新の終了を示し、update() 関数の呼び出しと同様に、新しい更新を許可するか更新の試行を続行します。

  • complete
  • cancel
  • securityError
  • ioError
  • status

flash.system.SystemUpdaterType