IF AS3

2013-04-18 1 views
0

에 문 제가 별도의 함수에서 이벤트 리스너에 응답하기 위해이 기능을 작성했습니다 :IF AS3

편집 : 코드를 작업 업데이트되었습니다.

 function greyOutItems(event:Event):void { 

     if (DisableCheckBox.selected) { 
      myComboBox.alpha = 0.5; 

      myComboBox.enabled = false; 
      trace("hide combobox success"); 
     } 
     if (DisableCheckBox.selected == false) { 
      myComboBox.visible = true; 
      myComboBox.enabled = true; 
      trace("visible"); 
     } 
    } 

첫 번째 if

는 사용자가 체크 박스를 클릭하면 콤보 상자를 숨기고 잘 작동하지만 사용자가 같은 체크 박스를 체크 해제하고 다시 콤보가 볼 수 있도록 할 수 있어야합니다.

이상적으로 알파 속성을 0으로 설정하는 대신 ComboBox가 "회색으로 표시"되어있는 것이 좋지만 속성을 아직 찾지 못했습니다.

+0

고맙습니다. 대답으로 의견을 게시하고 동의 할 것입니다. – adaam

+0

'myComboBox'는 영화 클립입니까? –

+0

@Sim movieclip입니다. – adaam

답변

1

항상은 조건부에서 해당 값으로 설정되므로 true가됩니다. "="은 속성을 할당하는 것입니다. . "=="은 "와 동등"합니다. 따라서 if (DisableCheckBox.selected = true)은 실제로 selected 속성을 true로 설정하고 값을 성공적으로 설정했기 때문에 조건문이 작동하는 방식을 true로 설정합니다.

function greyOutItems(event:Event):void { 
    if (DisableCheckBox.selected == true) { 
     myComboBox.alpha = 0; 
     trace("success"); 
    } 
    if (DisableCheckBox.selected == false) { 
     myComboBox.alpha = 1; 
     trace("revisible"); 
    } 
} 

이 경우 두 번째 조건 대신 else을 사용해야합니다. else 문은 런타임에 약간 더 빠르게 실행됩니다 (두 번째 조건을 확인할 필요가 없으므로 모든 조건이 false 인 경우 else를 실행 함). 눈에 띄기에는 충분하지 않지만,이 작업을 여러 번 수행하면 더할 나위가 있습니다.

+0

'DisableCheckBox'가 Singleton이거나'selected'가 정적 속성이 아니라면 대문자가되어서는 안됩니다. 모든 객체 이름은 소문자, 낙타. 모든 클래스 이름은 대문자, camelcase이어야합니다. –

1

if 문이 잘못되었습니다. =은 과제입니다. ==을 사용하거나 selected을 if 문에 직접 사용해야합니다. 그것은 회색, 반 알파 박스 또는 유사한 효과를 당신에게 뒤에 어디

if (DisableCheckBox.selected) { 
    myComboBox.alpha = 0; 
    trace("success"); 
} 
if (!DisableCheckBox.selected) { 
    myComboBox.alpha = 1; 
    trace("revisible"); 
} 
+0

감사합니다. 내 콤보 상자에 "회색으로 표시"되는 모습을 보여줄 수 있습니까? – adaam

+0

alpha를 '0.5'로 설정하고'mouseEnabled'를'false'로 설정해보십시오. –

1

myComboBox이 무비 클립 인 경우, 당신은 alpha 속성을 사용하는 것보다 버튼을 오히려 "회색으로"할 수있는 한 가지 방법은 그것에 제 2 프레임을 추가하는 것입니다 플래시 편집기에서 훨씬 더 잘 제어 할 수 있습니다.

코드에서 myComboBox.gotoAndStop(2)을 사용하면 상자를 회색으로 표시하거나 myComboBox.gotoAndStop(1)을 정상으로 되돌릴 수 있습니다.