[akabana-user:227] Re: yuiのビルドのついて

キャッチアップ江頭 [E-MAIL ADDRESS DELETED]
2010年 5月 25日 (火) 15:46:24 JST


ふなくらさん

ご対応ありがとうございます。
結論から申し上げますとなんとか起動までは漕ぎ着けました。
ただ、色々と問題点もありましたので、ご報告させていただきます。
少し長文になりますがよろしくお願いします。


ご教授頂いたとおり、
yui-frameworks-builds/flex3.properties の設定を こちらの環境用に設定に書き換え

ant -f build-fx3.xml all

を実行したところ、次の swc ファイルの生成に成功しました。

----------------------------------------
yui-frameworks-fx3-air-fp9
yui-frameworks-fx3-air-fp10
yui-frameworks-fx3-airds-fp9
yui-frameworks-fx3-airds-fp10
yui-frameworks-fx3-ds-fp9
yui-frameworks-fx3-ds-fp10
yui-frameworks-fx3-fp9
yui-frameworks-fx3-fp10
----------------------------------------

fp9と fp10というのは、FlashPlayer のバージョンだろうと考え、
AIR のプロジェクトを構築しているので、まず、
yui-frameworks-fx3-airds-fp10 をビルドパスに追加し実行しましたが、実行時に

Error #2035: URL Not Found. URL:
app:/Main.swf/yui-frameworks-fx3-airds-fp10-1.0.0.swf

というエラーが発生しました。
見たところ URL がおかしい(Main.swf配下に yui があるようになっている)し、
他のライブラリでも同様のエラーが発生したので、
おそらくこちらの環境の問題だろうと考え、ひとまず RSL としての読み込みをあきらめ、
コードにマージする設定に変更しました。
※ この設定はどこでするのでしょう。。
そうして実行すると、次のエラーが発生しました。

VerifyError: Error #1014: Class mx.rpc::AsyncToken could not be found.

airds だからかと思い、読み込む yui を yui-frameworks-fx3-air-fp10 に変更しました。
そうして実行すると、次のエラーが発生しました。

VerifyError: Error #1014: Class mx.core::Window could not be found.

どうやら、yui側から mx系のライブラリが読み込めてないような感じでしょうか。
air をあきらめ、次は、yui-frameworks-fx3-fp10 に変更しました。

そうすると先程までのエラーは発生せず、実行まで漕ぎ着ける事ができました。
ただ、起動時の view の読み込みで次のエラーが走ってしまい、原因がわからず、
ひとまず、最新版への移行を断念しました。。

----------------------------------------
Error: menuFubi
    at
org.seasar.akabana.yui.framework.core::ViewComponentRepository$/addComponent()
    at
org.seasar.akabana.yui.framework.core::YuiFrameworkContainer/processRegisterView()
    at
org.seasar.akabana.yui.framework.core::YuiFrameworkContainer/processRegisterComponent()
    at
org.seasar.akabana.yui.framework.core::YuiFrameworkContainer/doRegisterComponent()
    at
org.seasar.akabana.yui.framework.core::YuiFrameworkContainer/addedToStageHandler()
    at flash.display::DisplayObjectContainer/addChildAt()
    at
mx.managers::SystemManager/preloader_preloaderDoneHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2980]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at
mx.preloaders::Preloader/displayClassCompleteHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:434]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at
mx.preloaders::DownloadProgressBar/timerHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\DownloadProgressBar.as:1451]
    at
mx.preloaders::DownloadProgressBar/initCompleteHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\DownloadProgressBar.as:1503]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at
mx.preloaders::Preloader/dispatchAppEndEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:291]
    at
mx.preloaders::Preloader/appCreationCompleteHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\preloaders\Preloader.as:442]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()
    at mx.core::UIComponent/set initialized()
    at mx.managers::LayoutManager/doPhasedInstantiation()
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at mx.core::UIComponent/callLaterDispatcher2()
    at mx.core::UIComponent/callLaterDispatcher()
----------------------------------------

「menuFubi」というのは、ある View の子として読み込ませている共通部品の View に割り振った ID です。
ちなみに、その子 View にも、action / helper / logic を持たせており、関連付け用の CSS に次のように記述しています。
以前のバージョンでは正常に動作していました。

FubiView {
    action:ClassReference("xxx.xxx.action.FubiAction");
    helper:ClassReference("xxx.xxx.helper.FubiHelper");
    logic:ClassReference("xxx.xxx.logic.FubiLogic");
}

以上です。解決方法が簡単にわかるようであればよろしくお願いします。




また、せっかく移行作業を行ったので、他の方の為にも、
 beta-1-rc1 から、現在の trunk のバージョンへの作業内容について、
ここまでのぶんを載せておきます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
■ メインアプリケーション(MXML)の名前空間変更
xmlns:akabana="http://akabana.seasar.org/yui/mxml"
↓
xmlns:yui="http://yui.akabana.seasar.org/1.0"


■ YuiFrameworkMixinタグの変更
<akabana:YuiFrameworkMixin>
    <akabana:conventions>
        {実際のパッケージ名}
    </akabana:conventions>
</akabana:YuiFrameworkMixin>
↓
<yui:YuiFrameworkSettings />


■ conventions.propertiesファイルの設置
メインアプリケーションと同階層に設置しました。
内容は次のとおり
package={実際のパッケージ名}


■ 最初に読み込まれる View の id 変更
次のページを参考に、id を「rootView」に変更しました。
http://akabana.info/flex/yui-frameworks-5


■ FrameworkEvent のインポート設定を変更
import org.seasar.akabana.yui.framework.event.FrameworkEvent
↓
import org.seasar.akabana.yui.framework.core.event.FrameworkEvent

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
私の環境ではここまでやってエラー表示が出なくなりました。
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://ml.seasar.org/archives/akabana-user/attachments/20100525/38031296/attachment.html>


akabana-user メーリングリストの案内