FlexソースをFlash CS3に移植して、つまずいた画像配置
Flex SDKで作ったメインクラスをFlash CS3のドキュメントクラスで設定すれば即座に移植できると思いましたが、全くうまくいきませんでした。次のようなランタイムエラーが続発。
TypeError: Error #1007: コンストラクタ以外にインスタンス化が試行されました。 at Main$iinit()
原因は画像の埋め込み方法です。
以前のエントリーで紹介したテキストエディタだけで作ったフルフラッシュサイトですが、テキストエディタで作るという事は全ての画像部品は.asファイル(クラス)にEmbedメタを使って埋め込みます。このEmbedメタがFlash CS3では上手くいかない様子。改善方法は以下の通り。
元のFlexソース
メタを使って画像を埋め込んでいます。
// 背景画像 [Embed(source="/asset/bg.png")] private var BackGround :Class; public function Main() { this.addChild(new BackGround()); }
Flash CS3版のソース
// 背景画像はライブラリでリンケージ指定しておきます public function Main() { this.addChild(new Bitmap(new BackGround(0, 0))); }
結局のところ、画像はタイムラインに設置して設定していきました。テキストエディタだけで作った時は画像位置は別画像ソフトで座標を調べて一個一個x,y座標をスクリプトで設定していました。Flash CS3だとWYSIWYGなので、画像の位置設定はラクチンですね。(当たり前ですよね)
そもそもFlexからFlash CS3にリファクタリングすることなんて、まず機会がない気がします。私のようにSDKを使って無料で試してた人が、Flash CS3を購入したタイミングぐらいでしょうか。