2010-01-02 4 views
0

URL과 함께 수업에서 이벤트를 파견하고 싶습니다. AS3 : dispatchEvent- 통과 매개 변수를 통한 이벤트 발송?

나는 다음 작업을 수행 할 수 있다는 것을 알고 :

import flash.events.EventDispatcher; 

private function thumbClick(e:MouseEvent):void 
{ 
    dispatchEvent(new Event("clicked")); 
} 

그러나 나는 이벤트와 함께 PARAMS를 보낼 것입니다 방법을 모른다 ...?

var my_ev:Event = new Event("clickedImage"); 
my_ev.hasOwnProperty(e.currentTarget.link); 
dispatchEvent(my_ev); 

을 ...하지만 난이 올바른 구문이 될 것이라고 확실하지 않다 :

또한, 내 주요 응용 프로그램 러너에, 나는보십시오. 어떤 도움

감사합니다, 난 그냥 사용자 정의 이벤트 클래스를 만들

답변

5

앨런이 올바른지, 사용자 정의 이벤트를 확인하는 것이 좋습니다. 몇 가지 참고 사항 :

import flash.events.Event; 

public class ThumbnailEvent extends Event 
{ 
    public static var THUMB_CLICKED:String = "thumbClicked"; 

    private var _url:String; 
    public function get url():String { return _url } 

    public function ThumbnailEvent (type:String, url:String, bubbles:Boolean=false, cancelable:Boolean=false) 
    { 
     super(type,bubbles,cancelable); 
     _url = url 
    } 

    override public function clone():Event 
    { 
     return new ThumbnailEvent(type, url, bubbles, cancelable); 
    } 
} 

맞춤 이벤트는 항상 복제를 재정의해야합니다. 이벤트가 버블 링되거나 어쨌든 중계되면이 메소드가 필요합니다. 사용자 정의 속성은 읽기 전용 getter로 private이어야합니다. 이것은 행사 기간 동안 재산의 변경을 방지하기위한 표준 협약입니다. 에 코드를 변경 할이 방법을 사용

:

private function thumbClick(e:MouseEvent):void 
{ 
    dispatchEvent(new ThumbnailEvent(ThumbnailEvent.THUMB_CLICKED, myUrlString)); 
} 

//elsewhere 

addEventListener(ThumbnailEvent.THUMB_CLICKED, thumbClickedHandler); 

private function thumbClickedHandler(event:ThumbnailEvent):void 
{ 
    var link:String = event.url; 
} 

Custom Event tutorial at adobe.com

+0

조엘 감사합니다. – jml

1

JML.

import flash.events.Event; 


public class ThumbnailEvent extends Event 
{ 
    public static var THUMB_CLICKED:String = "thumbClicked"; 
    public var url:String; 

    public function ThumbnailEvent (type:String,url:String) 
    { 
       super(type); 
       this.url = url 
    } 
} 

후 원하는 사용

var thumbEvent:ThumbnailEvent = new ThumbnailEvent(ThumbnailEvent.THUMB_CLICKED,"myURL"); 
dispatchEvent(thumbEvent); 
+0

우수한. 도와 주셔서 감사합니다! 나는 Events가 물건들을 함께 포장하기 위해 사용될 수 있다는 것을 깨닫지 못했다. – jml

+0

걱정이 없습니다 :) 그리고 예, 조엘의 방법을 따르십시오. 나는 때때로 조금 게으른 사람입니다. 하하 – Allan

관련 문제