2013-12-10 2 views
0

나는 scaleX = 0.5와 scaleY = 0.5의 양쪽 모두에서 스킨 가능 컨테이너를 0.5로 스케일합니다. 컨테이너를 스케일 한 경우 플렉스 스케일링에 따라 해당 요소도 스케일됩니다. 그 컨테이너의 아이들은 스케일링을하지 않습니다. 나는 이와 같은 것을 시도했다.Flex에서 특정 하위 요소의 크기 조정을 방지하는 방법은 무엇입니까?

public static function preventScaleForComponent(target:UIComponent):void 
    { 
     if(!target) 
      return; 

     var parent:DisplayObjectContainer = target.owner; 
     if(parent) 
     { 
      trace("Target ScaleX :: "+target.scaleX+"Target ScaleY :: "+target.scaleY); 
      trace("Parent ScaleX :: "+parent.scaleX+"Parent ScaleY :: "+parent.scaleY); 

      target.scaleX = 1 + parent.scaleX; 
      target.scaleY = 1 + parent.scaleY; 
     } 
    } 

그러나 나는 이것이 올바른 방법인지 또는 다른 어떤 수단으로도 할 수 있는지 모른다. 이 경우 부모 컨테이너가 0.5로 배율 조정되면 자식 배율 값은 1.5이므로 배율 조정없이 정상적으로 표시되는 것처럼 보입니다. 부모 규모 (통상의 2 배 크기)이있는 경우

target.scaleX = 1/parent.scaleX; 

이 방법 :

답변

2

난 당신이 올바른 궤도에 있다고 생각하지만 합이 잘못 원래 크기를 유지하기 위해 아이 컴퍼넌트를 얻을 수 있습니다 대상/하위 눈금은 0.5 (원래 크기의 절반)이며 부모의 컨텍스트에서 원래 크기가됩니다.

스케일은 절대 치수 (너비/높이)에 적용되는 배수이며 자체 측정이 아님을 기억하십시오. - 부모를 두 배로 늘리면 아이를 반으로 줄이거 나 그 반대의 경우가됩니다. 단순히 숫자를 추가하는 것이 아닙니다. 다른 하나에서 찍은

희망이 도움이!

+0

나는 이것을 받아들이지 만 부모 컨테이너가 0.5로 축소되면 대상 배율이 2.0이되어 너무 큰 것처럼 보일 수 있습니다. –

+0

아니요, 상위가 0.5로 조정 된 경우 상위 항목과 모든 항목이 원래 크기의 절반으로 표시됩니다. 원래 크기로보고있는 것은 부모의 반쪽을 방해하기 위해 자녀의 눈금을 두 배 (~ : 2)로 늘려야합니다. 그것을 시도해 볼 때 더 분명해질 수도 있습니다. – MickMalone1983

+0

yes 예상대로 작동합니다 ... –

관련 문제