2015-12-17 2 views
0

Я создаю текстовое поле с именем 'nama' и кнопкой 'ayo'. Я хочу, чтобы кнопка была отключена, когда текстовое поле пуст. Но когда я пробую этот код, моя кнопка не отключается и продолжает работать. Я хочу, чтобы кнопка была отключена перед заполнением текстового поля.Как отключить кнопку, когда текстовое поле пуста

stop(); 
menumulaikuis(); 
var namasiswa:String; 
var nama:TextField = new TextField(); 
namasiswa = nama.text; 

nama.addEventListener(Event.CHANGE,handler); 
function handler(event:Event){ 
    if (nama.text) { 
     ayo.enabled = true; 
     ayo.visible = true; 
    } else { 
     ayo.enabled = false; 
     ayo.visible = false; 
    } 
} 

ответ

1

У вас есть какие-то небольшие проблемы в вашем коде:

  • Вы должны добавить текст, поданные на сцену, используя addChild():
 
    var nama:TextField = new TextField(); 
    addChild(nama); 
  • Если текстовое поле для ввода пользователя, поэтому его тип должен быть input:
 
    nama.type = 'input'; 
  • Чтобы проверить, является ли текст в текстовое поле является пустым, вы можете просто сделать:
 
    if(nama.text == ''){ /* ... */ } 

Так обработчик изменения вашего текстового поля может быть как это:

function changeHandler(event:Event): void 
{ 
    if (nama.text != '') { 
     ayo.enabled = true; 
     ayo.visible = true; 
    } else { 
     ayo.enabled = false; 
     ayo.visible = false; 
    } 
} 

Надеюсь, что может помочь.

0

Если текстовое поле не для ввода пользователем, вы не можете использовать слушателя Event.CHANGE.

Предлагаю изменить Event.CHANGE на Event.ENTER_FRAME; это должно решить вашу проблему.

+0

Это неправильно. Событие ['TextField' Event.CHANGE'] (http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/text/TextField.html#event:change) запускается с любой объект TextField даже с динамическим. – akmozo

+0

Я вижу, я ссылался: http://stackoverflow.com/questions/977847/as3-textbox-change-event-not-firing –

Смежные вопросы