2014-10-08 5 views
0

Я искал арод, но, похоже, не нашел правильного ответа на это. Допустим, у нас есть супер базовая программа, которая добавляет два числа из 2 текстовых полей ввода и распечатывает их. Почему can not i меняет переменные вне функции обработчика событий? И что мне нужно сделать для этого? Код находится в кадре.AS3, переменная внешняя функция обработчика событий?

Почему этот пример не работает? :

btn.addEventListener(MouseEvent.CLICK, cal); 

var fnum:Number = Number(txt1.text); 
var snum:Number = Number(txt2.text); 

function cal(evt:MouseEvent){ 


txtOutput.text = String(fnum + snum); 
} 

И этот пример работы ?:

btn.addEventListener(MouseEvent.CLICK, cal); 

function cal(evt:MouseEvent){ 

var fnum:Number = Number(txt1.text); 
var snum:Number = Number(txt2.text); 
txtOutput.text = String(fnum + snum); 
} 
+0

Это из класса или на рамке? – Zze

+0

Это на кадре – Skalk

ответ

1

Я ненавижу быть этот парень, но я не могу заставить его повторить Что происходит для вас ..

enter image description here

Единственное предположение, которое я могу сделать, это то, что txt1.text & txt2.text еще не установлен, когда кнопка нажата в примере 1. Не стесняйтесь застегивать свой проект и Dropbox это мне, если вы хотите, чтобы я исследовал дальше :)

+0

Спасибо за ответ. Это не проект, я просто создал код, чтобы проиллюстрировать мою проблему. Если я установил значения переменных вручную в коде, как и вы, он отлично работает. Но я уверен, что, как вы сказали, txt1.text и txt2.text не установлены при нажатии кнопки! Как установить их, есть ли способ для этого? ? @Zze – Skalk

+0

AS3 составлен сверху вниз. Если вы посмотрите на мое изображение, события назначены, то цифры. В вашем случае fnum & snum установлены в текстовый элемент ваших полей ввода. Поэтому, если в это время эти поля пустые, ваши вары будут пустыми. Положите инструкцию trace, прежде чем назначать их для проверки этого. Я благодарен, что если вы добавите текст в эти поля на сцене, это сработает. Его просто тот факт, что данные не были введены в поля во время установки переменных. – Zze

+0

Вы правы. Спасибо за помощь :) – Skalk

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