Adobe® Flash® Platform 用 ActionScript® 3.0 リファレンスガイド
ホーム  |  パッケージおよびクラスリストの非表示 |  パッケージ  |  クラス  |  新機能  |  索引  |  付録  |  英語で表示される理由
フィルター: サーバーからデータを取得しています...
サーバーからデータを取得しています...
 

パッケージ flash.net 


flash.net パッケージには、新しいブラウザーウィンドウを開く、URL 要求をサーバーに送信する、クラスエイリアスを扱うなどの操作を行うためのパッケージレベルの関数が含まれます。
パブリックメソッド
 関数定義元
  
registerClassAlias() メソッドの呼び出しを介して以前にエイリアスを登録したクラスを検索します。
flash.net
  
navigateToURL(request:URLRequest, window:String = null):void
Flash Player のコンテナを含むアプリケーション(通常はブラウザー)でウィンドウを開くか、置き換えます。
flash.net
  
registerClassAlias(aliasName:String, classObject:Class):void
AMF(Action Message Format)でオブジェクトがエンコードされるとき、オブジェクトのクラス(タイプ)を維持します。
flash.net
  
URL リクエストをサーバーに送信しますが、応答は無視します。
flash.net
関数の詳細

getClassByAlias

()関数
public function getClassByAlias(aliasName:String):Class

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

既に registerClassAlias() メソッドの呼び出しによってエイリアスが登録されているクラスを検索します。

このメソッドは flash.utils.getDefinitionByName() メソッドとやり取りを行いません。

パラメーター

aliasName:String — 検索するエイリアスです。

戻り値
Class — 指定されたエイリアスに関連付けられたクラスです。見つからない場合は、例外がスローされます。

例外
ReferenceError — エイリアスが登録されていません。

関連する API エレメント

navigateToURL

()関数 
public function navigateToURL(request:URLRequest, window:String = null):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

Flash Player のコンテナを含むアプリケーション(通常はブラウザー)でウィンドウを開くか、置き換えます。Adobe AIR では、関数によってデフォルトシステム Web ブラウザーで URL が開かれます。

重要なセキュリティメモ

開発者は URL 値を FlashVars などの外部ソースから取得した navigateToURL() 関数に渡すことがよくあります。攻撃側は、クロスサイトスクリプティングなどの攻撃を実行するためにこれらの外部ソースを操作しようとする場合があります。したがって、開発者は URL 値をこの関数に渡す前にすべての URL を検証する必要があります。

URL の適切なデータ検証方法は、アプリケーション全体での URL の使用状況によって異なります。最も一般的なデータ検証方法では、URL が適切なスキームかどうかも検証します。例えば、javascript の意図しない許可です。URL はクロスサイトスクリプティングになる場合があります。URL が独自のドメイン内のものであることを検証することにより、フィッシング攻撃を行うユーザーによってオープンリダイレクタとして SWF ファイルが使用されないようにします。さらにセキュリティを強化するには、URL のパスを検証し、URL が RFC のガイドラインに準拠していることを確認することもできます。

例えば、次に示す簡単なコードの例では、データの検証として、http:// または https:// で始まっていない URL を拒否し、URL が自分のドメイン名に含まれることを確認しています。すべての Web アプリケーションにこの例が適用できるとは限らないため、URL に対して追加のチェックが必要かどうかを検討することをお勧めします。

     // AS3 Regular expression pattern match for URLs that start with http:// and https:// plus your domain name.
     function checkProtocol (flashVarURL:String):Boolean {
        // Get the domain name for the SWF if it is not known at compile time.
        // If the domain is known at compile time, then the following two lines can be replaced with a hard coded string.
        var my_lc:LocalConnection = new LocalConnection();
        var domainName:String = my_lc.domain;
        // Build the RegEx to test the URL.
        // This RegEx assumes that there is at least one "/" after the
        // domain. http://www.mysite.com will not match.
        var pattern:RegExp = new RegExp("^http[s]?\:\\/\\/([^\\/]+)\\/");
        var result:Object = pattern.exec(flashVarURL);
        if (result == null || result[1] != domainName || flashVarURL.length >= 4096) {
          return (false);
        }
        return (true);
     }  
     
      

ブラウザー内で実行されるローカルコンテンツの場合、navigateToURL() メソッドを呼び出すときに "javascript:" 擬似プロトコルを(最初のパラメーターとして渡される URLRequest オブジェクトを介して)指定できるのは、SWF ファイルとそれが含まれる Web ページ(存在する場合)が、信頼できるローカルのセキュリティサンドボックス内にある場合のみです。一部のブラウザーでは、javascript プロトコルを navigateToURL() メソッドと共に使用することをサポートしていません。代わりに、call() メソッド(ExternalInterface API)を使用し、JavaScript メソッドを取り込んでいる HTML ページ内で呼び出すことを検討してください。

Flash Player、および Adobe AIR のアプリケーションサンドボックス以外では、一般的な予約ポートに接続することはできません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。

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

Flash Player 10 以降では、"multipart/form-data" などのマルチパート Content-Type にアップロードが含まれていると(アップロードが含まれているかどうかは POST ボディ内の "content-disposition" ヘッダーの "filename" パラメーターで示されます)、そのアップロードに適用されるセキュリティ規則によって POST 処理が拘束されます。

  • POST 処理は、マウスのクリックやキーの押下などのユーザーが開始したアクションに応答して実行する必要があります。
  • POST 処理がクロスドメインである(POST ターゲットが、POST 要求を送信中の SWF ファイルと同じサーバー上にない)場合は、クロスドメインアクセスを許可する URL ポリシーファイルをターゲットサーバーが提供する必要があります。

また、すべてのマルチパート Content-Type では、RFC2046 標準に準拠した有効なシンタックスを使用する必要があります。シンタックスが有効でない場合は、アップロードに適用されるセキュリティ規則によって POST 処理が拘束されます。

モバイルプラットフォームの AIR では、sms: および tel: URI スキームがサポートされます。Android では、vipaccess:、connectpro: および market: URI スキームがサポートされます。URL 構文は、プラットフォームの規則に従います。例えば、Android では URI スキームを小文字にする必要があります。これらのスキームのいずれかを使用して URL に移動すると、ランタイムによって、スキームを処理するためにデフォルトのアプリケーションで URL が開かれます。そのため、tel:+5555555555 にアクセスすると、入力した指定の番号で電話ダイヤラーが開きます。電話ダイヤラーなどの別のアプリケーションまたはユーティリティは、URL を処理できる必要があります。

次のコードは、Android 上で VIP Access アプリケーションと Connect Pro アプリケーションを呼び出す方法を示しています。

       //Invoke the VIP Access Application.
       navigateToURL(new URLRequest("vipaccess://com.verisign.mvip.main?action=securitycode"));
     
       //Invoke the Connect Pro Application.
       navigateToURL(new URLRequest("connectpro://"));
     
      

パラメーター

request:URLRequest — 移動先の URL を指定する URLRequest オブジェクトです。

Adobe AIR で実行中のコンテンツの場合、navigateToURL() 関数を使用すると、ランタイムでは、POST メソッドを使用する URLRequest(method プロパティが URLRequestMethod.POST に設定されているもの)は、GET メソッドとして処理されます。

 
window:String (default = null)request パラメーターで指定されたドキュメントを表示するブラウザーウィンドウまたは HTML フレームです。特定のウィンドウの名前を入力するか、次の値のいずれかを使用します。
  • "_self" は、現在のウィンドウ内の現在のフレームを指定します。
  • "_blank" は、新規ウィンドウを指定します。
  • "_parent" は、現在のフレームの親を指定します。
  • "_top" は、現在のウィンドウ内の最上位のフレームを指定します。

このパラメーターに値を指定しない場合は、新しい空のウィンドウが作成されます。スタンドアローン Flash Player では、新しい("_blank")ウィンドウまたは名前付きのウィンドウのいずれかを指定できます。その他の値は適用されません。

注意:ローカルファイルシステムのサンドボックスで実行される SWF ファイル内のコードが navigateToURL() 関数を呼び出して window パラメーターにカスタムウィンドウ名を指定すると、そのウィンドウ名はランダム名に受け継がれます。"_flashXXXXXXXX" の形式の名前になります。X はそれぞれがランダム 16 進数字を表します。同じセッション内で(含まれるブラウザーウィンドウを閉じるまでに)再度この関数を呼び出して window パラメーターに同じ名前を指定した場合は、同じランダムストリングが使用されます。


例外
IOError request オブジェクトの digest プロパティが null ではありません。URLRequest オブジェクトの digest プロパティを設定できるのは、URLLoader.load() メソッドを呼び出して SWZ ファイル(Adobe プラットフォームコンポーネント)を読み込む場合のみです。
 
SecurityError — Flash Player(および Adobe AIR のアプリケーションサンドボックスコンテンツ以外)では、このエラーは次の条件でスローされます。
  • 信頼されていないローカル SWF ファイルはインターネットへの接続を許可されません。この問題は、この SWF ファイルを local-with-networking または trusted として分類し直すことで回避できます。
  • スクリプティング疑似 URL を評価するために試行された移動操作です。ただし、含まれるドキュメント(一般にブラウザー内の HTML ドキュメント)はアクセス権限が与えられていないサンドボックスからのものです。この問題は、含まれるドキュメントに allowScriptAccess="always" を指定することで回避できます。
  • HTML ファイルと SWF ファイルのドメインが一致しないとき、特別なウィンドウ "_self""_top"、または "_parent" の移動は、allowScriptAccess"none" または "sameDomain" に設定されている HTML ページに SWF ファイルがある場合はできません。
  • デフォルト以外の名前を持つウィンドウを、ローカルファイルシステムのサンドボックスにある SWF ファイル内から移動することはできません。
  • 一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。
 
Error — マウスイベントやキー入力イベントなどのユーザー操作に応じてメソッドが呼び出されない場合。この要件は Flash Player のコンテンツおよび Adobe AIR のアプリケーションサンドボックスコンテンツ以外にのみ適用されます。

さらに例を参照

関連する API エレメント


例  ( この例の使用方法 )

次の例では、新しいブラウザーウィンドウで URL http://www.adobe.com を開き、URLVariables オブジェクトで捕捉したユーザーセッションに関するデータを Web サーバーに渡します。
package {
    import flash.display.Sprite;
    import flash.net.navigateToURL;
    import flash.net.URLRequest;
    import flash.net.URLVariables;

    public class NavigateToURLExample extends Sprite {

        public function NavigateToURLExample() {
            var url:String = "http://www.adobe.com";
            var variables:URLVariables = new URLVariables();
            variables.exampleSessionId = new Date().getTime();
            variables.exampleUserLabel = "Your Name";
            var request:URLRequest = new URLRequest(url);
            request.data = variables;
            try {            
                navigateToURL(request);
            }
            catch (e:Error) {
                // handle error here
            }
        }
    }
}

次の例は、Flash Player から navigateToURL() メソッドを使用して、新しいブラウザーウィンドウを開く方法を示しています。ActionScriptExamples.com で作成された例。
// Requires
// - Button symbol on Stage (or a display object, such as a MovieClip) with instance name "buttonSymbol"
//
buttonSymbol.addEventListener(MouseEvent.CLICK, buttonSymbol_click);
 
function buttonSymbol_click(evt:MouseEvent):void {
    var req:URLRequest = new URLRequest("http://www.adobe.com/");
    navigateToURL(req, "_blank");
}

次の例は、指定した番号を使用してデバイス電話ダイヤラーを起動するための構文を示しています。
var request:URLRequest = new URLRequest( "tel:+5555555555" );
navigateToURL( request );

次の例は、指定した受信者を使用してデバイステキストメッセージアプリケーションを起動するための構文を示しています。
var request:URLRequest = new URLRequest( "sms:+5555555555" );
navigateToURL( request );

次の例は、Android Market アプリケーションを起動するための構文を示しています。Flash Player アプリケーションを検索するための search パラメーターが設定されます。
var request:URLRequest = new URLRequest( "market://search?q=pname:com.adobe.flashplayer" );
navigateToURL( request );

registerClassAlias

()関数 
public function registerClassAlias(aliasName:String, classObject:Class):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

AMF(Action Message Format)でオブジェクトがエンコードされるとき、オブジェクトのクラス(タイプ)を維持します。オブジェクトを AMF にエンコードする場合、この関数は、そのクラスのエイリアスを保存し、オブジェクトのデコード時にクラスを復元できるようにします。エンコードコンテキストで、オブジェクトのクラスのエイリアスが登録されていない場合、オブジェクトは匿名オブジェクトとしてエンコードされます。同様に、デコードコンテキストで、同じエイリアスが登録されていない場合、デコードするデータに対して、匿名オブジェクトが作成されます。

LocalConnection、ByteArray、SharedObject、NetConnection、および NetStream はすべて、AMF でオブジェクトをエンコードするクラスの例です。

エンコードおよびデコードコンテキストでは、エイリアスに同じクラスを使用する必要はありません。エンコード先およびデコード先のクラスに、ソースクラスによって直列化されたすべてのメンバーが含まれている限り、クラスを意図的に変更できます。

パラメーター

aliasName:String — 使用するエイリアスです。
 
classObject:Class — 指定されたエイリアスに関連付けられたクラスです。


例外
TypeError — いずれかのパラメーターが null の場合。

関連する API エレメント


例  ( この例の使用方法 )

この例では、registerClassAlias() 関数を使用して、クラス ExampleClass のエイリアス(com.example.eg)を登録します。クラスのエイリアスが登録されると、オブジェクトを ExampleClass のインスタンスとして非直列化できるようになり、コードは true を出力します。registerClassAlias() 呼び出しが削除されると、コードは false を出力します。
package {
    import flash.display.Sprite;
    import flash.net.registerClassAlias;
    import flash.utils.ByteArray;

    public class RegisterClassAliasExample extends Sprite {
        public function RegisterClassAliasExample() {
            registerClassAlias("com.example.eg", ExampleClass);
            var eg1:ExampleClass = new ExampleClass();
            var ba:ByteArray = new ByteArray();
            ba.writeObject(eg1);
            ba.position = 0;
            var eg2:* = ba.readObject();
            trace(eg2 is ExampleClass); // true
        }
    }
}

class ExampleClass {}

sendToURL

()関数 
public function sendToURL(request:URLRequest):void

言語バージョン: ActionScript 3.0
ランタイムバージョン: AIR 1.0, Flash Player 9, Flash Lite 4

URL リクエストをサーバーに送信しますが、応答は無視します。

サーバーの応答を調べるには、代わりに URLLoader.load() メソッドを使用します。

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

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

Flash Player 10 以降では、"multipart/form-data" などのマルチパート Content-Type にアップロードが含まれていると(アップロードが含まれているかどうかは POST ボディ内の "content-disposition" ヘッダーの "filename" パラメーターで示されます)、そのアップロードに適用されるセキュリティ規則によって POST 処理が拘束されます。

  • POST 処理は、マウスのクリックやキーの押下などのユーザーが開始したアクションに応答して実行する必要があります。
  • POST 処理がクロスドメインである(POST ターゲットが、POST 要求を送信中の SWF ファイルと同じサーバー上にない)場合は、クロスドメインアクセスを許可する URL ポリシーファイルをターゲットサーバーが提供する必要があります。

また、すべてのマルチパート Content-Type では、RFC2046 標準に準拠した有効なシンタックスを使用する必要があります。シンタックスが有効でない場合は、アップロードに適用されるセキュリティ規則によって POST 処理が拘束されます。

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

パラメーター

request:URLRequest — データの送信先の URL を指定する URLRequest オブジェクトです。


例外
SecurityError — 信頼されていないローカル SWF ファイルはインターネットへの接続を許可されません。この問題は、この SWF ファイルを local-with-networking または trusted として分類し直すことで回避できます。
 
SecurityError — 一般的な予約ポートには接続できません。遮断されたポートの詳しいリストについては、『ActionScript 3.0 開発ガイド』の「ネットワーク API の制限」を参照してください。

例  ( この例の使用方法 )

次の例では、URLVariables オブジェクトで捕捉したユーザーセッションに関するデータを、http://www.yourDomain.com/application.jsp にあるアプリケーションに渡します。
 package {
    import flash.display.Sprite;
    import flash.net.URLRequest;
    import flash.net.URLVariables;
    import flash.net.sendToURL;

    public class SendToURLExample extends Sprite {

        public function SendToURLExample() {
            var url:String = "http://www.yourDomain.com/application.jsp";
            var variables:URLVariables = new URLVariables();
            variables.sessionId = new Date().getTime();
            variables.userLabel = "Your Name";

            var request:URLRequest = new URLRequest(url);
            request.data = variables;
            trace("sendToURL: " + request.url + "?" + request.data);
            try {
                sendToURL(request);
            }
            catch (e:Error) {
                // handle error here
            }
        }
    }
}

[ X ]英語で表示される理由
ActionScript 3.0 リファレンスガイドのコンテンツが英語で表示されます。

ActionScript 3.0 リファレンスガイドのすべての部分がすべての言語に翻訳されているわけではありません。言語エレメントが翻訳されていない場合、そのエレメントは英語で表示されます。例えば、ga.controls.HelpBox クラスはどの言語にも訳されていません。このため、リファレンスガイドの日本語バージョンでは、ga.controls.HelpBox クラスは英語で表示されます。