[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 メーリングリストの案内