FlashDevelop導入記

仕事でFlashDevelopを使う必要が出てきて、セットアップすることに。ずっとFlashのアプリケーションでの作業に慣れているし、Mac版がないってコトでスルーだったけど、導入してみたら色々トラブルもあったので、備忘録としてまとめておきます。

環境:MacBookPro15inch(Core 2 Duo 2.6GHz+メモリ4GB)
インストール先:BootCampにあるWindowsXP SP2です。
1.FlashDevelop.jpのインストール方法に従ってインストール。Java6、.NET Framework 3.5、Flex SDK 3とFlashDevelop 3.2.2 RTM。

2.インストールページのサンプルは動くものの、「メソッドが見つかりません:’Boolean System.Threading.WaitHandle.WaitOne(Int32)’」のポップアップが出てしまう。いろいろググってみて、やっと見つけたページに「net framework2 sp2を入れると直る」と書いてあったので、早速インストール。ポップアップは出なくなった。ふう。

3.仕事で使うプロジェクトファイルをFlashDevelopで起動。プレビューすると今度は「Error: Java heap space」と出てプレビューできず。これまた調べてみると、本家のページで「Flex SDKのメモリ割り当てが足りないらしい」との記述を発見。Flex SDKのbinフォルダにある「jmv.config」ファイルを下記のように書き換え(上のコメント行は元の記述)。

#java.args=-Xmx384m -Dsun.io.useCanonCaches=false -Duser.language=en -Duser.region=JP
java.args=-Xmx512m -Dsun.io.useCanonCaches=false -Duser.language=en -Duser.region=JP


これでやっとプレビューが出来るようになりました。やれやれ。


ちなみにVM Fusion2で動かす場合、Fusionの仮想マシン>設定で、プロセッサ>2仮想プロセッサ、RAM>1024MBに変更したら、XPの起動は速くなりました。ただパブリッシュは遅いので、コード読むぐらいならいいけど、ちゃんと使うときにはBootCampで切替が必要かなという印象です。

子から見た親の有無判定

外部swfをロードするタイプのコンテンツを作っていて、親は自分、子(外部swf)はデザイナーさん担当でASだけこちらで書くというスタイルで作業してます。

で、子のボタン動作は下記のように親から参照するように共通化したのだけど、これだと子だけでテストしたときに、親がなのでエラーが出てしまう。
//btn_next:ボタンイベント設定
var parentObj:Object = this.parent.parent.parent
var func_btn:Function = parentObj.xGetBtnFunction_next()
btn_next.addEventListener(MouseEvent.CLICK,func_btn)

(※this.parent.parent.parentが親に当たる)

実害はないもののデザイナーさんにエラーを見せるのもイヤなので、回避を考えてみた。
//btn_next:ボタンイベント設定

if (this.parent is Stage) {

//単体動作時のエラー回避
trace(“parentObj is null”);
} else {
trace(“parentObj is not null”);
//btn_next:ボタンイベント設定
var parentObj:Object = this.parent.parent.parent;
var func_btn:Function = parentObj.xGetBtnFunction_next();
btn_next.addEventListener(MouseEvent.CLICK,func_btn);
}

このスクリプトは、メインのタイムラインに書いてあるので、[object MainTimeline]の上(this.parent)が、[object Stage]だったら単体動作、そうでなければ外部読み込みされているという判断です(ちなみに外部読み込みの場合は[object SwfLoader]になります)。

コレで問題ないんだけど、もっとカンタンだったり定番的な方法があったら教えて下さい。

Provisioning Profilesの更新

Xcodeで使用するProvisioning Profileは、3ヶ月で期限切れ。いつも更新の度に検索するので備忘録として書いておきます。環境はOSX10.5.8+Xcode3.1.4です。
1.iOS Provisioning Portalで左メニューのProvisioningを選択。

2.Renewボタンを押して、更新されるのを待つ。ボタンがDownloadに変わればOK。

3.Downloadボタンを押してProvisioning Profileをダウンロード。
4.Xcodeでウィンドウ>オーガナイザ>を開き、DEVICESから実機を選択。
5.Summaryタグを選択し、中央にあるProvisioningから期限切れファイルを削除。
6. Provisioningのエリアにダウンロードしたファイルをドラッグ&ドロップで完了。
以下も参考にさせていただきました。