パッケージflash.net
クラスpublic class LocalConnection
継承LocalConnection Inheritance EventDispatcher Inheritance Object

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

LocalConnection クラスを使用すると、単一 SWF ファイルまたは複数の SWF にまたがる別の LocalConnection オブジェクトでメソッドを呼び出す LocalConnection オブジェクトを作成できます。ローカル接続では、SWF ファイル間のこの種の通信は fscommand() または JavaScript を使用しなくても可能です。LocalConnection オブジェクトを使って通信できるのは、同じクライアントコンピュータ上で実行中の SWF ファイル間だけです。ただし、これらは異なるアプリケーションで実行されていてもかまいません。たとえば、ブラウザで実行されている SWF ファイルと、プロジェクタで実行されている SWF ファイルとの間で通信することもできます。

ActionScript 3.0 で作成された LocalConnection オブジェクトは、ActionScript 1.0 または 2.0 で作成された LocalConnection オブジェクトと通信できます。また、その逆も可能です。ActionScript 1.0 または 2.0 で作成された LocalConnection オブジェクトは、ActionScript 3.0 で作成された LocalConnection オブジェクトと通信できます。Flasn Player では、このようなバージョンの異なる LocalConnection オブジェクト間の通信が自動的に処理されます。

各ファイルで使用されるコマンドを確認することで、2 つの SWF ファイル間で通信を行うための LocalConnection オブジェクトの使用方法が理解しやすくなります。一方の SWF ファイルを送信側 SWF ファイルと呼びます。呼び出されるメソッドが含まれるファイルです。送信側 SWF ファイルには、LocalConnection オブジェクトと send() メソッドの呼び出しが含まれている必要があります。もう一方の SWF ファイルを受信側 SWF ファイルと呼びます。メソッドを呼び出すファイルです。受信側 SWF ファイルには、もう 1 つの LocalConnection オブジェクトと connect() メソッドの呼び出しが含まれている必要があります。

send()connect() のどちらを使用するかは、SWF ファイルが同じドメイン内にある場合、予測可能なドメイン名を持つ異なるドメインにある場合、予測不可能または動的なドメイン名を持つ異なるドメインにある場合により異なります。次の段落では、上記の 3 つの場合それぞれについて、サンプルコードを使用して説明します。

同じドメインの場合 : LocalConnection オブジェクトの最も簡単な使用方法は、同じドメイン内の LocalConnection オブジェクト間だけで通信を許可することです。これは、Flash Player ではデフォルトで同一ドメイン通信が許可されているためです。同じドメインにある 2 つの SWF ファイル間で通信を行う場合は、特別なセキュリティ対策を実装する必要はありません。connectionName パラメータの値をそのまま connect() メソッドと send() メソッドに渡すだけです。

予測可能なドメイン名を持つ異なるドメインの場合 : 異なるドメインに存在する 2 つの SWF ファイル間で通信を行う場合は、allowDomain() メソッドを呼び出して、2 つのドメイン間の通信を許可する必要があります。また、send() メソッドでの接続名を、受信側 LocalConnection オブジェクトのドメイン名で修飾する必要があります。

予測不可能なドメイン名を持つ異なるドメインの場合 : 受信側の LocalConnection オブジェクトを持つ SWF ファイルの移植性をドメイン間で高める場合もあります。send() メソッドでドメイン名を指定せずに受信側と送信側の LocalConnection オブジェクトが同じドメインにないことを Flash Player に認識させるには、connect() 呼び出しと send() 呼び出しの両方で、接続名の前にアンダースコア (_) を付けます。2 つのドメイン間の通信を許可するには、allowDomain() メソッドを呼び出して、LocalConnection の呼び出しを許可するドメインを渡します。または、ワイルドカード (すべてのドメインからの呼び出しを許可する引数) を渡します。

LocalConnection オブジェクトを使用して、1 つの SWF ファイル内でデータを送受信することもできますが、これは一般的な方法ではありません。

send() メソッドと connect() メソッドの詳細については、connectionName パラメータ (LocalConnection.send() エントリおよび LocalConnection.connect() エントリ) の説明を参照してください。また、allowDomain() エントリおよび domain エントリも参照してください。

例を表示

関連項目

flash.net.LocalConnection.send()
flash.net.LocalConnection.allowDomain()
flash.net.LocalConnection.domain
他の Flash Player インスタンスへの接続


パブリック プロパティ
 プロパティ定義元
  client : Object
コールバックメソッドが呼び出されるオブジェクトを示します。
LocalConnection
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  domain : String
[read-only] 現在の SWF ファイルが存在するドメインを表すストリングです。
LocalConnection
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリック メソッド
 メソッド定義元
  
LocalConnection オブジェクトを作成します。
LocalConnection
 Inherited
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
イベントリスナーオブジェクトを EventDispatcher オブジェクトに登録し、リスナーがイベントの通知を受け取るようにします。
EventDispatcher
  
allowDomain(... domains):void
この LocalConnection インスタンスに LocalConnection 呼び出しを送信できる 1 つ以上のドメインを指定します。
LocalConnection
  
この LocalConnection オブジェクトに LocalConnection 呼び出しを送信できる 1 つ以上のドメインを指定します。
LocalConnection
  
LocalConnection オブジェクトを閉じます (切断します)。
LocalConnection
  
connect(connectionName:String):void
send() コマンド (送信側 LocalConnection オブジェクト) からのコマンドを受け取るように LocalConnection オブジェクトを準備します。
LocalConnection
 Inherited
イベントをイベントフローに送出します。
EventDispatcher
 Inherited
EventDispatcher オブジェクトに、特定のイベントタイプに対して登録されたリスナーがあるかどうかを確認します。
EventDispatcher
 Inherited
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 Inherited
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 Inherited
指定されたプロパティが存在し列挙できるかどうかを示します。
Object
 Inherited
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
EventDispatcher オブジェクトからリスナーを削除します。
EventDispatcher
  
send(connectionName:String, methodName:String, ... arguments):void
connect(connectionName) メソッド (受信側 LocalConnection オブジェクト) で確立した接続を使用して、methodName で指定されたメソッドを呼び出します。
LocalConnection
 Inherited
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 Inherited
指定されたオブジェクトのストリング表現を返します。
Object
 Inherited
指定されたオブジェクトのプリミティブな値を返します。
Object
 Inherited
指定されたイベントタイプについて、この EventDispatcher オブジェクトまたはその祖先にイベントリスナーが登録されているかどうかを確認します。
EventDispatcher
イベント
 イベント 概要 定義元
 Inherited Flash Player がオペレーティングシステムのフォーカスを取得して、アクティブになったときに送出されます。EventDispatcher
   非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。LocalConnection
 Inherited Flash Player がオペレーティングシステムのフォーカスを失って、非アクティブになったときに送出されます。EventDispatcher
   LocalConnection.send() の呼び出しで、異なるセキュリティサンドボックスにデータを送信しようとしたときに送出されます。LocalConnection
   LocalConnection オブジェクトがステータスを報告するときに送出されます。LocalConnection
プロパティの詳細
clientプロパティ
client:Object  [read-write]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

コールバックメソッドが呼び出されるオブジェクトを示します。デフォルトのオブジェクトは、作成されるローカル接続 this です。client プロパティを別のオブジェクトに設定すると、その別のオブジェクトでコールバックメソッドを呼び出すことができます。


実装
    public function get client():Object
    public function set client(value:Object):void

例外
TypeError client プロパティは、null 以外のオブジェクトに設定する必要があります。

関連項目

domainプロパティ 
domain:String  [read-only]

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

現在の SWF ファイルが存在するドメインを表すストリングです。

Flash Player 9 以降用にパブリッシュされた SWF では、現在の SWF ファイルのサブドメインを含むドメインを示すストリングを返します。たとえば、現在の SWF ファイルが www.adobe.com にある場合は、"www.adobe.com" を返します。

現在の SWF ファイルがクライアントコンピュータ上のローカルファイルである場合は、"localhost" を返します。

このプロパティの最も一般的な使用方法としては、送信側 LocalConnection オブジェクトのドメイン名を、受信側 LocalConnection オブジェクトで呼び出すメソッドのパラメータとして組み込みます。あるいは、LocalConnection.allowDomain() と組み合わせて使用して、特定のドメインからのコマンドを受け入れます。同じドメイン内にある LocalConnection オブジェクト間でのみ通信する場合は、通常、このプロパティを使用する必要はありません。


実装
    public function get domain():String

関連項目

コンストラクタの詳細
LocalConnection()コンストラクタ
public function LocalConnection()

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

LocalConnection オブジェクトを作成します。LocalConnection オブジェクトを使用すると、同じクライアントコンピュータ上で実行している異なる SWF ファイル間で通信できるようになります。

関連項目

メソッドの詳細
allowDomain()メソッド
public function allowDomain(... domains):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

この LocalConnection インスタンスに LocalConnection 呼び出しを送信できる 1 つ以上のドメインを指定します。

このメソッドを使用して、セキュアでないプロトコルでホストされている SWF ファイルから、セキュアなプロトコル (HTTPS) を使用してホストされている SWF ファイルへのアクセスを許可することはできません。この場合は、allowInsecureDomain() メソッドを使用してくだい。

場合によっては、このメソッドを使用して、親 SWF ファイルにドメインの不明な子 SWF ファイルからの LocalConnection 呼び出しを受け入れさせたいと思うこともあります。たとえば、ロードバランシングリダイレクトやサードパーティ製サーバーを使用する場合などです。このような場合、ロードに使用される LoaderInfo オブジェクトの url プロパティを使用すれば、allowDomain() メソッドで使用するドメインを取得できます。たとえば、Loader オブジェクトを使用して子 SWF ファイルをロードする場合、このファイルがロードされれば、Loader オブジェクトの contentLoaderInfo.url プロパティをチェックすることにより、完全な URL ストリングから子 SWF ファイルのドメインを解析できます。この場合、SWF ファイルがロードされるまで待つようにしてください。ファイルが完全にロードされるまで、contentLoaderInfo.url プロパティが最終的な正しい値に設定されないためです。

また、これとは反対の場合もあります。つまり、子 SWF ファイルにドメインの不明な親からの LocalConnection 呼び出しを受け入れさせたいという場合もあります。この場合は、ドメインパラメータがロードされた SWF ファイルの loaderInfo.url プロパティのドメインに一致するかどうかをチェックすることにより、このメソッドを実装できます。この場合も、loaderInfo.url に含まれている完全な URL からドメインを解析する必要があります。この状況では、親 SWF ファイルがロードされるまで待つ必要はありません。親 SWF ファイルは子 SWF ファイルがロードされた時点で既にロードされているからです。

このメソッドを使用するときは、Flash Player セキュリティモデルを考慮してください。デフォルトでは、LocalConnection オブジェクトはそれを作成した SWF ファイルのサンドボックスに関連づけられ、LocalConnection オブジェクトのクロスドメイン呼び出しは、受信側 SWF ファイルで LocalConnection.allowDomain() メソッドが呼び出されていない限り許可されません。

詳細については、以下を参照してください。

メモ : allowDomain() メソッドは、ActionScript 1.0 および 2.0 での形式から変更されています。これらの以前のバージョンでは、allowDomain は実装するコールバックメソッドでした。ActionScript 3.0 では、allowDomain() は LocalConnection のビルトインメソッドとして呼び出されます。変更された allowDomain()flash.system.Security.allowDomain() とほぼ同じように作用します。

パラメータ

... domains — LocalConnection 呼び出しを許可するドメインを指定するストリングです。このパラメータには次の 2 つの特殊なケースがあります。
  • ワイルドカード文字 "*" を使用して、すべてのドメインからの呼び出しを許可できます。
  • "localhost" というストリングを指定して、ローカル環境にインストールされている SWF ファイルからこの SWF ファイルへの呼び出しを許可することができます。Flash Player 8 から、ローカル SWF ファイルに関するセキュリティ制限が導入されました。デフォルトでは、インターネットへのアクセスを許可された SWF ファイルは、ローカルファイルシステムにアクセスできません。"localhost" を指定すると、どのローカル SWF ファイルもこの SWF ファイルにアクセスできます。


例外
ArgumentError — 指定されたすべてのパラメータは、null 以外にする必要があります。

関連項目

allowInsecureDomain()メソッド 
public function allowInsecureDomain(... domains):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

この LocalConnection オブジェクトに LocalConnection 呼び出しを送信できる 1 つ以上のドメインを指定します。

allowInsecureDomain() メソッドは allowDomain() メソッドと同じように作用しますが、allowInsecureDomain() メソッドは、HTTPS 以外でロードされた SWF ファイルが HTTPS でロードされた SWF ファイルに LocalConnection 呼び出しを送信することも許可する点が異なります。この違いは、HTTPS を使用してロードされた SWF ファイルから allowInsecureDomain() メソッドを呼び出す場合にのみ意味があります。同じドメイン内の非 HTTPS と HTTPS の境界を越える場合でも、allowInsecureDomain() メソッドを呼び出す必要があります。デフォルトでは、同じドメイン内でも 非 HTTPS SWF ファイルから HTTPS SWF ファイルへの LocalConnection 呼び出しは許可されません。

allowInsecureDomain() を呼び出すことは、HTTPS によるセキュリティが損なわれる恐れがあるため、お勧めできません。HTTPS によって SWF ファイルをロードする場合は、SWF ファイルがネットワークによる配信中に不正操作を受けないことを十分に確信できます。非 HTTPS SWF ファイルによる HTTPS SWF ファイルへの LocalConnection 呼び出しを許可した場合、配信中に不正操作された可能性のある SWF からの呼び出しを受け付けることになります。これは、HTTPS SWF ファイルに到着した LocalConnection 呼び出しの正当性を信頼できないため、一般に特別な警戒を必要とします。

デフォルトでは、HTTPS プロトコルを使用してホストされた SWF ファイルは、HTTPS プロトコルを使用してホストされた他の SWF ファイルにのみアクセスできます。この実装方法により、HTTPS プロトコルが提供する整合性が保たれます。

このメソッドでデフォルトの動作を変更することはお勧めできません。デフォルトの動作を変更すると、HTTPS のセキュリティが損なわれます。ただし、デフォルトの動作を変更せざるをえない場合もあります。たとえば、Flash Player 9 以降用にパブリッシュされた HTTPS ファイルに対して、Flash Player 6 またはそれ以前のバージョン用にパブリッシュされた HTTP ファイルからのアクセスを許可しなければならない場合などです。

詳細については、以下を参照してください。

パラメータ

... domains — LocalConnection 呼び出しを許可するドメインを指定するストリングです。このパラメータには 2 つの特殊なケースがあります。
  • ワイルドカード文字 "*" を指定して、すべてのドメインからの呼び出しを許可できます。"*" を指定する場合、ローカルホストは含まれません。
  • "localhost" というストリングを指定して、ローカル環境にインストールされている SWF ファイルからこの SWF ファイルへの呼び出しを許可することができます。Flash Player 8 から、ローカル SWF ファイルに関するセキュリティ制限が導入されました。これにより、インターネットへのアクセスを許可された SWF ファイルは、ローカルファイルシステムにはアクセスできません。"localhost" を指定すると、どのローカル SWF ファイルもこの SWF ファイルにアクセスできます。オーサリング時に、呼び出し元の SWF ファイルをネットワークにアクセス許可されたローカル SWF ファイルとして指定する必要もあります。


例外
ArgumentError — 指定されたすべてのパラメータは、null 以外にする必要があります。

関連項目

close()メソッド 
public function close():void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

LocalConnection オブジェクトを閉じます (切断します)。このコマンドは、LocalConnection オブジェクトがもうコマンドを受け入れないようにする場合に実行します。たとえば、connect() コマンドを、別の SWF ファイルで同じ connectionName パラメータを使用して実行する場合などです。


例外
ArgumentError — LocalConnection インスタンスが接続されていないため、閉じることができません。

関連項目

connect()メソッド 
public function connect(connectionName:String):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

send() コマンド (送信側 LocalConnection オブジェクト) からのコマンドを受け取るように LocalConnection オブジェクトを準備します。このコマンドを使用するオブジェクトは受信側 LocalConnection オブジェクトと呼ばれます。受信側と送信側のオブジェクトは、同じクライアントコンピュータ上で実行する必要があります。

競合状況を避けるため、このメソッドを呼び出す前に、LocalConnection クラスの例に示すように、受信側の LocalConnection オブジェクトに関連付けられているメソッドを定義します。

デフォルトでは、Flash Player は connectionName を解決して " superdomain :connectionName" の値を取得します。ここで superdomain は、connect() コマンドを含む SWF ファイルのスーパードメインを表します。たとえば、受信側 LocalConnection オブジェクトを含む SWF ファイルが www.someDomain.com に配置されている場合、connectionName"someDomain.com:connectionName" に解決されます。SWF ファイルがクライアントコンピュータに配置されている場合、superdomain には "localhost" が割り当てられます。

またデフォルトでは、受信側 LocalConnection オブジェクトは、接続名が " superdomain :connectionName" の値に解決される送信側 LocalConnection オブジェクトからのコマンドだけを受け入れます。このため、同じドメインに置かれている SWF ファイル間の通信は簡単です。

同じドメインの SWF ファイル間のみの通信を実装する場合は、先頭がアンダースコア (_) でなくドメイン名を含まないストリングを connectionName に指定します ("myDomain:connectionName" など)。connect(connectionName) メソッドと同じストリングを使用してください。

異なるドメイン内の SWF ファイル間の通信を実装する場合は、アンダースコア (_) で始まるストリングを connectionName に指定すると、受信側 LocalConnection オブジェクトを含む SWF ファイルのドメイン間ポータビリティが高まります。考えられる 2 つの状況を次に示します。

詳細については、クラスの概要の説明、connectionName (send()) の説明、および allowDomain() エントリと domain エントリを参照してください。

メモ : コロンは、connectionName のストリングとスーパードメインを区切る特殊文字として使用されます。connectionName にコロンを含むストリングを指定するのは無効です。

このメソッドを使用するときは、Flash Player セキュリティモデルを考慮してください。デフォルトでは、LocalConnection オブジェクトはそれを作成した SWF ファイルのサンドボックスに関連づけられ、LocalConnection オブジェクトのクロスドメイン呼び出しは、受信側 SWF ファイルで LocalConnection.allowDomain() メソッドが呼び出されていない限り許可されません。SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含んでいる HTML ページに allowNetworking パラメータ (object タグおよび embed タグ) を設定します。

詳細については、以下を参照してください。

パラメータ

connectionName:String — 受信側 LocalConnection と通信する send() コマンドで指定した接続名に対応するストリング。


例外
TypeError connectionName パラメータに渡される値は null 以外にする必要があります。
 
ArgumentError — このエラーは、次の 3 つの理由によって発生する可能性があります。1) connectionName パラメータに渡されたストリング値が null だった場合。null 以外の値を渡します。2) connectionName パラメータに渡された値にコロン (:) が含まれていた場合。コロンは、スーパードメインと connectionName ストリングを区切る特殊文字として send() メソッドで使用されます。connect() メソッドでは使用しません。3) LocalConnection インスタンスが既に接続されている場合。

関連項目

send()メソッド 
public function send(connectionName:String, methodName:String, ... arguments):void

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

methodName で指定されたメソッドを呼び出します。このとき connect( connectionName ) メソッド (受信側 LocalConnection オブジェクト) で確立された接続が使用されます。このコマンドを使用するオブジェクトは送信側 LocalConnection オブジェクト と呼ばれます。送信側オブジェクトと受信側オブジェクトを含む SWF ファイルは、同じクライアントコンピュータ上で実行する必要があります。

このコマンドにパラメータとして渡すことができるデータの量は 40 KB に制限されます。シンタックスが正しいにもかかわらず、send()ArgumentError をスローする場合は、send() 要求を複数のコマンドに分割してそれぞれのデータを 40 KB より小さくしてみてください。

connect() エントリで説明されているように、デフォルトでは connectionName に現在のスーパードメインが追加されます。異なるドメイン間の通信を実装する場合は、送信側と受信側の両方の LocalConnection オブジェクトの connectionName を、現在のスーパードメインが connectionName に追加されないように定義する必要があります。これには、次の 2 つの方法があります。

メモ : 受信側 LocalConnection オブジェクトの connectionName ではスーパードメインを指定できません。スーパードメインを指定できるのは送信側 LocalConnection オブジェクトだけです。

このメソッドを使用するときは、Flash Player セキュリティモデルを考慮してください。デフォルトでは、LocalConnection オブジェクトはそれを作成した SWF ファイルのサンドボックスに関連づけられ、LocalConnection オブジェクトのクロスドメイン呼び出しは、受信側 SWF ファイルで LocalConnection.allowDomain() メソッドが呼び出されていない限り許可されません。SWF ファイルがこのメソッドを使用しないようにするには、SWF コンテンツを含んでいる HTML ページに allowNetworking パラメータ (object タグおよび embed タグ) を設定します。

詳細については、以下を参照してください。

パラメータ

connectionName:String — 送信側 LocalConnection オブジェクトと通信するための connect() コマンドで指定された接続名に対応します。
 
methodName:String — 受信側 LocalConnection オブジェクト内で呼び出されるメソッドの名前。次のメソッド名を使用すると、このコマンドは失敗します。sendconnectcloseallowDomainallowInsecureDomainclient、および domain
 
... arguments — 指定するメソッドに渡す追加のパラメータ。このパラメータはオプションです。


イベント
securityError:SecurityErrorEventLocalConnection.send() は、呼び出し元のコードがアクセスできないセキュリティ Sandbox から SWF ファイルと通信しようとしました。これは LocalConnection.allowDomain() を受信側で実装することで回避できます。
 
status:StatusEventlevel プロパティの値が "status" の場合は呼び出しが成功したことを示し、"error" の場合は呼び出しが失敗したことを示します。受信側の SWF ファイルが接続を拒否した場合、呼び出しは失敗する可能性があります。

例外
TypeError connectionName または methodName のいずれかの値が null です。これらのパラメータに null 以外の値を渡します。
 
ArgumentError — このエラーは、次のうちいずれかの理由で発生する可能性があります。1) connectionName または methodName のいずれかの値が空ストリングである場合。これらのパラメータに有効なストリングを渡します。2) methodName で指定されているメソッドが制限されている場合。3) 送信された直列化メッセージが大きすぎる場合 (40 K 以上)。

関連項目

イベントの詳細
asyncError イベント
イベントオブジェクトの型: flash.events.AsyncErrorEvent
AsyncErrorEvent.type property = flash.events.AsyncErrorEvent.ASYNC_ERROR

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

非同期形式で、つまりネイティブ非同期コードから例外がスローされると送出されます。

AsyncErrorEvent.ASYNC_ERROR 定数は、type プロパティ (asyncError イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetネットワーク操作エラーが発生したオブジェクトです。
errorイベントをトリガしたエラーです。
securityError イベント  
イベントオブジェクトの型: flash.events.SecurityErrorEvent
SecurityErrorEvent.type property = flash.events.SecurityErrorEvent.SECURITY_ERROR

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

LocalConnection.send() の呼び出しで、異なるセキュリティサンドボックスにデータを送信しようとすると送出されます。

SecurityErrorEvent.SECURITY_ERROR 定数は、type プロパティ (securityError イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
targetセキュリティエラーを報告するネットワークオブジェクトです。
textエラーメッセージとして表示されるテキストです。

関連項目

status イベント  
イベントオブジェクトの型: flash.events.StatusEvent
StatusEvent.type property = flash.events.StatusEvent.STATUS

言語バージョン : ActionScript 3.0
Player のバージョン : Flash Player 9

LocalConnection オブジェクトがステータスを報告するときに送出されます。LocalConnection.send() が正常に実行された場合、status イベントオブジェクトの level プロパティの値は "status" になります。また、呼び出しに失敗した場合、level プロパティの値は "error" になります。受信側 SWF ファイルで接続が拒否されると、送信側 SWF ファイルへの通知なしで呼び出しが失敗する可能性があります。

type プロパティ (status イベントオブジェクト) の値を定義します。

このイベントには、次のプロパティがあります。

プロパティ
bubblesfalse
cancelablefalse は、キャンセルするデフォルトの動作がないことを示します。
codeオブジェクトのステータスの説明です。
currentTargetイベントリスナーで Event オブジェクトをアクティブに処理しているオブジェクトです。
level"status""warning""error" など、メッセージのカテゴリです。
targetそのステータスをレポートするオブジェクトです。

関連項目

例の使用法
LocalConnectionSenderExample.as

このサンプルは、2 つの異なる SWF ファイルにコンパイルする必要のある 2 つの ActionScript クラスから構成されています。

LocalConnectionSenderExample SWF ファイルでは LocalConnection インスタンスが作成され、ボタンが押されると call() メソッドを使用して SWF ファイル内の lcHandler というメソッドが呼び出されます。このとき接続名 "myConnection" が使用され、パラメータとして TextField の内容が渡されます。

LocalConnectionReceiverExample SWF ファイルでは LocalConnection インスタンスが作成され、connect() メソッドが呼び出されて、この SWF ファイルが接続名 "myConnection" 宛のメッセージの受信者に指定されます。さらにこのクラスには、lcHandler() というパブリックメソッドが含まれています。これは、LocalConnectionSenderExample SWF ファイルによって呼び出されるメソッドです。メソッドが呼び出されると、パラメータとして渡されるテキストがステージ上の TextField に追加されます。

メモ :この例をテストするには、両方の SWF ファイルを同じコンピュータ上に同時にロードする必要があります。


// Code in LocalConnectionSenderExample.as
package {
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.net.LocalConnection;
    import flash.text.TextField;
    import flash.text.TextFieldType;
    import flash.events.StatusEvent;
    import flash.text.TextFieldAutoSize;

    public class LocalConnectionSenderExample extends Sprite {
        private var conn:LocalConnection;
        
        // UI elements
        private var messageLabel:TextField;
        private var message:TextField;
        private var sendBtn:Sprite;
        
        public function LocalConnectionSenderExample() {
            buildUI();
            sendBtn.addEventListener(MouseEvent.CLICK, sendMessage);
            conn = new LocalConnection();
            conn.addEventListener(StatusEvent.STATUS, onStatus);
        }
        
        private function sendMessage(event:MouseEvent):void {
            conn.send("myConnection", "lcHandler", message.text);
        }
        
        private function onStatus(event:StatusEvent):void {
            switch (event.level) {
                case "status":
                    trace("LocalConnection.send() succeeded");
                    break;
                case "error":
                    trace("LocalConnection.send() failed");
                    break;
            }
        }
        
        private function buildUI():void {
            const hPadding:uint = 5;
            // messageLabel
            messageLabel = new TextField();
            messageLabel.x = 10;
            messageLabel.y = 10;
            messageLabel.text = "Text to send:";
            messageLabel.autoSize = TextFieldAutoSize.LEFT;
            addChild(messageLabel);
            
            // message
            message = new TextField();
            message.x = messageLabel.x + messageLabel.width + hPadding;
            message.y = 10;
            message.width = 120;
            message.height = 20;
            message.background = true;
            message.border = true;
            message.type = TextFieldType.INPUT;
            addChild(message);
            
            // sendBtn
            sendBtn = new Sprite();
            sendBtn.x = message.x + message.width + hPadding;
            sendBtn.y = 10;
            var sendLbl:TextField = new TextField();
            sendLbl.x = 1 + hPadding;
            sendLbl.y = 1;
            sendLbl.selectable = false;
            sendLbl.autoSize = TextFieldAutoSize.LEFT;
            sendLbl.text = "Send";
            sendBtn.addChild(sendLbl);
            sendBtn.graphics.lineStyle(1);
            sendBtn.graphics.beginFill(0xcccccc);
            sendBtn.graphics.drawRoundRect(0, 0, (sendLbl.width + 2 + hPadding + hPadding), (sendLbl.height + 2), 5, 5);
            sendBtn.graphics.endFill();
            addChild(sendBtn);
        }
    }
}
LocalConnectionReceiverExample.as

// Code in LocalConnectionReceiverExample.as
package {
    import flash.display.Sprite;
    import flash.net.LocalConnection;
    import flash.text.TextField;

    public class LocalConnectionReceiverExample extends Sprite {
        private var conn:LocalConnection;
        private var output:TextField;
        
        public function LocalConnectionReceiverExample()     {
            buildUI();
            
            conn = new LocalConnection();
            conn.client = this;
            try {
                conn.connect("myConnection");
            } catch (error:ArgumentError) {
                trace("Can't connect...the connection name is already being used by another SWF");
            }
        }
        
        public function lcHandler(msg:String):void {
            output.appendText(msg + "\n");
        }
        
        private function buildUI():void {
            output = new TextField();
            output.background = true;
            output.border = true;
            output.wordWrap = true;
            addChild(output);
        }
    }
}




 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/net/LocalConnection.html