Ad
8: 2018-01-08 (月) 22:38:58 njf ソース バックアップ No.8 を復元して編集 9: 2018-01-10 (水) 17:04:56 njf ソース バックアップ No.9 を復元して編集
Line 254: Line 254:
このうち終了関数については、終了処理がないなら特に定義しなくてもかまいません。 このうち終了関数については、終了処理がないなら特に定義しなくてもかまいません。
 +この事を踏まえて、ANE呼び出し処理は以下のようになります。
-&font(Red){作成中};+&nbsp;#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); 
 + 
 +*ライブラリファイル(.aファイル)の取り出し [#q2a8ceec] 
 + 
 +ここで作成したライブラリを取り出します。 
 +まず実機をUSBで接続し、左上のテスト用の端末をその実機とします。 
 + 
 +&ref(targetIpod.jpg,mw:480,mh:360); 
 + 
 +こうしないとシミュレーター用のバイナリが書き出されることがあるようです。 
 + 
 +次にメニューのProductからBuildを選びます。 
 +これでライブラリが作成されます。 
 +少し余分に時間がかかりますが、場合によっては古いファイルが残らないように、念のためCleanしてからBuildした方が良いかも知れません。 
 + 
 +&ref(buildClean.jpg,mw:480,mh:360); 
 + 
 +Buildの時に以下のような警告がでますが気にしないでください。 
 + 
 +&ref(FlashRuntimeExtensionCaution.jpg,mw:480,mh:360); 
 + 
 +これはコメントの書き方のルールについてで、しかも場所はヘッダーファイルです。実際のライブラリにこの部分は含まれず問題ありません。 
 + 
 +Buildが正常に終われば、左側のProductのところにあるライブラリを右クリックまたはCtrl+クリックします。 
 +メニューが現れるので「Show in Finder」を選択すればファインダーでライブラリが参照できます。 
 + 
 +もしライブラリがないと赤字で表示されるので、エラーを修正してください。 
 + 
 +&ref(libane.jpg,mw:480,mh:360); 
 + 
 +以上でライブラリの作成は終わりです。


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom Powered by xpWiki
Counter: 2533, today: 1, yesterday: 3
MenuBar
広告

ログイン

ユーザー名:


パスワード:





パスワード紛失

Portuguese | English | German | Greek | Japanese | Korean | Russian | T-Chinese top
NJF