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

Adobe AIR Sample by ActionScript3_hiroshima

Embed Size (px)

DESCRIPTION

FxUG@全国ツアーin広島版

Citation preview

Page 1: Adobe AIR Sample by ActionScript3_hiroshima

Adobe AIR Sample ActionScript3

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

(FxUG全国ツアー広島版)

Page 2: Adobe AIR Sample by ActionScript3_hiroshima

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/

Page 3: Adobe AIR Sample by ActionScript3_hiroshima

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 ActionScript3_hiroshima

Install-3

プロジェクトの作成

Page 5: Adobe AIR Sample by ActionScript3_hiroshima

Install-4

確認する

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

Page 6: Adobe AIR Sample by ActionScript3_hiroshima

NativeProcess

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

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

Page 7: Adobe AIR Sample by ActionScript3_hiroshima

DEMO:こまんどぷろんぷver2

Page 8: Adobe AIR Sample by ActionScript3_hiroshima

NativeProcess-1

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

<supportedProfiles>extendedDesktop</supportedProfiles>

Page 9: Adobe AIR Sample by ActionScript3_hiroshima

NativeProcess-2

NativeProcessStartupInfoクラス

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

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

NativeProcessStartupInfo.arguments // オプション

Page 10: Adobe AIR Sample by ActionScript3_hiroshima

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 ActionScript3_hiroshima

NativeProcess-4

NativeProcessクラス

[実行するクラス]

Page 12: Adobe AIR Sample by ActionScript3_hiroshima

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 ActionScript3_hiroshima

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 ActionScript3_hiroshima

NativeProcess-7

小ネタ:

sparkコンポーネントのTextAreaで文字追加時にスクロールバーを同期して移動させたい場合は

TextArea.appendText(String);

(verticalScrollPosition とか無くなったんだねぇ・・・)

Page 15: Adobe AIR Sample by ActionScript3_hiroshima

ServerSocket-1

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

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

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

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

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

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

・DNSルックアップ

Page 16: Adobe AIR Sample by ActionScript3_hiroshima

ServerSocket-2

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

Page 17: Adobe AIR Sample by ActionScript3_hiroshima

DEMO:えあ~さ~ば~

Page 18: Adobe AIR Sample by ActionScript3_hiroshima

ServerSocket-3

ServerSocketクラス

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

・接続が来たらServerSocketConnectEvent

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

Page 19: Adobe AIR Sample by ActionScript3_hiroshima

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 20: Adobe AIR Sample by ActionScript3_hiroshima

ServerSocket-5

ServerSocketクラス

function connectEvent(event:ServerSocketConnectEvent):void

{

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

}

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

Page 21: Adobe AIR Sample by ActionScript3_hiroshima

おまけ

AIRでSilverlight!!

NativeProcessでSilverlightを起動、Socketで相互通信という合わせ技

ローカル環境でAIRとSilverlightでチャットする需要は0

ただFlashとSilverlightに仲良くしてほしいだけ

Page 22: Adobe AIR Sample by ActionScript3_hiroshima

速報:Adobe HTTP Dynamic Streaming

HTTPプロトコルでストリーミング動画を再生できるApacheModule!!

今まではRTMPプロトコルのFlashMediaServerなどがFlashのストリーミング配信の

プラットフォームでした。

フリーのLAMP環境で構築可能なので今後はFlashのストリーミング配信が増えて行きそう

Page 23: Adobe AIR Sample by ActionScript3_hiroshima

速報:Adobe HTTP Dynamic Streaming

HTTPの良いところ、80番ポートは大概開いている。(RTMPは1935ポート)

キャッシュ(304)が使える

Apacheで使えるので高価なFMSやIIS+Win2008R2などの構成にしなくてよい。

LiveStreamingについては後日利用可能になる