3月aboutmemo.393個人的メモです。間違いなどありましたらご指摘ください。Comment|FlashBuilder4の体験版で操作感を試してたときのハマッたこと。(もともとFlexBuilderを使ってる人からしたらあたり前のことなんだろうけど)ボクみたくFlashIDEとFlashDevelopしか使ってなかった人で、エディターとしてFlashBuilder使おうと思ってる人がひっかりそうなのでメモ。状況:ActionScriptプロジェクトを作成。ドキュメントクラスでBetweenAS3の動作テストしようと思ったら、nullエラー発生。ASを修正して再度デバッグモードでパブリッシュ(F11)するも同じエラーが表示される。該当箇所全部消しても、同じエラー。ムキーなんじゃこりゃー。解決:Flashデバッグのパースペクティブのデバッグタブに状況が表示されるのだけどエラーのときにここが赤字で中断になるときがあってこのまま放置すると同じエラーが吐かれ続けるみたい。ところデバッグタブ右の赤い■ボタンを押して終了するか、一式をデリートで消してから(ここではTest[WEBアプリケーション]を選択してDELETEキー)、改めてコード修正して再パブリッシュすればOKのようす。再パブリッシュするときは、エラーを中断状態のまま放置しないで終了状態にしとけってことなのね。いやeclipse使ってのJavaのWEBアプリケーションの実行も処理を一度終了させてから実行しないとダメだったな。知識があんまり役立ってねぇ。Comment|SWC書き出しでアセット作るというワークフローを試してみたところ、若干はまったのでメモ。SWCの書き出しと読み込みはkayacさんの記事を参照ください。MyMc0();addChild(myMc0);ただここで、クラス名を動的に生成したい場合は、getDefinitionByName()使わないとなので、こんな感じ。↓これはエラーになります。myClass();addChild(myMc0);違いは、変数myMc0の型をMyMc0とするか、MovieClipにするか、ということ。MyMc0なら、エラーにはならないけど、MovieClipにするとエラーになります。MyMc0の親クラスはMovieClipなんだから、間違いないんじゃね?と思ってましたが、問題はそこではなく、エラーのコードでは、MyMc0が一度も出てきてない、という事実が問題。具体的にいうと、「MyMc0に参照が通ってないからMyMc0は使えない」、ということになるんだそうだ。詳細は以下、コンパイルする段階で、使われてないクラスは含まないようにして最適化されるからですよん。しただけだと、使ってないとみなされて、コンパイル段階で省かれてしまうんです。必要なのはクラス名ではなくて、クラスへの参照です。ロジック中にクラス書くと、エラー回避出来るんです。soundkitchen:Tweet1soundkitchen:Tweet2なので、エラーコードを修正例としては、//MyMc0を明示的に表記することで参照を通して、MyMcを使うよってことをアピール。getDefinitionByName()でクラス作って、そのクラスでnewしてるんだから、問題ないんじゃない?と思ってたけど、プログラム的には明示的に参照を通さないとだめらしい。Twitterのおかげで知識が広がる、嬉しい限り。ちなみにswcを使いたかったのはFlexBuilderとかFlashDevelop+flexSDKで製作するようにしたかったから。ムービープレビューが速い速い。Comment|人のソースからのメモDisplayObjectContainerが内包しているDisplayObjectをすべてremoveする処理を1行で。解決(一番下に追記):クリックTLF(TextLayoutFramework)を使ったときにフォントを埋め込むにはCFFでトランスコードしたフォントを埋め込んだSWFを作って、そのSWFからフォントを読み込むという手順らしい。そもそもこの形式でSWFが書き出せない。transcodeとトランスコードできないというエラーになる。↓を見て同じようにやってみただけど、上記エラーTextlayoutFrameworkやFlash.text.engineで埋め込みOpenTypeフォントを使う方法:高橋文樹.comつぎに↓を見つけ、同様の古いSDKで試してみるも、やっぱり上記エラー。新テキストエンジンFlash.text.engineでOpenTypeのフォントを埋め込みで使う:SIHOのActionScript勉強メモSDKもいろいろ試してみた。SHIHOさんはMACでやられてるようなので、MACでも試してみた。意味がわからん、どうしようもないわ。原因がわかりそうな方、ぜひアドバイスをお願いします。)◆メインAS//swfの書き出し先にfontフォルダをつくりその中にA-OTF-ShinGoPro-Regular.otfという名前のフォントファイルを配置。{trace("Main.Main");}}}※2010/03/09/12:27追記taigaさんにアドバイスを頂き、明示的にプレイヤー10にしてなかったことに気付きました。FlexBuilder:追加コンパイラ引数に、-target-player=10.0.12を追加FlashDevelop:project>property>output>TargetをFashPlayer10に変更(setting>AS3Context>Language>DefaultFlashVersionも10)さらにモリサワ系のフォントはダメっぽいとの助言も頂き、taigaさんの記事で実績のある小塚明朝に。FONT:Class;}}で、結果は変わらずで同じエラーのまま。