ホームページ >ウェブフロントエンド >jsチュートリアル >JS_javascript スキルを通じてクライアント IP とコンピュータ名を取得する Flex サンプル コード
まず、JS を使用してデータを取得することは、Web サービスや httpservice を呼び出すことを意味するものではないことを説明します。
各 FLex Web プロジェクトには、index.html ファイルを含むフォルダー bin-debug があり、Web ページが実行されると、mxml ファイルがコンパイルされます。 swf をブラウザに表示するには、この html ファイルを使用します。これは、html ファイルに swf オブジェクト コンポーネントを埋め込むのと同じです。 www.jb51.net
したがって、個人的には、この html に js コードを記述して IP アドレスを取得することが可能だと考えています。したがって、次のコードになります。
index.html に script タグを追加します。実際のコードは次のとおりです。
Flex で呼び出す方法は、Flex のクラス flash.external.ExternalInterface を使用します。
ExternalInterface クラスについて、Adobe は次のように説明しています。
ExternalInterface クラスは外部 API であり、ActionScript と Flash Player コンテナ (JavaScript を含む HTML ページなど) の間の直接通信を可能にするアプリケーション プログラミング インターフェイスです。アドビでは、JavaScript と ActionScript 間のすべての通信に ExternalInterface を使用することをお勧めします。
Flash Player では、HTML ページで JavaScript を使用して、ActionScript 関数を呼び出すことができます。 ActionScript 関数は、JavaScript が呼び出しの戻り値としてすぐに受け取る値を返すことができます。
この関数は fscommand() メソッドを置き換えます。
ExternalInterface クラスは、次のブラウザとオペレーティング システムの組み合わせで使用できます:
ブラウザ オペレーティング システム オペレーティング システム
Internet Explorer 5.0 以降 Windows
Netscape 8.0 以降 Windows MacOS
Mozilla 1.7.5 以降 Windows MacOS
Firefox 1.0 以降 Windows MacOS
Safari 1.3 以降 MacOS
Flash Player 9.0.31.0 以降 (Linux 用) ExternalInterface クラスは次のブラウザでサポートされています:
ブラウザ
Mozilla 1.7.x 以降
Firefox 1.5.0.7 以降
SeaMonkey 1.0.5 以降
ExternalInterface クラスでは、ユーザーの Web ブラウザが ActiveX® または公開された NPRuntime API をサポートする必要があります一部のブラウザではプラグイン スクリプト用に使用されます。上記にリストされていないブラウザとオペレーティング システムの組み合わせでも、NPRuntime API がサポートされている場合は、ExternalInterface クラスをサポートする必要があります。
注: SWF ファイルを HTML ページに埋め込む場合は、必ず id 属性を設定し、オブジェクトと埋め込みタグの id 属性と name 属性に次の文字が含まれていないことを確認してください:
. - * / /
注: Flash Player バージョン 9.0.115.0 以降では、id 属性と name 属性に . (ピリオド) 文字を使用できます。
このクラスを使用してプログラムでポップアップ ウィンドウを開くと、ブラウザで実行されている Flash Player 10 以降では成功しない可能性があります。ブラウザ (およびブラウザの設定) によっては、いつでもポップアップがブロックされる可能性があります。ポップアップが表示されるという保証はありません。ただし、できるだけ成功させるために、このタイプの開いているポップアップ ウィンドウは、ユーザー アクションの直接の結果として実行されるコード (たとえば、マウス クリックまたはキー押下イベントのイベント ハンドラー) でのみ使用してください。
ActionScript を使用すると、HTML ページで次のアクションを実行できます:
任意の JavaScript 関数を呼び出します。
任意の数の引数を任意の名前で渡します。
さまざまなデータ型 (ブール値、数値、文字列など) を渡します。
JavaScript 関数からの戻り値を受け取ります。
HTML ページで JavaScript を使用すると、次のことが可能になります。
ActionScript 関数を呼び出します。
標準の関数呼び出し表記を使用してパラメーターを渡します。
JavaScript 関数に値を返します。
Flash Player は現在、HTML フォームに埋め込まれた SWF ファイルをサポートしていません。
注: Adobe AIR では、HTMLLoader コントロールにロードされた HTML ページの JavaScript と、その HTML ページの SWF コンテンツに埋め込まれた ActionScript の間で通信するために、ExternalInterface クラスを使用できます。
このクラスを mxml ファイルで使用します。 js で ip と pcname を取得する関数を呼び出します:
pcName = ExternalInterface.call("getClientPcName");
ip = 外部インターフェイス.call("getClientIp");
アラートを試して、機能するかどうかを確認できます。別の問題があります。マシンをサーバーとして追加すると、サーバーで取得される IP は 127.0.0.1 になります。これに対処する方法はあると思います。