Adobe AIR Sample by Action Script 3

Preview:

Citation preview

Adobe AIR Sample ActionScript3

ActionScript3によるAIR2.0新機能サンプル

(FxUG全国ツアー石川版)

Install • Adobe AIR(実行するのに必要) http://get.adobe.com/jp/air/

• Adobe AIR SDK(開発するのに必要)

http://www.adobe.com/cfusion/entitlement/index.cfm?e=airsdk&loc=ja

• Adobe AIR日本語ページ

http://www.adobe.com/jp/products/air/

(現時点では検索はbeta2の記事が多くヒットして

探しにくい)

Install-2

• DLしたSDKを配置する

C:¥Program Files (x86)¥Adobe¥Adobe Flash Builder 4¥sdks

air2というディレクトリ(任意)を4.0.0ディレクトリからコピーして、ダウンロードしたSDK(AdobeAIRSDK.zip)を解凍したものを配置します

Install-3

プロジェクトの作成

Install-4

確認する

{プロジェクト名}-app.xmlファイル

NativeProcess

文字通りネイティブなアプリケーションを実行できる機能。

Windowsの.exeなどを実行することが可能になる。

DEMO:こまんどぷろんぷと

NativeProcess-1

{アプリケーション名}-app.xmlに追記

<supportedProfiles>extendedDesktop</supportedProfiles>

NativeProcess-2

NativeProcessStartupInfoクラス

[実行するプロセス情報]

NativeProcessStartupInfo.executable // 実行可能なファイルを指定

NativeProcessStartupInfo.arguments // オプション

NativeProcess-3

var info:NativeProcessStartupInfo = new NativeProcessStartupInfo();

var file:File = new File("C:/Windows/System32/NETSTAT.EXE");

var args:Vector.<String> = new Vector.<String>();

args.push("-an");

info.arguments = args;

info.executable = file;

NativeProcess-4

NativeProcessクラス

[実行するクラス]

NativeProcess-5

this._process = new NativeProcess();

this._process.addEventListener

(NativeProcessExitEvent.EXIT, _onComplete); // 呼び出し完了

this._process.addEventListener

(ProgressEvent.STANDARD_OUTPUT_DATA, _onOutputData); // データ受信

this._process.addEventListener

(ProgressEvent.STANDARD_ERROR_DATA, _onErrorData); // エラー

this._process.start(info);

NativeProcess-6

メインスレッド (中断 : Error: Error #3219: The NativeProcess could not be started. 'Not

supported in current profile.')

こんな時は・・・

(原因)NativeProcessとして実行できる状態ではない。

権限がない、設定で許可されていない。

{アプリ名}-app.xmlに

<supportedProfiles>extendedDesktop</supportedProfiles>

が抜けてないでしょうか?

ServerSocket-1

AIR2.0でネットワーク周辺の機能も色々強化されました。

・セキュアソケット(SSLとか?)

・データグラムソケット(UDP)

・ソケットサーバー(TCPソケットを待ち受けられる)

・ネットワークインターフェースエニュメレーションサポート

(自分のネットワーク情報が取得できる)

・DNSルックアップ

ServerSocket-2

今回はこの中からServerSocketを利用するサンプルを紹介したいと思います。

DEMO:えあ~さ~ば~

ServerSocket-3

ServerSocketクラス

・指定ポートからTPCによる接続を待ち受けるクラス

・接続が来たらServerSocketConnectEvent

・ServerSocketConnectEvent内でクライアントの接続クラスSocketを取得

ServerSocket-4

ServerSocketクラス

var server_socket:ServerSocket = new ServerSocket();

server_socket.bind(1988, "127.0.0.1");

server_socket.listen();

server_socket.addEventListener

(ServerSocketConnectEvent.CONNECT, connectEvent);

接続が来たらconnectEventがコールされる

ServerSocket-5

ServerSocketクラス

function connectEvent(event:ServerSocketConnectEvent):void

{

event.socket.addEventListener(ProgressEvent.SOCKET_DATA, socketData);

}

クライアントからのデータ送信を受け取るイベントをリッスンする

ServerSocket-6

ServerSocketクラス

function socketData(event:ProgressEvent):void

{

var client_socket:Socket = event.target as Socket;

// ソケットからのメッセージを取り出す

trce(client_socket.readUTFBytes(this._client_socket.bytesAvailable));

(以下略)

おまけ(AIR×Silverlight)

AIRからOutOfBrowserでインストールされたSilverlightを起動して

相互通信(チャットっぽいこと)を行う。

同一PCどうしでチャットする利便性は何もない・・・

FlashとSilverlightも仲良くできるよ、と言いたかっただけのサンプル

Recommended