Adobe
製品
Creative Suiteファミリー
Photoshopファミリー
Acrobatファミリー
Flash Platform
Digital Marketing Suite
Digital Enterprise Platform
Digital Publishing Suite
その他の製品一覧
ソリューション
コンテンツオーサリング
教育
金融機関
デジタルマーケティングソリューション
その他のソリューション
ラーニング サポート ダウンロード 会社情報
ご購入
アドビストア安心のサポート& サービス
アカデミック版のご購入学生、教職員、個人
ライセンスのご購入企業、教育機関、官公庁
販売パートナー
検索
 
情報 サインイン
ようこそ、 カート 注文状況 ユーザー登録
マイアカウント
サインアウト
サインインの目的 お客様のアカウントや体験版ダウンロード、製品の拡張機能、コミュニティエリアへのアクセスなどを管理するため
Adobe
製品 セクション   検索  
ソリューション 会社情報
サポート ラーニング
サインイン ようこそ、 注文状況 ユーザー登録
Qty:
Subtotal
Checkout
Adobe Developer Connection / Adobe AIRデベロッパーセンター /

ネットワークAPIを活用するアプリケーションairPort の紹介

著者 Webシステム開発株式会社 宮田亮氏

宮田 亮(みやた りょう)氏
  • http://www.websysd.com/

作成日

7 December 2009

ページ ツール

Facebookでシェア
Twitterでツイート
LinkedInでシェア
ブックマーク
印刷

Tags

必要条件

この記事に必要な予備知識

FlexベースのAIRプログラミングの知識が必要です。ただし、FlashおよびAjaxベースのAIR開発者も十分理解できる内容です。

ユーザーレベル

初級

その他の要件

Adobe AIR2 SDK
Adobe Flash Builder4

重要: このサンプルアプリケーションは、AIR 2 betaの機能を体験するために作成されています。お試しになる場合は、AIR 2 beta ランタイムを先にインストールする必要があります。なお、既にAIR 1.xのランタイムがOSにインストールされている場合は、上書きされてしまいますのでご注意ください。元に戻す場合は、AIR 2 beta ランタイムをアンインストールし、AIR 1.5.2 ランタイムをインストールします。詳細はリリースノート(英語) をご覧ください。

アプリケーションのダウンロード(.air) beta 2対応

ソースコードのダウンロード beta 2対応

はじめに

AIR 2.0で追加されるAPIにより、これまでよりも一層拡張性があるアプリケーションの作成ができます。

その能力を活用してAIRアプリケーションどうしでデータの送受信やチャットを可能にするコミュニケーションアプリがairPortです。

今回は、このairPortをサンプルとして新しいAIR APIの使用方法をご紹介します。
対象とする読者は次のような方です。

  • AIRプログラマー、プロジェクトマネージャの方
  • Flexプログラマー、プロジェクトマネージャのの方
  • Visual Basic、Visual C#、Visual C++、Delphiなどのデスクトップアプリケーション開発者で、新しいAIRアプリケーション開発に関心がある方
  • FlashやDreamweaverでサイト構築をしている方で新しいAIRアプリケーション開発に関心がある方

学習できること

AIR2.0で拡張された次のAPI の使用手順と方法

  • flash.net.NetworkInfo
  • flash.net.DatagramSocket
  • flash.filesystem.File.openWithDefaultApplication()

1.コミュニケーションアプリairPort の機能紹介

今回作成した、AIRの新しいAPIを活用するコミュニケーションアプリ「airPort」の概要ご紹介します。

Ⅰ.基本機能

airPortユーザどうしでファイルの送受信やリアルタイムのチャットなどを行う機能を提供します。

  1. 自分のプロフィールです。画像や名前を登録可能です。
  2. 同じネットワーク上にいるほかのユーザのリストです。
  3. 送信する文章を編集するボックスです。
  4. 受信した文章を表示するボックスです。
  5. トピックごとにコミュニケーションを行えます。
  6. 受信したファイルがリスト表示されます。選択して開いたり、名前を付けて保存できます。

Ⅱ. 今回作成に使用したアプリケーションは次のとおりです。

Adobe AIR SDK2.0 Beta1
Adobe Flash Builder 4 Beta2
Adobe Illustrator CS4
Adobe Flash Catalyst Beta2

2.新しいAIR APIの使用方法

airPortのコアはネットワークAPIによるデータ転送で提供されます。その基本機能を実現するAPIをサンプルを交えてご紹介します。

Ⅰ.ネットワーク情報の取得

flash.net.NetworkInfoクラスとflash.net.NetworkInterface クラスにより、ネットワークインタフェースの情報を取得できます。

OS上のネットワークインタフェースについて以下の情報を取得できます。

  • インタフェースがアクティブかどうか
  • アサインされているアドレスのリスト
  • ネットワークインタフェースの表示名
  • MACアドレス
  • MTUサイズ
  • ネットワークインタフェースの名称
  • サブインタフェースの親インタフェースであるか
  • サブインタフェースのリスト(親である場合)

次の手順により、ネットワーク情報を取得できます。

  1. NetworkInfoオブジェクトでネットワークインタフェースのリストを取得
  2. NetworkInterfaceオブジェクトで各インタフェースの情報を取得

flash.net.NetworkInfo クラス

システムのネットワークインタフェース情報を取得するためのメソッドを提供します。
findInterfaces()メソッドは NetworkInterfaceオブジェクトが格納されたベクターオブジェクトを返します。ベクターに格納された各NetworkInterfaceオブジェクトが1つのネットワークインタフェース情報を提供します。

flash.net.NetworkInterface クラス

ネットワークインタフェース個別の情報を格納するオブジェクトとして次のプロパティを提供します。

情報 プロパティ名 例
アクティブ active true
アドレスのリスト addresses  
表示名 sidplayName  
MACアドレス hardwareAddress 00-22-15-68-BC-61
MTUサイズ mtu 1500
インタフェース名称 name {A7BDF3D2-6A85-11DB-B5AE-806E6F6E6963}
デフォルト networkInterfaceDefault false

flash.net.interfaceAddressクラス

NetworkInterface.addressesプロパティで参照できるflash.net.interfaceAddressオブジェクトでインタフェースが持つアドレスを調べることができます。オブジェクトはVectorに格納されます。

次のコードを実行すると、実行環境のネットワークインタフェース情報がすべて出力されます。

networkInfo = NetworkInfo.networkInfo; trace( "The network interfaces Information:" ); var interfaces:Vector.<NetworkInterface> = networkInfo.findInterfaces(); for each(var networkInterface:NetworkInterface in interfaces) { trace( "Active:" + networkInterface.active ); trace( "Display Name:" + networkInterface.displayName ); trace( "Hardware Address:" + networkInterface.hardwareAddress ); trace( "MTU:" + networkInterface.mtu ); trace( "Name:" + networkInterface.name ); var addresses:Vector.<InterfaceAddress> = networkInterface.addresses; for each(var interfaceAddress:InterfaceAddress in addresses) { trace( " Address:" + interfaceAddress.address ); trace( " Broadcast:" + interfaceAddress.broadcast ); trace( " Prefix Length:" + interfaceAddress.prefixLength ); } }

Ⅱ.ソケットによるデータ送受信

flash.net.Socket やflash.net.DatagramSocket クラスにより、TCP/IPによるデータ送受信がおこなえます。airPortでは、効率の良いテキストデータ転送のためにDatagramSocketを使用しています。ここではDatagramSocketの使用方法についてご紹介します。

次の手順により、DatagramSocketによるデータ送受信を行うことができます。

  1. DatagramSocketオブジェクトでネットワークアドレスとポートにバインドする
  2. DatagramSocketオブジェクトにリスナーを設定する
  3. データを送信する
  4. 受信があると、設定したリスナーが起動されてデータが取得できる

flash.net.DatagramSocket クラス

Universal Datagram Protocol (UDP) によるパケットの送受信を可能にします。UDPはTCPに比べて信頼性は保証されませんが、スピードが要求されるデータ転送に使用されます。たとえばDomain Name Systemサーバへの参照にはUDPが使用されます。

次のサンプルコードでは、init()ファンクションでソケットのバインドを行い、受信用リスナーの登録も行います。writeStr()ファンクションでデータを送信できます。

private var socket:DatagramSocket; public function init( port:int, address:String ):void { socket.addEventListener(DatagramSocketDataEvent.DATA, socketDataHandler); try { socket.bind( port, address ); socket.receive(); } catch ( event:ArgumentError ) { trace("ArgumentError: " + event); } catch ( event:SecurityError ) { trace("SecurityError: " + event); } catch ( event:IOError ) { trace("IOError: " + event); } catch ( event:RangeError ) { trace("RangeError: " + event); } } public function socketDataHandler(event:DatagramSocketDataEvent):void { var data:String = event.data.readUTFBytes(event.data.bytesAvailable); trace( data ); } private function writeStr( port:int, address:String ):void { var str:String = "Hello AIR2.0¥n"; try { var ba:ByteArray = new ByteArray(); ba.writeMultiByte( str, "UTF-8"); socket.send( ba, 0, 0, address, port ); } catch(event:IOError) { trace("IOError:" + event); } }

Ⅲ.flash.filesystem.File.openWithDefaultApplication() によるファイルのオープン

OSで関連付けられているファイルタイプに従い、デフォルトのアプリケーションを起動してファイルを開くことができます。たとえば、「.txt」という拡張子がメモ帳と関連付けされている場合、ファイルへの参照を持つFileオブジェクトでメソッドを実行すると、メモ帳を起動してそのファイルを開くことができます。

airPortアプリケーションの画面イメージに ⑥ 受信したファイルのリスト表示 がありますが、ユーザはこのリストからファイルを選択して、ボタンを押すことにより、デフォルトのアプリケーションでそのファイルを開くことができます。

次の手順により、デフォルトアプリケーションでファイルをオープンできます。

  1. 対象のファイルを参照するFileオブジェクトを生成します
  2. FileオブジェクトでopenWithDefaultApplication()を呼び出します

flash.net.File クラス

AIR1.0より提供されるFileクラスは、ローカルファイルに関するあらゆる処理を可能にしますが、今回追加されたopenWithDefaultApplication() メソッドにより、アプリケーションから直接ファイルを開くことが可能になりました。

次のサンプルコードでは、C: ドライブにある myText.txtファイルをデフォルトのアプリケーションで開きます。Windowsのデフォルトでは、メモ帳が開きます。ファイルが存在しない場合や.txt に関連付けがされていない場合などでアプリケーションを開けない場合、IOErrorが発生します。

try { var f:File = new File( "C:¥¥myText.txt" ); f.openWithDefaultApplication(); } catch( error:IOError ) { trace(" IOError:" + error.message ); } catch( error:IllegalOperationError ) { trace(" IllegalOperationError:" + error.message ); } catch( error:ReferenceError ) { trace(" ReferenceError:" + error.message ); } catch (error:Error) { trace(" Error:", error.message); }

▼最後に

今回はAIR 2.0 で追加された新APIの一部をご紹介しましたが、これら以外にもアプリケーションの可能性を格段に広げるAPIが提供されています。ネットワークインフラの定着により、クラウドのような形態が示唆されていますが、どのような状況になっても主役は利用者であるクライアントです。OSやブラウザの制限を受けることがないAIRはWeb環境のデスクトップアプリケーションインフラとして最適な選択肢であることは間違いありません。その可能性を示す例としてairPortを作成しました。airPortはAIR APIの可能性を示すアプリケーションとして、LCDS3への対応など、今後も機能拡張を続けてゆきます。

Tutorials and samples

Tutorials

  • Introducing Adobe AIR Launchpad
  • Licensing Adobe AIR applications on Android
  • Developing native extensions for Adobe AIR
  • Uploading images from CameraRoll and CameraUI

Samples

  • Licensing Adobe AIR applications on Android
  • Using web fonts with Adobe AIR 2.5
  • Using Badger for Adobe AIR applications

AIR blogs

More
02/02/2012 AIRKinect Extension is a Native Extension for use with Adobe AIR...
02/01/2012 Microsoft Kinect and Adobe AIR
02/01/2012 New Adobe Flash Player 11.2 beta for Desktops and Adobe AIR 3.2 beta
01/30/2012 Using charts inside Mobile Applications with Adobe AIR

AIR Cookbooks

More
01/20/2012 Skinnable Transform Tool
01/18/2012 Recording webcam video & audio in a flv file on local drive
12/12/2011 Date calculations using 'out-of-the-box' functions
11/29/2011 Button compatibility with NativeComboBox

製品

  • Creative Suiteファミリー
  • Photoshopファミリー
  • Acrobatファミリー
  • Flashプラットフォーム
  • Digital Marketing Suite
  • Digital Enterprise Suite
  • Digital Publishing Suite
  • モバイルアプリ

ソリューション

  • カスタマーエクスペリエンスマネジメント
  • コンテンツオーサリング
  • デジタルマーケティング

業種別ソリューション

  • 教育
  • 金融機関

サポート

  • ヘルプ&サポート
  • 注文と返品
  • ダウンロードに関するヘルプ
  • ユーザー登録に関するヘルプ

ラーニング

  • ADC: Adobe Developer Center
  • Adobe TV
  • Design Magazine
  • Photoshop Magazine
  • Focus In

ご購入方法

  • アドビストア
  • アカデミック版のご購入
  • ライセンスのご購入

ダウンロード

  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR
  • Adobe Shockwave Player

会社情報

  • プレスルーム
  • パートナープログラム
  • 企業の社会的責任(英語)
  • 採用情報
  • 投資家の皆様へ(英語)
  • イベント&セミナー
  • Legal(英語)
  • お問い合わせ
国・地域および言語の選択 日本(変更)
国・地域および言語の選択 閉じる

North America

Europe, Middle East and Africa

Asia Pacific

  • Canada - English
  • Canada - Français
  • Latinoamérica
  • México
  • United States

South America

  • Brasil
  • Africa - English
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • España
  • France
  • Deutschland
  • Hrvatska
  • Ireland
  • Israel - English
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • Magyarország
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Österreich - Deutsch
  • Polska
  • Portugal
  • România
  • Россия
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Slovenija
  • Slovensko
  • Srbija
  • Suomi
  • Sverige
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • Pacific - English
  • 台灣

Southeast Asia

  • Includes Indonesia, Malaysia, Philippines, Singapore, Thailand, and Vietnam - English

Copyright © 2012 Adobe Systems Incorporated. All rights reserved.

当Webサイトをご利用のお客様は、利用条件およびプライバシーポリシー(2011年9月30日更新)にご同意いただいたものとみなされます。

Reviewed by TRUSTe: site privacy statement