devlog [naru design]

プログラミングやテクニカルな内容の覚え書き。

Starlingで使用出来るオリジナルのビットマップフォント(数字0~9, 等幅)を作成します。
スコアなどの表示には、等幅フォントのほうが桁が固定されてて良いですよね。

フォントの作成には、

ShoeBox

http://renderhjs.net/shoebox/

に含まれている、Bitmap Fontツールを使用します。

このアプリには、ビットマップフォントだけでなくテクスチャアトラスやマスク画像、タイルマップなどの作成ツールも含まれています。AIRアプリなので、WindowsでもMacでも動作します。

続きを読む

前から気になっていたFlash用のフレームワーク「Starling」を触り始めました。

Starling Framework

http://gamua.com/starling/

次のiPhoneアプリ制作に向け、Starlingを使うとどんなことが出来そうか徐々に探って行きたいと思います。

少し前から触り始めたFlash Builder 4.6とともに使っています。
Flash Professional CS6でコーディングするよりも、プロジェクト全体が見渡しやすくて快適になりました。

サンプルプログラム

画面上に四角形を描いて、回転させる。

続きを読む

現象:

Flash Builder4.6(Win)でStarlingフレームワークを使ってモバイル向けのプログラミングを始めた。Starlingの動作を確認するために簡単なコードを書いて実行したが、画面に何も表示されなかった。

Flash Builder4.6(Mac)では、実行時にStarlingのコンストラクタでStage3D関係のエラーが発生して止まってしまった。

原因:

Flash Builder4.6にデフォルトでインストールされているAIR 3.1 SDKでは、Stage3Dがサポートされていないらしい。

対策:

Adobeのサイトから、最新のFlex 4.6 SDKとAIR 3.4 SDKをダウンロードしインストールする。

Download Adobe Flex SDK
http://www.adobe.com/devnet/flex/flex-sdk-download.html

Download Adobe AIR SDK
http://www.adobe.com/devnet/air/air-sdk-download.html

SDKがインストールされているフォルダ

C:/Program Files (x86)/Adobe/Adobe Flash Builder 4.6/skds

の下に新たにフォルダを作成し、まずはFlex SDKをコピーする。その後、AIR SDKを上書きコピー。

Flash BuilderのSDKの設定で、新たに用意したSDKを追加する。

必要に応じて、デバッグバージョンのFlash Playerもインストールする。

Adobe Flash Player Support Center
http://www.adobe.com/support/flashplayer/downloads.html

現象:

FlashBuilder4.6(Mac)でデバッグを開始すると、ステータスバーの表示が「・・・57%」で止まったまま。
デバッグが開始される様子がない。

原因:

ChromeにインストールされていたFlashPlayerがデバッガ対応版でなかったため。

対策:

Adobe Flash Player Support Centerからデバッグ対応版をダウンロードしてインストール

http://www.adobe.com/support/flashplayer/downloads.html

Chromeには
・元々インストールされていたFlashPlayer
・新しくインストールしたデバッグ対応版FlashPlayer
の2つがインストールされてしまったようだ。

Chromeの設定画面

設定 – 詳細設定を表示 – (プライバシー)コンテンツの設定 – (プラグイン)プラグインを個別に無効にする

で表示される画面を見ると、確かにFlash(2 files)と表示されている。
詳細を押して、デバッグ対応版ではないほうのプラグインを無効にした。

FlashBuilderのデバッグが正常に動作していることを確認した。

本サイトでは、swfを貼り付けるためにWP-SWFObjectプラグイン(ver2.4)を使用しています。非常に便利なプラグインなのですが、swfを貼り付ける際にwmodeにdirectを指定することができないことに気が付きました。

directを指定できないと、Starlingフレームワークを使用したswfが貼り付けられません。
応急処置としてプラグインファイルを編集して対応しました。あくまで自分用の覚え書きです。

修正を推奨するものではありません。失敗するとサイト全体に問題が発生することも考えられますので、バックアップを取った上で、自己責任でお願いします。

追加した部分は、295行目。セレクトメニューに選択肢”direct”を追加しました。

親子関係がある場合、親のADDED_TO_STAGEイベントリスナー内で子をaddChildすると、子のADDED_TO_STAGEイベントが2度発生する。

見事にはまりました。よく知られた現象のようです。

ADDED_TO_STAGEイベントが2度もいらない場合(おそらく殆どの場合)は、イベントリスナーの中でリスナーを削除するようにしましょう。イベントのハンドリングでは、意図しないイベントを拾ってしまわないように注意する必要がありそうです。

続きを読む

as3のコーディング中にクラス継承で疑問に思った点を検証しました。

疑問:コンストラクタにsuper()は不要か?

サブクラスのコンストラクタにsuper()を記述していないのに、スーパークラスのコンストラクタの内容が実行されている模様。
スーパークラスのコンストラクタを実行したい時には、サブクラスのコンストラクタの1行目にsuper()を書く必要があると思っていたんだけど、そうではないのか?

検証1

super()が無くてもスーパークラスのコンストラクタが呼ばれるか確認する。

続きを読む

ActionScriptでコーディングしていると、アチラコチラにTrace文を埋め込んでしまいます。デバッグの役目が終わったら削除するようにはしているんだけど、全部を消すのが面倒だったりします。

とは言え、リリース用のswfにはTrace文は残っていてほしくない。

パブリッシュの設定画面にTrace文を無効にするスイッチがありました。

きっと、動作が軽くなるに違いない!(?)

昨日作業していた時、Traceの出力がされなくて焦りました。開発時には、このチェックは外しておきましょう…