LINE クリエイターズスタンプ のチェッカー改良しました

LINE クリエイターズスタンプ のチェッカー作ってみた - Programing of the Dead

で作った簡易画像チェッカー。

要望があったので改良してみました。

基本的には体裁を整えただけ・・・ではありますが。

・背景色の変更に対応

・画像表示サイズ変更可

上記2点機能追加しています。

使い方などは上記リンク先で確認ヨロシク。

f:id:BobZombie:20140929204030j:plain

LINE クリエイターズスタンプ のチェッカー作ってみた

LINE クリエイターズスタンプ のこうかはばつぐんだ! ということのようで。

申請したけどレギュレーションで引っかかってる人たちも多いみたいなので
スタンプを作る人たちのためのチェッカー的なアプリを作った。

ブラウザで実行できる(FirefoxChromeだけ確認済みあとは知らん)ので
特別にインストールとかしなくていいし便利なんじゃないかな?


***使い方***
ここ
https://github.com/BobZombie/line-stamp-checker
のページの右側に「Download ZIP」というボタンがあると思うのでそれをクリックしてダウンロード。(gitがわかるならもちろんcloneしてもOKよ)

解凍したら、index.html というファイルがあると思うのでそいつをブラウザにドラッグ&ドロップ。
「ここにファイルをドロップしてね 」という枠が表示されていると思うので
そこへスタンプ用のpngファイルをドラッグ&ドロップするだけ。

複数ファイルをいっぺんにドロップするのにも対応しているはず。



***チェックしていること***
pngファイルかどうか?
・ファイル容量1MB以下?
・画像のタテ、ヨコの大きさがMAX370x320以下かどうか?
・画像のタテ、ヨコの大きさが偶数ドットかどうか?
・外周10ピクセル内に完全に透明じゃないドットの数
 →透明じゃないドットを見つけた場合、マゼンダ色に変換して表示
以上

これらのうち、偶数ドット、外周10ピクセルは透明、というのは必須ではないようだけど
従っておいたほうがベターなのかな? ま、そういうことで。
バグってたら教えてください。

スクリーンショットを張っておきます。こんな感じです。
f:id:BobZombie:20140910220705p:plain

Ane作成でUndefined symbolsとなり、はまった話

iOS用のAneを作成してAirアプリとしてエクスポートしようとしたら、、

Undefined symbols:

"_ExtFinalizer", referenced from:

_g_com_adobe_air_fre_fmap in extensionglue.o

"_ExtInitializer", referenced from:

_g_com_adobe_air_fre_fmap in extensionglue.o

ld: symbol(s) not found

こんな表示。platform.xmlのlinkerOptionにフレームワークを追加し忘れたときに出るエラーのようでいて違う。
フレームワークを追加忘れの時はこちら参照→itoz on scriptogr.am

結論としては、*.a の ExtInitializer、ExtFinalizer をObjective-c++でコンパイルしていた
のが原因。
ソースファイルを *.mm にしてたらそうなっちゃった、ということだったのでObjective-cコンパイルするように変更してあげる。

インスペクタから
Type Objective-c++ Source → Type Objective-c Source
と変更すると、シンボルが書き出されるようになり、Airのビルドも通った。

CとC++のシンボルの違いね。。しばらくその辺やってないから忘れてたよ。。

Adobe Air の StageView の Cookie

StageViewでCookieに書かれるデータ、例えばセッション情報とかを確認したり削除したりしたいときに、どこに保存されているのかわからんかった。

Windowsで作業しているときには Internet Explorer
Macの時はSafari

Cookieとして保存されているようなのでそれぞれのブラウザから操作できる。

AS3のドキュメントに記載されていないようなのでここに記す、と。
http://help.adobe.com/ja_JP/FlashPlatform/reference/actionscript/3/flash/media/StageWebView.html

Adobeさんはもうちょっとその辺どうにかしてくれないかのう。。。

そして、IECookieを操作するのめんどくさいというかUIがイケてないというか、なんだよなー。
MSさんももうちょっとその辺どうにかしてくれないかのう。。。

enchant.js と TexturePacker

なるべくならjavascriptには近づかないつもりだったけど世の趨勢には逆らえない、つーことでenchant.jsを今更ながら眺めています。

ゲーム作りに必要そうなものをシンプルにまとめている感じで好感が持てますね。
でも、Spriteクラスに使うpngをコンパクトにまとめられない、
32x32のSpriteで4コマのアニメの場合、確実に64x64の大きさのPngを用意しなくてはいけないのはちょっと嫌。
できれば描画しない透明部分はカットした状態でテクスチャパックしたり、32x32と24x24のSpriteをひとつのPngにまとめたりしたいところ。

なので、TexturePackerで作ったAtlasが使えるといいよね、ということで拡張Spriteクラスを作ってみた。

つまり、
f:id:BobZombie:20140613224851p:plain
この、くまちゃんを
f:id:BobZombie:20140613224831p:plain
こんな感じでパックしてあげる。そうするとPngが小さくなっていい感じじゃない?

GitHubにアップしてみました。
enchant.js-SpriteEx
よろしければお使いください。バグあったら教えてください。

air. のprefixがついちゃう問題

Air for Mobile でアプリを作ると、Androidの場合アプリIDに
air.」という文字が自動的についてしまうようだ。

アプリIDを「com.mygame」にしてビルドすると実際には「air.com.mygame」というapkができてしまう、と。
調べてみたところ、「air.」を取り除く方法が見つかったので記述しておく。
だけど、この方法、adobeのサイトからは記載が消えているようだし、実際問題何が起こるのかはよくわからんので・・・・「air.」はついてたままでもいいような気がします、ハイ。

*やりかた*
・FlashDevelopを使ってる場合に限る。FlashCSでビルドする場合のやり方はよくわからん。もってないし。

PackageApp.bat に

:android-config
set CERT_FILE=%AND_CERT_FILE%
...
...

という記述があると思う。この辺に1行足してやる。

:android-config
set CERT_FILE=%AND_CERT_FILE%
set SIGNING_OPTIONS=%AND_SIGNING_OPTIONS%
set ICONS=%AND_ICONS%
set DIST_EXT=apk
set TYPE=apk
set AIR_NOANDROIDFLAIR=true <<<<<この行を足すだけ
goto start

これで、AppIDが「air.」ナシになることは確認できた。

AIR_NOANDROIDFLAIRでググれば少しだけ情報出てくると思うけど、外人さんたちもこれで何が起きてるのかはよくわかってなさげ。

admobでinmobi

admobメディエーションでinmobiを入れてみる。
すると、CPMを取得するためにはどうやらsecretkeyなるものが必要らしい。

f:id:BobZombie:20140517163936p:plain

inmobiのサイトをうろうろしても見つからないなあ。。と思っていたら

http://forums.makingmoneywithandroid.com/advertising-networks/7851-what-inmobi-secret-key-admob-mediation-network-optimization.html

>Just send an email to InMobi helpdesk. They will give you the secret key.

ええっ!めんどくせー。。
まあ、単価を高くする前にダウンロード数が多いアプリを作らないとね。