Adobe AIR Sample by Action Script 3
-
Upload
coelacanth -
Category
Documents
-
view
488 -
download
3
Transcript of Adobe AIR Sample by Action Script 3
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も仲良くできるよ、と言いたかっただけのサンプル