2013年1月26日土曜日

モバイル版Adobe Scoutの導入

モバイルからプロファイルする場合、以下の方法になります
各モバイルOS毎に用意されているScoutコンパニオンアプリケーションを
インストールしてデスクトップPCでプロファイルを行う

Adobe Scout Companion app for iOS(リンク先へ)
Adobe Scout Companion app for Android(リンク先へ)
Adobe Scout Companion app for Kindle(リンク先へ)

AndroidにScout コンパニオンアプリケーションを入れる

プロファイルを行うまでの手順
・Scout を実行しているコンピュータと同じ Wi-Fi ネットワークにデバイスが接続されていることを確認してから、Scout コンパニオンアプリケーションを起動します。
・「有効」をタップします。
・Scout を実行しているコンピュータの検索が実行され、すべての Scout インスタンスのリストが表示されます。
・コンピュータの名前が表示されたら、それをクリックして接続します。
・AIR3.4以降でビルドを行ったモバイルコンテンツを起動すると、Scoutに新しいセッションが表示されます。

Adobe Scoutの概要とインストール

Adobe Scout は、デスクトップ (Flash Player) とモバイルデバイス (Adobe AIR) の両方で実行する Flash コンテンツ用の次世代プロファイラーです

Adobe Scoutの入手から実際に使用するまでの手順をまとめていきます

導入条件
・Flash PlayerまたはFlash Debug Playerの11.4以降をインストールする(リンク先へ)
・Adobe AIRの3.4以降をインストールする(リンク先へ)

導入方法
・Adobe IDを利用してログインする(リンク先へ)
Adobe Scoutを選択してダウンロードする

・ダウンロード完了後、インストールを行う

Adobe Scout ファーストステップガイドでは仕組みや使用方法が詳細に
記載されています(リンク先へ)

この作成手順は2013年1月時点のものです。今後仕様変更の可能性があります。
ソースと関連ファイルの使用結果について、一切の保証と責任は負いません。

2012年8月14日火曜日

AIR3.3とStarlingFrameworkでUIControls2

UIControlのAndroid版を作成しました。
端末は、GalaxyNexusでバージョンは4(ICS)です。

2012年8月9日木曜日

AIR3.3とStarlingFrameworkでUIControls


UIコントロールをStarlingFrameworkで作りました。
Button,Switch,RadioButton,CheckBox,TextInput
ProgressBar,Slider,Alert

2012年7月31日火曜日

AIR3.3とStarlingFrameworkでViewChanger 2


AIR3.3とStarlingFrameworkを利用したビュー切り替え機能の GalaxyNexus版です。
フレームレートは50fps以上出ています。

2012年7月27日金曜日

AIR3.3とStarlingFrameworkでViewChanger


AIR3.3とStarlingFrameworkを利用したビュー切り替え機能です。
自作したコンポーネントは
スクローラー、トグルボタンバー、埋め込みフォントです。
iPodTouch(iOS4)で試しています。フレームレートは50fps以上出ています。

2012年6月29日金曜日

FlashBuilder4.6とAnettyでiOSで動くANEサンプルアプリのまとめ

まとめました。
1.FlashBuilder4.6とAnettyでiOSで動くANEサンプルアプリを作成する(リンク先へ)
2.SWCを作成する(リンク先へ)
3.aファイルを作成する(リンク先へ)
4.ANEttyでaneファイルを作成する(リンク先へ)
5.as3でサンプルファイルを作成する(リンク先へ)

as3でサンプルファイルを作成する

ActionScript モバイルプロジェクトを選択します。
プロジェクト名は、HelloWorldMobileにします。
作成したSWCファイルを追加します。
作成したANEファイルを追加します。

package {
 import example.ane.HelloWorldExtension;

 import flash.display.Sprite;
 import flash.display.StageAlign;
 import flash.display.StageScaleMode;
 import flash.events.Event;
 import flash.events.MouseEvent;
 import flash.text.TextField;
 import flash.text.TextFormat;

 [SWF(width = '320', height = '480', backgroundColor = '#000000', frameRate = '60')]//iPhone3GS
 public class HelloWorldMobile extends Sprite
 {
  private var _text:TextField;
  private var extension:HelloWorldExtension = new HelloWorldExtension();

  public function HelloWorldMobile()
  {
   super();
   stage.align = StageAlign.TOP_LEFT;
   stage.scaleMode = StageScaleMode.NO_SCALE;
   addEventListener(Event.ADDED_TO_STAGE,addedToStageHandler);
  }

  protected function addedToStageHandler(event:Event):void
  {
   removeEventListener(Event.ADDED_TO_STAGE,addedToStageHandler);
   main();
  }

  private function main():void
  {
   //Button
   var blueBox:Sprite = box(0x0000ff,100,32);
   blueBox.addEventListener(MouseEvent.CLICK,blueBoxClickHandler);
   addChild(blueBox);
   //Text
   _text = textField();
   _text.width = stage.stageWidth;
   _text.y = blueBox.height;
   addChild(_text);
  }

  protected function blueBoxClickHandler(event:MouseEvent):void
  {
   _text.text = extension.getHelloWorld();
  }

  private function box(color:uint,_width:Number,_height:Number=0):Sprite
  {
   _height ||= _width;
   var _sprite:Sprite = new Sprite();
   _sprite.graphics.beginFill(color);
   _sprite.graphics.drawRect(0,0,_width,_height);
   _sprite.graphics.endFill();
   return _sprite;
  }

  private function textField():TextField
  {
   var textFormat:TextFormat = new TextFormat();
   textFormat.color = 0xffffff;
   textFormat.size = 24;
   textFormat.font = "DroidSans";

   var textField:TextField = new TextField();
   textField.defaultTextFormat = textFormat;

   return textField;
  }
 }
}
ビルドに成功したら、次はリリースビルドを行いipaファイルを作成します。
ipaファイルを作成する為に
電子署名ファイルの設定ネイティブエクステンションの設定を行います。

ipaファイルが正常に出力したらiOS端末で試してみましょう。

ANEttyでaneファイルを作成する

項目が必要な箇所は

ExtensionID example.ane
VersionNumber 1.0.0
SWC Path (swcをビルドしたファイルパス)
Export Path (aneを出力するファイルパス)
PlatformiPhone-ARMにチェックを入れます
iPhone-ARMの設定として
NativeLibraryPath (.aファイルを出力したファイルパス)
Initializer ExtInitializer
Finalizer ExtFinalizer

になります。

項目が必要な箇所は

ADTPath (air3.3のadtファイルパス)
CertificationFile Path (証明書ファイルを作成したパス)
Certification Password (証明書ファイルのパスワード)
証明書ファイルはCreate New Certifiacation Fileボタンまたは、
FlashBuilderでも作成する事ができます。

設定が終了したら、Start Compileボタンを押します。

.aファイルを作成する

CocoaTouchStaticLibraryを使用します。
下記ソース FlashRuntimeExtensions.hをインクルードします。
このファイルはFlashBuilder4.6includeディレクトリにあります。 
例)/Applications/Adobe Flash Builder 4.6/sdks/air3_3/include
HelloWorldANE.h
一行目の表示は#import <Foundation/Foundation.h>になります。
#import 
#import "FlashRuntimeExtensions.h"

@interface HelloWorldANE : NSObject

@end

FREObject GetHelloWorld(
                        FREContext ctx,
                        void* funcData,
                        uint32_t argc,
                        FREObject arg[]
                        );

void ContextInitializer(
                        void* extData,
                        const uint8_t* ctxType,
                        FREContext ctx,
                        uint32_t* numFunctionsToTest,
                        const FRENamedFunction** functionsToSet
                        );

void ContextFinalizer(FREContext ctx);

void ExtInitializer(
                    void** extDataToSet,
                    FREContextInitializer* ctxInitializerToSet,
                    FREContextFinalizer* ctxFinalizerToSet
                    );

void ExtFinalizer(void* extData);
HelloWorldANE.m
#import "FlashRuntimeExtensions.h"
#import "HelloWorldANE.h"

@implementation HelloWorldANE

- (id)init
{
    self = [super init];
    if (self) {
        // Initialization code here.
    }
    
    return self;
}

@end

FREObject GetHelloWorld(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]) {
    
    const char *str = "HelloWorld";
    
    FREObject retStr;
    FRENewObjectFromUTF8(strlen(str)+1, (const uint8_t *)str, &retStr);

    return retStr;
}

void ContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx,
                        uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet) {
    *numFunctionsToTest = 1;
    FRENamedFunction* func = (FRENamedFunction*)malloc(sizeof(FRENamedFunction)*1);
    func[0].name = (const uint8_t*)"GetHelloWorld";
    func[0].functionData = NULL;
    func[0].function = &GetHelloWorld;
    
    *functionsToSet = func;
}

void ContextFinalizer(FREContext ctx) {
    return;
}

void ExtInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet,
                    FREContextFinalizer* ctxFinalizerToSet) {
    *extDataToSet = NULL;
    *ctxInitializerToSet = &ContextInitializer;
    *ctxFinalizerToSet = &ContextFinalizer;
}

void ExtFinalizer(void* extData) {
    return;
}

SWCを作成する

プロジェクト名:HelloWorldExtensionで作成します。
SDKAIR 3.3を使用します。
package example.ane
{
 import flash.events.EventDispatcher;
 import flash.external.ExtensionContext;
 import flash.system.Capabilities;

 public class HelloWorldExtension extends EventDispatcher
 {
  private var context:ExtensionContext;

  public function HelloWorldExtension()
  {
   context=ExtensionContext.createExtensionContext("example.ane", "type");
  }

  public function getHelloWorld():String
  {
   try{
    return context.call("GetHelloWorld") as String;
   } catch(e:Error){
   }
   return null;
  }

  public function dispose():void
  {
   return context.dispose();
  }
 }
}

FlashBuilder4.6とAnettyでiOSで動くANEサンプルアプリを作成する

1.サンプルアプリの内容
Spriteで作成した青い矩形をタッチした時にその下にHelloWorldと表示します。
FlashBuilder上でデバッグ起動をしても、落ちてしまいますので注意して下さい。

2.環境
AIR 3.3を使用します。
実行環境 MacOSX 10.7.4
開発環境 FlashBuilder 4.6
開発環境 XCode Version 4.3.1
ANE作成支援ツール ANEtty 0.0.3
iOS Developer Programに参加している必要があります。

3.参考にさせて頂いたホームページ
Flash Builder 4.6でネイティブ拡張(Native Extensions)を使ってみよう (リンク先へ)
ANE制作ツール「ANEtty」(リンク先へ)

2012年5月23日水曜日

AIR3.2とStarlingFrameworkでシンプルなTwitterビューワー


AIR3.2とStarlingFrameworkを利用したサンプルアプリケーションです
テキスト、ラベルはDisplatListを利用しています。
アイコン、ビットマップはStarlingFrameworkを利用しています。