海賊王をめざす男 マツです。こんにちは。

今週末は、「ごはんとFlash with JS」ですねー。 Flex やっている方いたらお声をかけてください。

Module 内で DragManager を使用したときのこと。以下のエラーがでました。

VerifyError: Error #1014: クラス IDragManager が見つかりません。
at flash.display::MovieClip/nextFrame()
at mx.core::FlexModuleFactory/deferredNextFrame()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:631]
at mx.core::FlexModuleFactory/update()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:401]
at mx.core::FlexModuleFactory/moduleCompleteHandler()[E:\dev\4.x\frameworks\projects\framework\src\mx\core\FlexModuleFactory.as:718]

Flex4 になってもまだ Fix されていません。

この問題を回避するには、メインアプリケーションのスクリプトブロックに次の 2 行を追加します。

import mx.managers.IDragManager;
private var iDragManager:IDragManager;


他にも Flex4 になって、モジュールの扱いがちょっと変わってます。
例えばモジュールで使用しているコンポーネントの CSS をメインアプリケーションに宣言できたのが、警告がでるようになりました。

例)Alert コンポーネントをモジュールで使用していたとき
タイプがアプリケーションで使用されていないので、CSS タイプセレクター 'mx.controls.Alert' は処理されませんでした。

モジュール内で使用しているコンポーネント の CSS の宣言はモジュールでしないと警告がでるようになりました。
エラーではないので、ビルドはできるのですがちょっと...。

複数のモジュールで構成されているプロジェクトの場合不便かも。


参考
http://www.adobe.com/support/documentation/jp/flex/2/releasenotes_flex201_sdk.html

HTML5飯