2012-07-15 4 views
0

버튼과 두 개의 레이블 (둘 다 플래시 구성 요소)로 구성된 무비 클립이 있습니다. 단추를 클릭하면 레이블 중 하나를 제거한 다음 버튼과 첫 번째 레이블 (둘 다 영화의 맨 위에 있음) 만 표시하도록 무비 클립의 높이를 변경하여 무비 클립을 최소화하려고합니다.AS3 자식을 크기 조절하지 않고 무비 클립 크기 조절

나는 scaleY를 사용하는 것뿐만 아니라 무비 클립의 높이를 변경하려고 시도했지만 무비 클립과 함께 레이블과 버튼의 크기를 조정합니다.

버튼과 라벨을 조절하지 않고 동영상의 배경 만 조절할 수 있습니까?

감사합니다.

답변

2

이렇게 작동하지 않습니다. 부모를 확장하면 모든 하위 객체에 영향을 미칩니다. 이는 많은 수의 표시 객체 그룹을 훨씬 쉽게 수정할 수 있기 때문에 좋은 방법입니다.

크기를 조정하려는 그래픽 클립이 레이블 및 버튼과 동일한 레벨에 있도록 레이어를 변경해야합니다. 새 MovieClip을 만들고 그래픽, 단추, 레이블, 그 안에.

+0

내가 함께가는 결국 해결책은 무비 클립을 변경했다 프레임 2에 올바른 크기를 갖기 위해 gotoAndStop (2)를 호출하여 원하는 결과를 얻을 수 있습니다. –

2

나는 부모와 스케일링하는 아이들이 올바른 행동을하는 것을 동의합니다. 상위에서 그들을 움직이는 주위를 얻을 수없는 경우, 자녀의 확장 부모의 영향을 취소 할 다음 의사 코드 고려할 수 :

public class ParentClip extends MovieClip 
{ 
    // Consider moving all of those unscalable clips into this MovieClip so you would not have to process them individually 
    public var clipsDoNotScale:MovieClip; 

    public override function set scaleX(value:Number):void 
    { 
     var previousValue:Number = super.scaleX; 
     super.scaleX = value; 

     if (previousValue != value && clipsDoNotScale) 
     { 
      clipsDoNotScale.scaleX = 1/value; 

      //Proportionally move the clip too 
      clipsDoNotScale.x *= value/previousValue; 
     } 
    } 

    public override function set scaleY(value:Number):void 
    { 
     var previousValue:Number = super.scaleY; 
     super.scaleY = value; 

     if (previousValue != value && clipsDoNotScale) 
     { 
      clipsDoNotScale.scaleY = 1/value; 

      //Proportionally move the clip too 
      clipsDoNotScale.y *= value/previousValue; 
     } 
    } 
}