adobe air sample by actionscript3_hiroshima
DESCRIPTION
FxUG@全国ツアーin広島版TRANSCRIPT
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/
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:こまんどぷろんぷver2
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>
が抜けてないでしょうか?
NativeProcess-7
小ネタ:
sparkコンポーネントのTextAreaで文字追加時にスクロールバーを同期して移動させたい場合は
TextArea.appendText(String);
(verticalScrollPosition とか無くなったんだねぇ・・・)
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);
}
クライアントからのデータ送信を受け取るイベントをリッスンする
おまけ
AIRでSilverlight!!
NativeProcessでSilverlightを起動、Socketで相互通信という合わせ技
ローカル環境でAIRとSilverlightでチャットする需要は0
ただFlashとSilverlightに仲良くしてほしいだけ
速報:Adobe HTTP Dynamic Streaming
HTTPプロトコルでストリーミング動画を再生できるApacheModule!!
今まではRTMPプロトコルのFlashMediaServerなどがFlashのストリーミング配信の
プラットフォームでした。
フリーのLAMP環境で構築可能なので今後はFlashのストリーミング配信が増えて行きそう
速報:Adobe HTTP Dynamic Streaming
HTTPの良いところ、80番ポートは大概開いている。(RTMPは1935ポート)
キャッシュ(304)が使える
Apacheで使えるので高価なFMSやIIS+Win2008R2などの構成にしなくてよい。
LiveStreamingについては後日利用可能になる