문제

Flex 응용 프로그램이 있으며 런타임에 액션 스크립트와 함께 새로운 사용자 정의 구성 요소를 추가하고 싶습니다. 이것은 잘 작동합니다. 사용자 정의 구성 요소를 만들고 다음 코드를 추가했습니다.

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

그러나 내 문제는 효과의 페이드가 작동하지 않는다는 것입니다. 다른 구성 요소 (패널과 같은)에서 사용하면 효과가 올바르게 선언된다는 것을 알고 있습니다. 아무도이 문제를 도와 줄 수 있습니까? 친애하는!

도움이 되었습니까?

해결책 2

마지막으로 문제를 다른 방식으로 해결합니다. 대신 실행 시간에 구성 요소를 추가하면 가시 속성을 False로 설정 한 상태에서 구성 요소를 응용 프로그램에 추가하고 필요할 때 TRUE로 변경했습니다.

다른 팁

Freeview 서브 클래스에서 재정의 Flex 슈퍼 기능을 호출해야합니다.

특히 업데이트 된시기리스트 및 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 중 하나를 우선하고 있습니까?

새로운 요소에 효과 대상을 설정하여 다른 방법으로 할 수 있습니다.

<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();
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top