2009-12-07 4 views
0

콘텐츠로 동적으로 크기를 조절하는 버튼을 만들고 싶습니다. 이것을 달성하기 위해 저는 라이브러리에 MovieClip을 만들고 텍스트, bg, 그림자 및 테두리라는 네 개의 레이어를 추가했습니다.플래시에 배경이있는 크기 조정 가능 버튼

문제점 텍스트 필드를 자동 크기 조정하면 텍스트 필드 만 크기가 조정되고 나머지는 그대로 유지됩니다. xxxLineMetrics 함수를 사용하여 필요한 너비를 계산하여 Button에 적용하면 배경 크기가 제대로 조정되지만 textfield도 그 크기만큼 늘어나서보기 흉한 것처럼 보입니다.

배경 (텍스트 필드의 형제)을 텍스트 필드로 적절하게 크기를 조정하려면 단추가 크기가 조절 된 배경과 일반 자동 크기 조정 텍스트 필드로 멋지게 보이게하십시오.

난 당신 만이 아니라 전체 무비 클립에 BG 동영상 클립에 계산 된 폭을 적용해야합니다 ... 어떤 도움이 감사 ... 유 너희들이 내가 원하는 걸 얻었

감사합니다,

답변

0

를 바랍니다. 이것은 텍스트 필드의 너비도 변경하기 때문입니다.

그래서 이런 식으로 뭔가를 시도 :

txt.autoSize = TextFieldAutoSize.LEFT; 
txt.text = "label"; 
btn.bg.width = txt.width; 
+0

나는이 시도했지만 그것은 또한 스트레치 텍스트 필드! – DexTer

+0

당신의 텍스트 파일은 배경 동영상 클립의 하위 항목이 아닙니까? – Yens

+0

내 TExtFields 및 배경 Sprite/Image는 모두 형제 - 상위 Sprite의 하위입니다. – DexTer

0

아래의 코드를 시도 할 수 있습니다 :

package 
{ 
    import flash.display.MovieClip; 
    import flash.display.Sprite; 
    import flash.text.TextField; 
    import flash.text.TextFieldAutoSize; 

    /** 
    * class represents the MyButton Movieclip in your library containing a dynamic 
    * textfield with instancename txt 
    * and a background movieclip with instance name bg 
    */ 
    public class MyButton extends MovieClip 
    { 
     public var txt : TextField; 
     public var bg : MovieClip; 

     public function MyButton(label : String) 
     { 
      txt.autoSize = TextFieldAutoSize.LEFT; 
      txt.text = label; 
      bg.width = txt.width; 
     } 

    } 
} 
관련 문제