[Seasar-user:6564] [Dolteng]Flex2のmx.moduleを継承したコンポーネントのビルドについて
kondo
[E-MAIL ADDRESS DELETED]
2007年 3月 8日 (木) 12:09:03 JST
近藤(nobu)です。
※akabanaかseaser-userか迷ったのですが、Doltengの事なのでseaser-userに
送信させて頂きました。
Doltengで生成したS2Flex2+S2Daoの環境で開発しております。
現在開発しているアプリケーションでFlex2.0.1から導入されたmx.moduleを
使用しているのですが、ビルド時にswfファイルが作成されません。
※mx.moduleを継承したコンポーネントは、コンパイル(mxmlc使用)すると、
swfファイルを出力します。
このmx.moduleのswf生成は、通常のFlex Projectでもデフォルトでは出力され
ない為、Eclipseより
プロジェクトのプロパティ -> Flexアプリケーション -> 追加
で、モジュールのmxmlファイルを追加することでEclipseからビルド・swf生成
ができるようになります。
Flex Projectで生成できることを確認できたので、Chura Projectでも同様に
行ったのですが、swfは生成されませんでした。
また、この事が原因だと思うのですが、ビルド時に以下のエラーが発生する
ようになり、ビルドが出来なくなりました。
■ビルド時のエラーログ(workspace/.metadata/.logより) ================
!ENTRY com.adobe.flexbuilder.project 4 43 2007-03-08 11:52:07.834
!MESSAGE Uncaught exception in compiler
!STACK 0
java.io.FileNotFoundException: D:\Program
Files\eclipse\workspace\demoapp\bin\demoapp\web\appmod\Appmod-debug.swf
(指定されたパスが見つかりません。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at java.io.FileOutputStream.<init>(Unknown Source)
at
com.adobe.flexbuilder.project.compiler.internal.ASApplicationBuilder$MyBuilder.mybuild(Unknown
Source)
at
com.adobe.flexbuilder.project.compiler.internal.ASApplicationBuilder.build(Unknown
Source)
at
com.adobe.flexbuilder.project.compiler.internal.ASBuilder.build(Unknown
Source)
at
com.adobe.flexbuilder.project.compiler.internal.FlexIncrementalBuilder.buildApplication(Unknown
Source)
at
com.adobe.flexbuilder.project.compiler.internal.FlexIncrementalBuilder.build(Unknown
Source)
at
org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:603)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:167)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:201)
at
org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:230)
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
at
org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:233)
at
org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:252)
at
org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:285)
at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:271)
at
org.eclipse.ui.actions.GlobalBuildAction$1.run(GlobalBuildAction.java:183)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:58)
=====================================================================
これはChura Projectではmx.moduleのビルドは対応していないということなので
しょうか?お手数ですが、何かご存知の方がいらっしゃいましたらアドバイスの
程、よろしくお願いいたします。
■環境
Flex Builder 2.0.1 Plug-in版(英語)
Eclipse 3.2.1 + Language Pack
JDK 1.5.10
Dolteng 0.17.0
DbLuancher
Tomcat Plug-in
以下ソースです。
=====================================================================
■構成
WEB-INF/src/main/flex/Main.mxml(Application)
WEB-INF/src/main/flex/demoapp/web/appmod/Appmod.mxml(module)
■Main.mxml(mx.application)
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute" xmlns:ns1="demoapp.web.menu.*" height="360"
creationComplete="init()">
<mx:Script>
<![CDATA[
import mx.events.FlexEvent;
import mx.events.StateChangeEvent;
import mx.controls.Alert;
private function init():void
{
// 初期表示は menu state
this.currentState = 'menu';
}
private function stateMenuOnEnterState(e:FlexEvent):void
{
}
private function stateMenuOnClick(e:MouseEvent):void
{
loader.loadModule();
currentState='app'
}
private function stateAppOnEnterState(e:FlexEvent):void
{
loader.url = "web/Appmod.swf";
}
private function stateAppOnClick(e:MouseEvent):void
{
loader.unloadModule();
this.currentState = 'menu'
}
]]>
</mx:Script>
<mx:states>
<mx:State name="menu" enterState="stateMenuOnEnterState(event)">
<mx:AddChild position="lastChild">
<ns1:MenuCmp x="10" y="40" width="426" height="310">
</ns1:MenuCmp>
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:Button x="10" y="10" label="app" click="stateMenuOnClick(event)"/>
</mx:AddChild>
</mx:State>
<mx:State name="app" enterState="stateAppOnEnterState(event)">
<mx:AddChild position="lastChild">
<mx:Button x="10" y="10" label="close" click="stateAppOnClick(event)"/>
</mx:AddChild>
<mx:AddChild position="lastChild">
</mx:AddChild>
<mx:AddChild position="lastChild">
<mx:ModuleLoader x="10" y="40" width="442" height="310" id="loader">
</mx:ModuleLoader>
</mx:AddChild>
</mx:State>
</mx:states>
</mx:Application>
■Appmod.mxml(mx.module)
<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" width="400"
height="230">
<mx:Canvas width="100%" height="100%">
<mx:DataGrid x="0" y="30" width="400" height="200">
<mx:columns>
<mx:DataGridColumn headerText="Column 1" dataField="col1"/>
<mx:DataGridColumn headerText="Column 2" dataField="col2"/>
<mx:DataGridColumn headerText="Column 3" dataField="col3"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="0" y="0" label="read" id="readBtn"/>
</mx:Canvas>
</mx:Module>
=====================================================================
以上
Seasar-user メーリングリストの案内