ページへ戻る
− Links
印刷
iOSでのANEの作成/iOS側の作成
の編集 ::
NJF Wiki
xpwiki
:
iOSでのANEの作成
/
iOS側の作成
の編集
# r244033a の編集
ページ内容:
*ANE呼び出し処理の追加 [#r244033a] いよいよANEの呼び出し部分を作成します。この部分でエラーが起こるとソースを変更するたびにいちいちANE作り替えなければならずデバッグが面倒なので、できるだけシンプルにするように心がけてください。 まず、「Air SDK」のincludeフォルダの中にあるFlashRuntimeExtensions.hをライブラリプロジェクトへとドラッグ&ドロップドロップします。 &ref(flashrantimehDD.jpg,mw:480,mh:360); そしてコピーします。 &ref(flashrantimecopy.jpg,mw:480,mh:360); 次に呼び出しのための関数などを定義するファイルを作成します。 クラスなどを定義するわけではないので、Objective-Cの空ファイルを選びます。 &ref(newFile.jpg,mw:480,mh:360); 名前はAneAlertCall.mとしました。 &ref(newEmptyFile.jpg,mw:480,mh:360); ANEの作成には実際のネイティブな処理を行う関数の他に、次の3つの関数があります。 +初期化関数 +コンテクストの初期化関数 +終了関数 このうち終了関数については、終了処理がないなら特に定義しなくてもかまいません。 この事を踏まえて、ANE呼び出し処理は以下のようになります。 #import <Foundation/Foundation.h> #import "FlashRuntimeExtensions.h" #import "anealert.h" AneAlert * aneAlert; FREObject ANEAlertShow(FREContext ctx, void* funcData, uint32_t argc, FREObject argv[]){ NSLog(@"ANEAlertShow start"); uint32_t argLength; //引数の長さ const uint8_t *argBuff; //引数の値保持用 FREGetObjectAsUTF8(argv[0], &argLength, &argBuff);//引数取得 NSString *arg1NSString = [NSString stringWithUTF8String:(char*)argBuff];//引数をNSStringへ変換 FREGetObjectAsUTF8(argv[1], &argLength, &argBuff);//引数取得 NSString *arg2NSString = [NSString stringWithUTF8String:(char*)argBuff];//引数をNSStringへ変換 if(aneAlert == nil){ NSLog(@"ANEAlertShow:init alert!"); aneAlert = [[AneAlert alloc] init]; [aneAlert alertWindowInit]; } [aneAlert alertWindowShow: arg1NSString : arg2NSString]; NSLog(@"ANEAlertShow end"); return NULL; } void ANEAlertContextInitializer(void* extData, const uint8_t* ctxType, FREContext ctx, uint32_t* numFunctionsToTest, const FRENamedFunction** functionsToSet) { NSLog(@"ANEAlertContextInitializer start"); *numFunctionsToTest = 1; FRENamedFunction* func = (FRENamedFunction*) malloc(sizeof(FRENamedFunction) * *numFunctionsToTest); func[0].name = (const uint8_t*) "alert"; func[0].functionData = NULL; func[0].function = &ANEAlertShow; *functionsToSet = func; NSLog(@"ANEAlertContextInitializer end"); } void ANEAlertInitializer(void** extDataToSet, FREContextInitializer* ctxInitializerToSet, FREContextFinalizer* ctxFinalizerToSet){ NSLog(@"ANEAlertInitializer start"); *extDataToSet = NULL; *ctxInitializerToSet = &ANEAlertContextInitializer; NSLog(@"ANEAlertInitializer end"); } ここでANEAlertInitializerが初期化処理です。この関数名はあとでANEの作成時に必要です。 ANEAlertContextInitializerは呼び出し関数を定義しています。 ここではANEAlertShow関数を「alert」という文字列で呼び出せるようにしています。 ANEAlertShowがアラート表示する関数です。ここで引数の取得方法が特殊なので注意していください。 FREGetObjectAsUTF8を使っていますが、UTF8以外にも型に合わせたいろいろな関数があります。 詳しくは公式ドキュメント「[[ネイティブ C API リファレンス ユーザー使用関数>https://help.adobe.com/ja_JP/air/extensions/WSb464b1207c184b14-62b8e11f12937b86be4-7ff9.html]]」を参照してください。 最後にAneAlertCall.mがちゃんとライブラリに含まれているか確認します。ライブラリプロジェクトのターゲット>anealert>「Build Phases」>「Compile Sources」にAneAlertCall.mがあればOKです。Xcodeのファイルの追加を使うとの通常自動で入っています。入っていなかったらここで加えてください。 &ref(aneAlertComileS.jpg,mw:480,mh:360);
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
「大阪」の読みがな?(ひらがなで)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=iOS%E3%81%A7%E3%81%AEANE%E3%81%AE%E4%BD%9C%E6%88%90%2FiOS%E5%81%B4%E3%81%AE%E4%BD%9C%E6%88%90