21
Adobe AIR Sample ActionScript3 ActionScript3によるAIR2.0新機能サンプル (FxUG全国ツアー石川版)

Adobe AIR Sample by Action Script 3

Embed Size (px)

Citation preview

Page 1: Adobe AIR Sample by Action Script 3

Adobe AIR Sample ActionScript3

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

(FxUG全国ツアー石川版)

Page 2: Adobe AIR Sample by Action Script 3

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の記事が多くヒットして

探しにくい)

Page 3: Adobe AIR Sample by Action Script 3

Install-2

• DLしたSDKを配置する

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

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

Page 4: Adobe AIR Sample by Action Script 3

Install-3

プロジェクトの作成

Page 5: Adobe AIR Sample by Action Script 3

Install-4

確認する

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

Page 6: Adobe AIR Sample by Action Script 3

NativeProcess

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

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

Page 7: Adobe AIR Sample by Action Script 3

DEMO:こまんどぷろんぷと

Page 8: Adobe AIR Sample by Action Script 3

NativeProcess-1

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

<supportedProfiles>extendedDesktop</supportedProfiles>

Page 9: Adobe AIR Sample by Action Script 3

NativeProcess-2

NativeProcessStartupInfoクラス

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

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

NativeProcessStartupInfo.arguments // オプション

Page 10: Adobe AIR Sample by Action Script 3

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;

Page 11: Adobe AIR Sample by Action Script 3

NativeProcess-4

NativeProcessクラス

[実行するクラス]

Page 12: Adobe AIR Sample by Action Script 3

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);

Page 13: Adobe AIR Sample by Action Script 3

NativeProcess-6

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

supported in current profile.')

こんな時は・・・

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

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

{アプリ名}-app.xmlに

<supportedProfiles>extendedDesktop</supportedProfiles>

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

Page 14: Adobe AIR Sample by Action Script 3

ServerSocket-1

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

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

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

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

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

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

・DNSルックアップ

Page 15: Adobe AIR Sample by Action Script 3

ServerSocket-2

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

Page 16: Adobe AIR Sample by Action Script 3

DEMO:えあ~さ~ば~

Page 17: Adobe AIR Sample by Action Script 3

ServerSocket-3

ServerSocketクラス

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

・接続が来たらServerSocketConnectEvent

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

Page 18: Adobe AIR Sample by Action Script 3

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がコールされる

Page 19: Adobe AIR Sample by Action Script 3

ServerSocket-5

ServerSocketクラス

function connectEvent(event:ServerSocketConnectEvent):void

{

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

}

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

Page 20: Adobe AIR Sample by Action Script 3

ServerSocket-6

ServerSocketクラス

function socketData(event:ProgressEvent):void

{

var client_socket:Socket = event.target as Socket;

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

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

(以下略)

Page 21: Adobe AIR Sample by Action Script 3

おまけ(AIR×Silverlight)

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

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

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

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