2011-07-04 3 views
1

저는 클래스에서 파생 된 이벤트 집합을 선언하고 컨트롤러 클래스에서이 정보를 사용하여 이벤트 리스너를 추가하는 것을 자동화하고 싶습니다. Action Script 3에서이 언어 구조가 있습니까? 그리고 이런 접근 방식에 대해 생각해 볼 수있는 것은 무엇입니까? - 좋았어?외부에서 액세스 할 수 있도록 클래스의 디스패치 가능 이벤트를 선언하는 내부 방법은 무엇입니까?

답변

5

describeType() 메서드와 함께 클래스에 [Event] 메타 태그를 사용할 수 있습니다.

package 
{ 
    import flash.display.Sprite; 
    import flash.utils.describeType; 

    [Event(name="test",type="TestEvent")] 
    public class Test extends Sprite 
    { 
     public function Test() 
     { 
      var description:XML = describeType(this); 
      var meta:XMLList = description.descendants("metadata"); 
      var events:XMLList = meta.(attribute("name") == "Event"); 
      trace(events.toXMLString()); 
      /* 
      trace output: 
      <metadata name="Event"> 
       <arg key="name" value="test"/> 
       <arg key="type" value="TestEvent"/> 
      </metadata>    
      */ 
     } 
    } 
} 

메타 태그 : http://livedocs.adobe.com/flex/3/html/help.html?content=metadata_3.html#159710

대한 describeType() :이 같은 사용자 정의 이벤트를 선언하는 경우 http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/utils/package.html#describeType%28%29

가, BTW, 당신은 또한 플래시 빌더에서 적절한 코드 힌트를 얻을 것이다.

+0

... 또한 하강 IDE에서 적절한 코드 힌트를 얻습니다. –

관련 문제