2010-06-24 2 views
0

일부 바인딩 가능한 변수를 매개 변수로 사용하여 정의 된 드롭 필터가 있습니다.Flex 3.5에서 DropShadowFilter를 변경할 수 있습니까?

<mx:filters> 
    <mx:DropShadowFilter id="torinofilter" distance="0" color="{dropShadowColor}" 
    blurX="{dropBlur}" blurY="{dropBlur}" strength="8" quality="2" 
    alpha="{dropAlpha}"/> 
</mx:filters> 

나는이 같은 메서드 호출에 필터를 업데이 트하려는 :

this.dropShadowColor = <new color> 
this.dropBlur = 15.0; 
this.dropAlpha = 0.8; 

모두 this.dropShadowColortorinofilter.color을 추적 할 때, 나는 그들이 새로운 색상으로 업데이트 한 참조 만의 색을 dropfilter doesnt 변화.

swapChildren에 문제가있어서 새로운 필터를 만들지 않는 것이 좋습니다.

답변

0

filters의 속성은 이와 같이 수정할 수 없습니다. myFilters라는 등의 하나로서,

  1. 임시 배열에 filters 배열의 값을 할당합니다

    당신이 필터 배열의 복사본을 수정해야, 기존 필터 객체를 수정하려면 .
  2. 임시 배열 myFilters을 사용하여 속성을 수정하십시오. 예를 들어 배열의 첫 번째 필터의 quality 속성을 설정하려면 다음 코드를 사용할 수 있습니다. myFilters[0].quality = 1;
  3. filters 배열에 임시 배열 값을 할당합니다. 당신이의 DisplayObject의 filters 배열을 읽을 때

은 기본적으로 플래시가 배열이 아닌 라이브 필터 배열의 복사본을 반환합니다. 새 필터를 누르거나 기존 필터를 업데이트하면 원본이 아닌 사본 만 수정됩니다. 변경 사항을 반영하기 위해 배열에 다시 할당해야합니다.

mxml 대신에 actionscript에서이 작업을 수행하십시오.


그때 내가 swapChildren 문제를 얻을 수 있기 때문에 새로운 필터를 생성하지 않으려는 것입니다.

swapChildren은 표시 객체 (플렉스 컨테이너의 경우 UIComponent)에만 적용됩니다.

관련 문제