2009-09-19 5 views
0

나는 플렉스 응용 프로그램이 있고 런타임에 작업 스크립트와 함께 새 사용자 지정 구성 요소를 추가하려고합니다. 이 작동합니다. 내 사용자 지정 구성 요소를 만들고 다음 코드를 추가했습니다 :플렉스 사용자 지정 구성 요소에 효과 추가

var freeView:FreeView=new FreeView(); 
freeView.setStyle("showEffect",this.fadeIn); 
freeView.setStyle("hideEffect",this.fadeOut); 
freeView.visible=false; 
this.addChild(freeView); 
freeView.visible=true; 

그러나 내 문제는 효과가 작동하지 않습니다. 나는 다른 컴포넌트 (패널처럼)에서 사용하면 제대로 작동하기 때문에 효과를 올바르게 선언했음을 안다. 아무도이 문제를 도와 줄 수 있습니까? 감사합니다.

+0

에 효과 목표를 설정하여 주위에 그것을 다른 방법으로 할 수 있습니다. 또한 편집기에서 코드 서식 지정 단추를 사용하여 질문을 읽기 쉽게 만드십시오. – Stiggler

답변

0

마지막으로 나는 다른 방식으로 문제를 해결합니다. 런타임에 구성 요소를 추가하는 대신 visible 속성이 false로 설정된 응용 프로그램에 구성 요소를 추가하고 필요한 경우이를 true로 변경합니다.

0

FreeView 하위 클래스에서 재정의 된 Flex 수퍼 함수를 ​​호출해야합니다.

특히은 updateDisplayList과의 commitProperties :

override protected function updateDisplayList(w:Number, h:Number) 
{ 
    super.updateDisplayList(w, h); 

    // Your code here. 
} 


override protected function commitProperties() 
{ 
    super.commitProperties(); 

    // Your code here. 
} 

당신은 높은 수준의 컨테이너 클래스 (예를 들어, 캔버스 또는 HBox의) 또는 UIComponent의 하나를 무시하고 있습니까?

0

당신은 당신이 같은 상위 구성 요소의 모습으로 좀 더 정보를 제공 할 수있는 경우 새 요소

<mx:Fade id="showFlag" alphaFrom="0" alphaTo="1" duration="5000"/> 

var flag:Image = new Image; 
flag.source = flagSource; 

something.addElement(flag); 

showFlag.target = flag; 
showFlag.play(); 
관련 문제