ズッコケGuysのタイトル画面から、「AND MORE APP」というボタンを押すと、App Storeが起動します。そして、Dr. Mandalaというアプリケーションを紹介するようになっています。いわゆるセルフ広告です。
この導線は、紹介するアプリがひとつしかない場合は簡潔で良いのですが、紹介したいアプリが増えてくると問題が生じます。
ネコグラス時計がもう直ぐリリースされるはずなので、ズッコケGuys上でのセルフ広告システムをバージョンアップしました。
セルフ広告は、頻繁に変更できるように、広告データ本体は外部サーバに持たせて、3Gもしくは Wifi 回線から取得します。
まわりくどくなってしまいましたが(笑)、ようするにAIRのStageWebViewクラスを使って、HTMLでセルフ広告を表示する方法にしました。
アプリアイコン(リンク)をタップすると、App Storeが起動して、そのアプリのページまで移動するので、機能的にも問題ありません。
以下が全コードです。
var webView:StageWebView = new StageWebView();
var rect:Rectangle = new Rectangle(0,0,STAGE_WIDTH,STAGE_HEIGHT-30);
webView.viewPort = rect;
webView.stage = stage;
webView.addEventListener(ErrorEvent.ERROR, onWebViewError );
webView.addEventListener(LocationChangeEvent.LOCATION_CHANGING, onWebViewLocChanging );
webView.addEventListener(LocationChangeEvent.LOCATION_CHANGE, onWebViewLocChange );
// ロケールによって読み込むURLを変える
var adUrl:String = Locale.loadString("IDS_AD_URL");
try {
webView.loadURL(adUrl);
} catch (e:Error) {
trace(e);
}
function onWebViewLocChange( event:LocationChangeEvent ):void {
trace("Change to "+ event.location);
if (event.location != adUrl) {
navigateToURL( new URLRequest( event.location ) );
try {
webView.loadURL(adUrl);
} catch (e:Error) {
trace(e);
}
}
}
function onWebViewLocChanging( event:LocationChangeEvent ):void {
trace( "Changing " + event.location);
event.preventDefault();
navigateToURL( new URLRequest( event.location ));
}
function onWebViewError( error:ErrorEvent ):void {
trace( error );
}
気を付けなければならないのは、StageWebView は Spriteクラスなどの表示オブジェクトとは違い、コンテナ先は stage しか選べないということです。
表示プライオリティは、全表示オブジェクトよりも上になってしまうようです。
かなりゴリ押しな実装のようですね(笑)
0 件のコメント:
コメントを投稿