アドビ
製品

トップ

  • Adobe Creative Cloud
  • Creative Cloudグループ版
  • Creative Suite 6
  • Adobe Marketing Cloud
  • Acrobat
  • Photoshop
  • SiteCatalyst

教育向け

  • 学生・教職員個人向け
  • 小・中・高等学校機関
  • 高等教育機関

Adobe Creative Cloud

  • Adobe Creative Cloudとは?

デザインと写真処理

  • Photoshop
  • Illustrator
  • InDesign
  • Adobe Muse
  • Lightroom
  • Elementsファミリー

ビデオ

  • Adobe Premiere Pro
  • After Effects

Web開発&HTML5

  • Edgeツール&サービス [新規ウィンドウで開く]
  • Dreamweaver
  • ゲーム [新規ウィンドウで開く]
  • モバイルアプリ

Adobe Marketing Cloud

  • Adobe Marketing Cloudとは?
  • 分析
  • Webエクスペリエンスマネジメント
  • 広告管理
  • テストとターゲティング
  • ソーシャルマーケティング

Analytics

  • SiteCatalyst
  • Adobe Discover
  • Insight

Target

  • Test&Target
  • Recommendations

Social

  • Adobe Social

Experience Manager

  • CQ
  • Scene7

Media Manager

  • AdLens

ドキュメントサービス

  • Acrobat
  • FormsCentral [新規ウィンドウで開く]
  • SendNow [新規ウィンドウで開く]
  • Acrobat.com [新規ウィンドウで開く]

パブリッシング

  • Digital Publishing Suite

  • すべての製品を見る
ビジネスソリューション

Digital Media

  • Creative Cloudグループ版
  • ユーザー事例
  • Digital Media事例

ビジネスニーズ別

  • 分析
  • デジタルパブリッシング
  • ドキュメント管理
  • 広告管理
  • ソーシャルマーケティング
  • テストとターゲティング
  • ビデオ編集と公開
  • Web開発 [新規ウィンドウで開く]
  • Webエクスペリエンスマネジメント
  • すべてのビジネスニーズを見る

Digital Marketing

  • Adobe Marketing Cloud
  •  
  • Digital Marketing事例

業種別

  • 放送業界
  • 教育機関
  • 金融機関
  • 行政機関
  • 出版
  • 小売
  • 全業種を見る
サポートとラーニング

サポート

  • サポートホーム
  • サポートプログラム
  • 製品ヘルプ
  • ダウンロードとインストールヘルプ
  • Adobe Creative Cloud メンバーシップサポート
  • サポートお問い合わせ

ラーニング

  • ラーニングとチュートリアル
  • マーケター向けトレーニングサービス [新規ウィンドウで開く]
  • Creative Station(Creative Cloud情報)
  • Photoshopマガジン
  • デザインマガジン
  • Focus In(ビデオ制作者向け)
  • ADC Plus(Web情報) [新規ウィンドウで開く]
  • アトリエ(初心者向け写真編集)
  • Adobe Marketing Center
  • Adobe Marketing Cloud Japan Blog [新規ウィンドウで開く]
  • 認定制度
ダウンロード
  • 体験版
  • Adobe Flash Player
  • Adobe Reader
  • Adobe AIR
  • すべてのダウンロードを見る
会社情報
  • 採用情報
  • 投資家の皆様へ(英語)
  • プレスルーム
  • プライバシー
  • 企業の社会的責任(CSR)
  • ショーケース
  • お問い合わせ
  • その他の会社情報
ご購入
  • 個人・プロフェッショナル向け製品
  • 学生・教職員向け製品
  • 小中規模ビジネス向け製品
  • ライセンスについて
  • キャンペーン情報
  • Adobe Marketing Cloudお問合せ [新規ウィンドウで開く]
  • 販売パートナー
検索
 
情報 サインイン
サインインの目的 お客様のアカウントや体験版ダウンロード、製品の拡張機能、コミュニティエリアへのアクセスなどを管理するため
ようこそ、さん
マイアカウント
注文状況
ユーザー情報
マイアカウント
製品およびサービスの登録状況
サインアウト
カート
プライバシー マイアカウント
アドビ
製品 セクション 購入   検索  
ソリューション会社情報
サポートラーニング
サインイン サインアウト プライバシー マイアカウント
先行予約の提供開始予定日Date. 商品が発送されるまで、クレジットカードには課金されません。提供開始の予定日は変更される場合があります。 先行予約の提供開始予定日Date. ダウンロードの準備が整うまで、クレジットカードには課金されません。提供開始の予定日は変更される場合があります。
個数:
(消費税を含む )
ご購入には学生・教職員個人版の購入資格の確認が必要です。
小計 (税込)
キャンペーン ( 税込)
送料( 税込)
消費税
レジで精算
合計 ( 税込)
カートの中身を見る
Adobe Developer Connection [ADC] / Adobe AIR デベロッパーセンター /

Adobe AIR 2.6 マスターシリーズ 第4回 モバイルAPI その2

著者 高橋 俊光氏

高橋 俊光氏
  • ティルフィン合同会社

Content

  • 新機能について
  • StageWebView
  • 仮想キーボード
  • ネットワーク機能のサポート状況

作成日

24 August 2011

ページ ツール

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

この記事に設定されたタグ

Adobe AIR SDK Flash BuilderFlash Professionalmobile

必要条件

ユーザーレベル

すべて

必要な製品

  • Adobe AIR SDK
  • Flash Builder 4.7 Premium (体験版ダウンロード)
  • Flash Professional CC CS5.5 (体験版ダウンロード)

サンプルファイル

  • AIR26_004_samples

このマスターシリーズでは、Adobe AIR 2.6で導入されたデスクトップおよびモバイルプラットフォームの新機能について解説します。

前回はAdobe AIR 2.6以降で導入されたモバイルアプリケーション向けAPIとして、マイクやカメラ関連のAPIを取り上げました。本記事では、その他のモバイルアプリケーション向けAPIを解説します。

新機能について

今回は、下記のモバイルアプリケーション向けAPIについて取り上げます。

  • StageWebView
  • 仮想キーボード

また、最後にネットワーク機能のサポート状況についても触れておきます。

StageWebView

StageWebViewは、モバイルアプリケーション内でブラウジング機能を利用するために追加されたクラスです(デスクトップアプリケショーンでは、HTMLLoaderクラスを使用します)。HTMLコンテンツの表示には、モバイル端末の各システムに用意されているブラウザーを使用します。図1は、StageWebViewの使用例です(サンプル:04_Sample)。

図1 StageWebViewを使って、画面下のテキストフィールドに入力されたURLのページを表示します。また、ページコンテンツをキャプチャしてカメラロールに追加する機能も実装してあります
図1 StageWebViewを使って、画面下のテキストフィールドに入力されたURLのページを表示します。また、ページコンテンツをキャプチャしてカメラロールに追加する機能も実装してあります

StageWebViewの配置

StageWebViewは、その名の通り、親となるステージをstageプロパティにセットして表示します。オブジェクトの表示領域は、viewPortプロパティにRectangleをセットします。なお、DisplayObjectではないため、他の表示オブジェクトとのZオーダーを制御することができず、常に手前に表示されます。

var stageWebView = new StageWebView(); stageWebView.stage = stage; stageWebView.viewPort = new Rectangle(0, y, stage.stageWidth, stage.stageHeight);

一時的に非表示にしたい時は、viewPortに空のRectangleをセットします。

stageWebView.viewPort = new Rectangle();

コンテンツのロード

StageWebViewオブジェクトへコンテンツをロードするには、loadURLメソッドやloadStringメソッドを使用します。

loadURLメソッドは、URLで指定したリソースを読み込みます。「file:スキーマ」でアプリケーション内のファイルを読み込むことも可能です。

stageWebView.loadURL("http://www.adobe.com/");

loadStringメソッドは、HTML文字列とMIMEタイプを渡して、ロードすることができます。

var htmlString:String = "<!DOCTYPE HTML>" + "<html><body>" + "<p>Test.</p>" + "</body></html>"; stageWebView.loadString(htmlString, "text/html");

ブラウザーとしての機能とその操作

StageWebViewには、一般的な簡易ブラウザーを作るための機能が一通り用意されています。

StageWebViewに用意されているブラウザー機能
ブラウザーの機能 StageWebViewのプロパティやメソッド
現在のページのURL locationプロパティで取得します。
現在のページのタイトル titleプロパティで取得します。
ページを戻る historyBackメソッドで履歴上のページを戻ります。前のページが履歴にあるかどうかは、isHistoryBackEnabledプロパティで取得できます。
ページを進める historyForwardメソッドで履歴上のページを進めます。次のページが履歴にあるかどうかは、isHistoryForwardEnabledプロパティで取得できます。
ページの再読み込み reloadメソッドで現在のページを更新します。
読み込みの中止 stopメソッドでロードを中止します。

ページ遷移のイベント検出

StageWebViewでは、ページ遷移時に下記のイベントが発生します。

ページ遷移に関連したイベント
イベント 内容
LOCATION_CHANGING コンテンツ内での操作で発生したページ遷移の直前に、LocationChangeEventオブジェクトのLOCATION_CHANGINGイベントが発生します。この時点でLocationChangeEventのオブジェクトのpreventDefaultメソッドを呼ぶことで、ページ遷移をキャンセルすることができます。
LOCATION_CHANGE 外部からの操作によるページ遷移、コンテンツ内での操作によるページ遷移、どちらの場合もページ遷移後(locationプロパティの変更後)にLOCATION_CHANGEイベントが発生します。
COMPLETE ページの読み込み完了時には、EventオブジェクトのCOMPLETEイベントが発生します。
ERROR エラー発生時は、ErrorEventオブジェクトのERRORイベントが発生します。

Androidにおけるデバイス使用許可の設定

Androidの場合、リモートURLを読み込めるようにするには、アプリケーション記述子ファイルにてINTERNET権限を設定する必要があります。下記のように、android要素のmanifestAddtions要素のmanifest要素内に、user-permission要素としてandroid:name属性にandroid.permission.INTERNETを設定します。

<android> <manifestAdditions><![CDATA[ <manifest android:installLocation="auto"> (…省略…) <uses-permission android:name="android.permission.INTERNET"/> </manifest> ]]></manifestAdditions> </android>

なお、iOSではこの設定は必要ありません。

StageWebViewの使用可能の確認

StageWebViewを使用可能かどうかは、StageWebViewクラスのisSupportedプロパティの真偽値で判断します。ただし、Android、iOSともに通常のデバイスはサポートしているため、この値をあえて確認することは少ないと思います。

コンテンツのビットマップデータのキャプチャ

前述の通り、サンプル04_Sampleではコンテンツをキャプチャしてカメラロールに追加する機能も実装してあります。StageWebViewに現在表示されているコンテンツをビットマップデータにキャプチャしており、このキャプチャはステージのviewPortプロパティに指定されている領域に対して行われます。この領域が設定されていないと、ビットマップデータに何も描画されないので注意してください。

var bmpdata:BitmapData = new BitmapData(stageWebView.viewPort.width, stageWebView.viewPort.height); stageWebView.drawViewPortToBitmapData(bmpdata);

コンテンツへのアクセス

StageWebViewには、ExternalInterfaceのようなJavaScriptを利用したHTMLコンテンツとActionScriptプログラムが直接やりとりできる仕組みはありません。ただし、loadURLメソッドでは「javascript:スキーム」に対応しているため、ブラウザーのブックマークレットのような方法で擬似的にHTMLコンテンツを外部から操作することも可能です。

StageWebViewの詳細な動作と破棄

前述の通り、モバイルでは各システムのブラウザーが利用されます。そのため、メソッドやイベントの動きには最終的に各システムのブラウザーとそのバージョンが影響します。

また、メモリを効率的に利用するためには、不要な時にはStageWebViewを破棄するようにしましょう。StageWebViewの破棄を明示的に行うには、disposeメソッドを利用します。

仮想キーボード

Adobe AIR 2.6から、モバイルデバイスの仮想キーボードを制御することが可能となりました。サンプル04_Sampleでは、画面下のテキストフィールドにフォーカスを当てると仮想キーボードが表示されます。

仮想キーボードの表示/非表示の検出

テキストフィールドに対してSoftKeyboardEventオブジェクトのイベントをハンドルすることで、仮想キーボードのアクティブ化などのタイミングを検知することができます。

仮想キーボードが表示されようとしているタイミングでSOFT_KEYBOARD_ACTIVATINGイベントが発生します。このイベント発生時にSoftKeyboardEventオブジェクトのpreventDefaultメソッドを呼ぶことで、仮想キーボードの表示を抑止できます。

仮想キーボードが表示されたタイミングでSOFT_KEYBOARD_ACTIVATEイベントが発生します。このイベントは、リサイズイベントのように、仮想キーボードの領域が変化する度に発生します(例えば、変換候補の表示/非表示による領域の変化など)。

また、仮想キーボードの非表示のタイミングでSOFT_KEYBOARD_DEACTIVATEイベントが発生します。

図2 仮想キーボード領域のリサイズ
図2 仮想キーボード領域のリサイズ

フォーカスによる問題

デバイスを回転して仮想キーボードが閉じた後、再びデバイスを回転すると、仮想キーボードが閉じているにも関わらずさらにSOFT_KEYBOARD_DEACTIVATEイベントが発生することがあります。これはフォーカスがテキストフィールドに残っているためです。フォーカスを次のように明示的に外すことで回避できます。

this.stage.focus = null;

また、仮想キーボードを表示した状態でStageWebViewのコンテンツ領域をタップしても、フォーカスがテキストフィールドに残っていると仮想キーボードが閉じません。この問題も、StageWebViewのFocusEvent.FOCUS_INイベントをハンドルし、上記と同じく明示的にフォーカスを外すことで回避できます。

テキストフィールドにフォーカスがあると、「仮想キーボードを表示する」状態となるので、必要に応じてフォーカスを外しましょう

テキストフィールド以外への仮想キーボードの適用

Androidではテキストフィールド以外でも、InteractiveObjectを継承するオブジェクトのneedsSoftKeyboardプロパティをtrueにセットすることで、仮想キーボードの動作を適用することができます。このオブジェクトに対して、仮想キーボードを表示させたい時は、requestSoftKeyboardメソッドを使います。

仮想キーボードの表示による画面領域の自動調整

softkeyboardBehaviorはテキストフィールドにフォーカスが当たったとき、仮想キーボードによってそのテキストフィールドが隠れないように自動調整するかどうかを指定します。デフォルト値はpanです。画面を上へパンすることで、テキストフィールドが画面の上部に維持されます。値をnoneにしたときは、そのままでは場所によって、テキストフィールドが隠れたままになってしまいます。

panに設定していても、自動調整が上手く働かない場合があります。その場合はnoneにしておき、stageのsoftKeyboardRectプロパティで仮想キーボードの領域を取得し、この値に合わせてテキストフィールドを移動させるといったロジックで調整することができます。

<softKeyboardBehavior>none</softKeyboardBehavior>

ネットワーク機能のサポート状況

デスクトップ版のAdobe AIR 2.0で、様々なネットワーク機能の強化が行われました。モバイルでの対応はどうなっているのでしょうか。ServerSocket/SecureSocket/DatagramSocket、それぞれのクラスのisSupportedプロパティで確認してみたところ、残念ながら現状ではAndroidとiOSいずれにおいてもfalseとなり、利用できませんでした。今後のバージョンアップでサポートされることを期待したいと思います。

なお、基本的なSocketクラスを使用することはもちろん可能です。

おわりに

Adobe AIR 2.6以降に導入されたモバイル向けAPIについて紹介しました。StageWebView、仮想キーボードともにiOSやAndroidの各端末によって、細かな動作に違いがあります。これらの機能を利用する際は、各端末での動作を確かめながら行うとよいでしょう。

計4回に渡ってお送りしてきたAdobe AIR 2.6マスターシリーズも、今回で最終回です。既にAdobe AIR 2.7も登場し、iOSでの動作速度が向上するなど、進化は続いています。さらにマルチデバイスに展開するAdobe AIRで、多様なアプリケーションの開発を楽しんでください。

関連記事

  • Adobe AIR 2.6 マスターシリーズ 第1回 ネイティブ機能の拡張
  • Adobe AIR 2.6 マスターシリーズ 第2回 iOSやAndroid向けモバイルアプリ開発環境の新機能
  • Adobe AIR 2.6 マスターシリーズ 第3回 モバイルAPI
  • Adobe AIR 2.6 マスターシリーズ 第4回 モバイルAPI その2

More Like This

  • iOSでのAIRアプリケーション用の起動画像の提供
  • AndroidおよびKindle Fire用のAmazon In-App Purchase Adobe AIRネイティブ拡張機能の使用
  • Supporting the multiple screen sizes of multiple devices in Adobe AIR
  • iOS用のAIRネイティブ拡張機能を使用したデータ転送 – パート1:ActionScript 3とC、C++、またはObjective-C間での基本的な型の交換
  • Using in-app ratings with the RateBox native extension for Adobe AIR on iOS and Android
  • Creating your first Adobe AIR application on Android
  • Multiscreen development techniques with Flex and Adobe AIR
  • What's new in Adobe AIR 2.5
  • ネイティブ拡張(Native Extensions)入門 第1回 ネイティブ拡張を理解する
  • Android 向け AIR アプリケーションと画面の回転の実現 パート 2

Tutorials and samples

Tutorials

  • Using the Amazon In-App Purchase Adobe AIR native extension for Android and Kindle Fire
  • Exchanging Vector and Array objects between ActionScript 3 and C, C++, or Objective-C
  • Exchanging basic data types between ActionScript 3 and C, C++, or Objective-C
  • Using in-app ratings with the RateBox native extension for Adobe AIR on iOS and Android

Samples

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

AIR blogs

More
06/14/2013 Flash Runtimes Update
06/14/2013 BlackBerry 10.2 SDK Beta Available Now! The updates to the...
06/12/2013 LeapMotion AS3 demos round-up: Duckie Deck’s Tooth...
06/10/2013 The Coulthard Challenge Taking advantage of the newly emerging...

AIR Cookbooks

More

製品

  • Adobe Creative Cloud
  • Creative Cloudグループ版
  • Creative Suite 6
  • Adobe Marketing Cloud
  • Acrobat
  • Photoshop
  • Digital Publishing Suite
  • Elementsファミリー
  • SiteCatalyst
  • 教育向け

ダウンロード

  • 体験版
  • Adobe Reader
  • Adobe Flash Player
  • Adobe AIR

サポート

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

ラーニング

  • トレーニング
  • Adobe TV
  • Creative Station(Creative Cloud情報)
  • デザインマガジン
  • Photoshopマガジン
  • Focus In(ビデオ制作者向け)
  • ADC Plus(Web情報)
  • 初心者向け写真編集
  • Adobe Marketing Cloud Japan Blog

ご購入

  • 個人・プロフェッショナル向け製品
  • 学生・教職員向け製品
  • 小中規模ビジネス向け製品
  • ライセンスについて
  • キャンペーン情報
  • 販売パートナー

会社情報

  • プレスルーム
  • パートナープログラム
  • 企業の社会的責任(CSR)
  • 採用情報
  • 投資家の皆様へ(英語)
  • イベント
  • 法的事項
  • セキュリティ
  • お問い合わせ
地域を選択してください 日本(変更)
地域を選択してください 閉じる

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
  • Österreich - Deutsch
  • Belgium - English
  • Belgique - Français
  • België - Nederlands
  • България
  • Hrvatska
  • Česká republika
  • Danmark
  • Eastern Europe - English
  • Eesti
  • Suomi
  • France
  • Deutschland
  • Magyarország
  • Ireland
  • Israel - English
  • ישראל - עברית
  • Italia
  • Latvija
  • Lietuva
  • Luxembourg - Deutsch
  • Luxembourg - English
  • Luxembourg - Français
  • الشرق الأوسط وشمال أفريقيا - اللغة العربية
  • Middle East and North Africa - English
  • Moyen-Orient et Afrique du Nord - Français
  • Nederland
  • Norge
  • Polska
  • Portugal
  • România
  • Россия
  • Srbija
  • Slovensko
  • Slovenija
  • España
  • Sverige
  • Schweiz - Deutsch
  • Suisse - Français
  • Svizzera - Italiano
  • Türkiye
  • Україна
  • United Kingdom
  • Australia
  • 中国
  • 中國香港特別行政區
  • Hong Kong S.A.R. of China
  • India - English
  • 日本
  • 한국
  • New Zealand
  • 台灣

Southeast Asia

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

Copyright © 2013 Adobe Systems Software Ireland Ltd. All rights reserved.

利用条件 | プライバシー (更新) | Cookie