2013-08-07 3 views
0

actionscript3에서 객체의 속성이 업데이트 될 때마다들을 수있는 이벤트가 있습니까?Actionscript - 객체의 속성 변경 이벤트 수신

나는 플렉스 이벤트 객체를 다루는 PropertyChangeEvent을 발견했습니다. 필자는 Flex에 익숙하지 않고 응용 프로그램이 구성 요소를 사용한다는 것을 의미합니다. 내 응용 프로그램은 엄격하게 actionscript3에 writtien입니다. 액션 스크립트-2에서 그런 일이 있었다처럼

갱신 보인다 - Object.watch

+1

순수 AS 3.0에서는 가능하지 않다고 생각하지만이 답변에서와 비슷한 것을 만들 수 있습니다. http://stackoverflow.com/a/318639/1123633 –

답변

3

, 액션에서, 나는 개체의 속성이 업데이트 될 때마다들을 수 있습니다 이벤트가?

아니요, 아니면 적어도 기본적으로 아닙니다!

Flex에서 객체의 사용자 정의 속성은 get/set 메서드로 구현되고 set 메서드는 속성 변경 이벤트를 전달합니다. 이런 식으로 뭔가가 :

private var _myVar : SomeClass; 
public function get myVar():SomeClass{ 
    return _myVar; 
} 

public function set myVar(value:SomeClass):void{ 
    _myVar = value; 
    dispatchEvent(new Event('myVarChanged')); 
} 

이 주로 플렉스 프레임 워크에 바인딩이 '하여 PropertyChanged'사건의 대부분이 문서화되어 있지 않습니다에 사용됩니다. 때때로 그들은 유용하게됩니다.

플렉스가 아닌 코드에서; 당신은 똑같은 방법으로 당신의 속성을 쓰는 것을 환영합니다. 기본 Flash 클래스가 'propertyChanged'이벤트를 전달할 것이라고 기대하지 않습니다. 참조 (http://help.adobe.com/pt_BR/FlashPlatform/reference/actionscript/3/mx/binding/utils/BindingUtils.html#bindSetter())

액션 스크립트 3.0에 따르면
+0

actionscript-2에있는 것처럼 보입니다. - [Object.watch] (http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=00001435.html) –

+0

Flex 설명서도 참조하십시오. http : //help.adobe. com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7ce1.html –

1

당신은 사용할 수 있습니다

BindingUtils.bindSetter(myFunctionHandler, entity, "property"); 

protected function myFunctionHandler(object:Object):void 
{ 
    // implementation 
} 
0

을 또한 사용할 수 있습니다

ChangeWatcher.watch(textarea, "text", watcherListener); 

private function watchListener(event:Event):void 
{ 
    // Use myWatcher.unwatch() to remove the watcher. 
} 

을하지만 클래스가있는 경우 "개체"연장 인스턴스를 생성하면 이벤트를 전달하는 dispatchEvent() 메서드가 없습니다. IEventDispatcher를 확장해야합니다.

관련 문제