殿堂ランキング(日々の過去ログ)を搭載
ひさびさの更新ですんません。日々少しづつアップデートしてますー。
これで日々のランキング上位者の名前が消えずに、永久の歴史に残るようになりましたw
https://play.google.com/store/apps/details?id=air.retroweb.flappysimamura.production&0507
iPhoneアプリに「テスト」の文字があるとリジェクト
リジェクトされました。日本語でもしかり。以下Appleからの全文
――――――――――――――――――――――――――――――
Resolution Center
Binary Rejected
Reasons
2.9: Apps that are “beta”, “demo”, “trial”, or “test” versions will be rejected
2.9
We found that your app appears to be a pre-release, test, or trial version with a very limited feature set. Apps that are in beta form, or that are for demonstration or trial purposes only, are not appropriate for the App Store and are not in compliance with the App Store Review Guidelines.
It would be appropriate to complete, remove, or fully configure any partially implemented features and/or to remove any references to "demo", "trial", "beta", or "test" in your application description and release notes, and from within the app.
If you are interested in conducting a beta trial for your app, Ad Hoc distribution is available to broaden your test user base. Information on Ad Hoc distribution is available in the iOS Developer Program User Guide.
AIRカジュアルゲームアプリで、イベント機能を実現
新着情報から、特定ユーザーに対して報酬があげられるようになりました。イコール、イベントが打てるようになりました。今月のランキング上位者に魔法石とか。
アイテムのバリエーション追加
アイテムの違いがテクスチャ(模様)の変化しかなかったので、形の違う帽子を追加し始めました。アイテム作るの結構たのしいかも。
AIRアプリの起動を200%高速にする方法
先に結果の秒数はこんな感じです。
①GalaxyS3の場合…7秒3 → 3秒8=192%高速化(ちなみに空アプリは3秒7) ②IS03の場合…17秒3 → 8秒1=214%高速化(ちなみに空アプリは5秒7)
そしてそのアプリのAndroid版。(いつものしまむらくん。数日中に起動高速化版(Ver1.4.3)が、反映されるはず。。)
https://play.google.com/store/apps/details?id=air.retroweb.flappysimamura.production
iOS版も審査通る気がするけど、確認中(なのでまだ未反映)
https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=825465264
で、やったことは単純で、.swcでnewしてたAsset一式を、.swfにしてAIR for Android設定の含めるファイル内にいれて、バイナリロードからのnewにしただけ。引数のurlは、.swfのファイル名だけで読めるので楽ちん。これでアプリ起動が遅いAIRアプリが、200%高速に。
function LoadByte(url:String, callBack:Function):void { var urlLoader:URLLoader = new URLLoader(); var req:URLRequest = new URLRequest(url); urlLoader.dataFormat = URLLoaderDataFormat.BINARY; urlLoader.addEventListener(Event.COMPLETE, onCompleteUrlLoader); urlLoader.load(req); urlLoader.addEventListener(IOErrorEvent.IO_ERROR, function(e):void{ trace("265_IOエラーです。"+url); trace("e.text = " + e.text); }); function onCompleteUrlLoader():void { var ba:ByteArray = urlLoader.data; var lc:LoaderContext = new LoaderContext(); //if(Com.IsAir()) lc.allowLoadBytesCodeExecution = true; var loader:Loader = new Loader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteLoader); loader.loadBytes(ba, lc); function onCompleteLoader():void { var apd:ApplicationDomain = loader.contentLoaderInfo.applicationDomain; callBack(apd); } } }
ロードしたswfから、リンケージしたクラスを抽出するときは、下記メソッド。
function getClass(d:ApplicationDomain, s:String):Class{ return d.getDefinition(s) as Class; }
ane競合時の謎エラー対策
自作aneを作って、AdobeのGameCenterのaneと合わせて使ったら、下記エラー;
ArgumentError: Error #3500: The extension context does not have a method with the name getAuthenticated. at flash.external::ExtensionContext/_call() at flash.external::ExtensionContext/call() at com.adobe.ane.gameCenter::GameCenterController/get authenticated() at Test3$/initGameCenter()[C:\Users\hisashi_vc\Adobe Flash Builder 4.7\Test3\src\Test3.as:41] at Test3()[C:\Users\hisashi_vc\Adobe Flash Builder 4.7\Test3\src\Test3.as:24] [SWF] com.starbrain.devpush.HelloWorld3 - 2,995 バイト (圧縮後) [SWF] Test3.swf - 2,321 バイト (圧縮後)
原因に心当たりなく謎。ネットではリリースビルドにすればError #3500消えるという情報を見かけましたが、どうもいろいろやってもダメぽ。最終的にextention.xml内の下記記述回りを一通りユニークな名前にしたら、なおりました。
<initializer>ExtInitializer</initializer> <finalizer>ExtFinalizer</finalizer>
↓
<initializer>ExtInitializerHisa</initializer> <finalizer>ExtFinalizerHisa</finalizer>
ネイティブ側言語の記述も合わせて修正して、メソッド名や参照名全部ユニークにして、aneを再生成したらなおりました。
ゲーム中にセリフを表示
これでその気になれば、カジュアルゲームでもストーリーつくれるようになりましたw