2010-12-21 5 views
0

가변 길이의 레이블 텍스트가있는 단추가 있습니다. 이 단추의 레이블 텍스트를 켜거나 끌 수있는 사용자 설정이 있습니다.플렉스 : 단추 크기를 변경하지 않고 레이블 텍스트 숨기기 (또는 제거)

어떻게 구현할 수 있습니까?

참고 : 단추의 배경에는 그라데이션 색이 있습니다.

BlendMode.LAYER를 사용해 보았습니다.

나는
private function resizeHandler(event:ResizeEvent):void 
    { 
     if (event.oldWidth > this.width) 
      this.width = event.oldWidth; 
     if (event.oldHeight > this.height) 
      this.height = event.oldHeight; 
    } 

Button.resizeHandler

를 사용하여 시도하지만 초기 UserSetting 값이 true 인 경우에만했다.

임베디드 글꼴은 어떻습니까? 단추에 적용하는 방법을 모르겠습니다.

답변

0

mx.controls.Button을 확장하여 레이블 표시/숨기기 기능을 추가 할 수 있습니다. 텍스트 필드는 보호 된 속성이므로 함수에서 가시성을 설정하거나 해제 할 수 있습니다. Flex를 그대로 두어 모든 것을 정확하게 측정하십시오.

텍스트가 켜져 있거나 꺼져있을 때 단추를 늘리거나 줄이려면 단추 너비를 설정할 수도 있습니다. 텍스트 필드 너비에 따라 너비를 계산해야합니다.

+0

마침내 버튼 자체에 대한 작업을 포기했습니다. 저는 캔버스를 확장하고 필요한 것을 시뮬레이션하기 위해 두 개의 버튼을 넣었습니다. –

0

방금 ​​단추의 너비를 설정하면 어떻게됩니까? 그렇게하면 레이블로 설정 한 것과 관계없이 일정한 폭이어야합니다.

대부분의 너비는 updateDisplayList 메서드에서 계산됩니다. 따라서 크기 조정 핸들러의 코드가 다음 렌더링 이벤트에서 재설정 될 수 있습니다.

+0

다른 텍스트의 버튼에 대해 다른 너비를 지정하고 싶기 때문에 너비를 얻을 방법이 없습니다. –

+0

@ Peter Lee : 그럼, 어떤 행동을 원하니? 고정 된 단추 너비를 지정하지 않으려는 경우, 가장 필요한 텍스트를 단추로 늘리십시오. 그러나 축소하지 마십시오. 또는 단추 내에서 텍스트가 줄 바꿈되도록하십시오. 너비를 큰 크기로 고정하는 것 외에도 실제로이 버튼에서 수행 할 내용이 명확하지 않습니다. –

+0

@Peter Lee는 getExplicitOrMeasuredHeight() 및 getExplicitOrMeasuredWidth() 메소드 또는 measuredWidth/measuredHeight를 조사합니다. 너비와 높이를 각각 measuredWidth와 measuredHeight로 설정하면 버튼의 라벨이 나타납니다. 라벨을 제거 할 때 적절한 크기를 유지해야합니다. 레이블이 없을 때 크기 조정을 방지하는 코드가 있다고 가정합니다. – JeffryHouser

1

minWidth 및 maxWidth 속성을 사용할 수 있습니다. minWidth - 단추가 가져야하는 최소 너비를 지정합니다. maxWidth는 단추가 가질 수있는 최대 너비를 지정합니다.

관련 문제