Flex3.0&AS3 2008. 12. 9. 15:50

Flex3.0 ] Module Class Lv1.



ModuleClac 클래스는 간단한 수식 계산을 담당하며 메인어플리케이션 클래스에서 모듈을 이용해서
해당 클래스를 로드하여 계산을 처리하는 간단한 예제이다.



 ModuleClac.mxml (모듈클래스를 상속)

<?xml version="1.0" encoding="utf-8"?>
<mx:Module xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="400" height="300">
 <mx:Script>
  <![CDATA[
   public function SumClac(m1:Number, m2:Number):Number{
    return m1+m2;
   }
  ]]>
 </mx:Script>
</mx:Module>


 ModuleTest.mxml (모듈테스트 apllication)

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical">
 <mx:Script>
  <![CDATA[
   import mx.core.IFlexModuleFactory;
   import mx.modules.IModuleInfo;
   import mx.modules.ModuleManager;
   
   private var obModule:Object;
   
   public var iModuleInfo:IModuleInfo;
   public var iReadImg:IReadImg;
   
   
   /*
   Module swf를 설정해서 모듈 정보 객체를 생성
   Module 정보 객체는  로더객체라고 생각하면됨
   */
   private function GetModule(mURL:String):void{
    iModuleInfo = ModuleManager.getModule(mURL);
    iModuleInfo.addEventListener("ready",fnReady);
    iModuleInfo.load();
   }
   
   private function fnReady(e:Event):void{
    e.target.removeEventListener("ready",fnReady);   
    /*
       모듈정보객체에게 다운받은 모듈을 생성
      생성객체는  object로 변수에 저장한다.
    */

    obModule = iModuleInfo.factory.create();
    tiResult.text = obModule.SumClac(10,30).toString();
   }
   
   
  ]]>
 </mx:Script>
 <mx:TextInput x="27" y="19" width="93" id="tiResult"/>
 <mx:Image id="imgView" width="300" height="200"/>
 <mx:Button x="128" y="19" label="ModuleLoad" click="GetModule('ModuleClac.swf')"/>
</mx:Application>


첫번째 모듈클래스는 모듈클래스를 상속받아 만든 클래스입니다.
일반적으로 모듈클래스를 상속받는 이유는 컴포너트를 배치하는 목적입니다.
그러나 위에 예의 경우 단순한 로직처리를 위한 부분밖에 없기 때문에 컴포넌트를 배치할수잇는 모듈클래스보다 가벼운
ModuleBase라는 클래스를 상속받아 처리하는 SimpleClass.as 입니다.


package{
 import flash.events.Event;
 
 import mx.core.Application;
 import mx.modules.ModuleBase;
 
 public class SimpleClass extends ModuleBase{

  public function SimpleClass(){}
  
  public function SumClac(m1:Number, m2:Number):Number{
   return m1+m2;
  }
  
  
 }



중요한것은 위의 코드를 테스트 하기 위해서는 as파일을 swf로 변환시켜줘야 합니다.
그러기 위해서는 이클립스에서 약간의 작업이 필요합니다.

프로젝트에서 마우스오른쪽버튼클릭후 properties
아래그림에서 add하여 아까작성한 as 및 mxml을 선택하면 이클립스에서 swf로 파일을 자동적으로 생성해줍니다.