Просмотр полной версии : Проблема с if/else
littelb1t
14.05.2013, 01:54
Есть скрипт в первом кадре:
stop();
Value (2)
if (Value ==2) {
gotoAndPlay(2)
} else if (Value ==3) {
gotoAndPlay(3)
}else{
gotoAndPlay(1);
}
Дело в том,какие бы я значение не задавал Value,он переходит к последнему клипу
В чем может быть проблема?
caseyryan
14.05.2013, 08:40
а с каких пор значения переменных задаются в скобках?
stop();
Value = 2;
if (Value ==2) {
gotoAndPlay(2)
} else if (Value ==3) {
gotoAndPlay(3);
}else{
gotoAndPlay(1);
}
littelb1t
14.05.2013, 10:42
а с каких пор значения переменных задаются в скобках?
stop();
Value = 2;
if (Value ==2) {
gotoAndPlay(2)
} else if (Value ==3) {
gotoAndPlay(3);
}else{
gotoAndPlay(1);
}
Да,так работает,но есть еще функция:
function Value(CertainToken:Number)
{
this.test.text = CertainToken;
}
Которая показывает число от Value в текстовое поля.
В Вашем примере,показывает только кадры,без числового значения с ошибкой
Несоответствие типа в операторе присваивания: обнаружен "Number", а требуется "Function".
Числовое значение показывается только когда
Value (2)
Rainbow_Sparkle
14.05.2013, 14:02
function Value(CertainToken:Number)
{
this.test.text = CertainToken;
}
Попробуй вместо Value поставить что-нибудь другое.
littelb1t
14.05.2013, 14:16
function Value(CertainToken:Number)
{
this.test.text = CertainToken;
}
Попробуй вместо Value поставить что-нибудь другое.
Например?
Здесь вы вызываете функцию Value, она вам что-то делает (что-то там в поле выводит):
Value (2)
Далее вы "убиваете" функцию Value, создавая одноименную переменную Value, которая по умолчанию будет не определена:
if (Value ==2) {
.....
И поскольку на этом этапе у вас Value будет равно undefined, то выполнится последнее условие в if, что вы и наблюдаете.
Это я описал вам, как работает ваш код. Делайте выводы сами.
PS. По оформлению сообщений - не увлекайтесь оверквотингом, выделяйте в цитате только значимые строки, иначе тяжело читать.
если Value функция, присваивающая тектсфилду значения, то логично их и сравнивать, не?
test = createTextField("test", 0, 0, 0, 200, 100);
Value(2)
if (test.text == "2"){
gotoAndPlay(2);
} else if (test.text == "3"){
gotoAndPlay(3);
}else{
gotoAndPlay(1)
}
function Value(CertainToken:Number)
{
this.test.text = CertainToken.toString();
}
littelb1t
14.05.2013, 15:20
Сравнение уже происходит
this.test.text = CertainToken;
Если писать так то Value = 2; то работает переход по кадрам,но не работает функция(она не выводит Value в текстовое поля)
Работает всё,если удалить функция,а она как раз нужна.
Переименуйте функцию (и ее вызовы соответственно, где они есть, вам же Rainbow_Sparkle уже говорил.
littelb1t
14.05.2013, 15:29
Скорей всего работает,но не отобржаеться Value в текстовом поле на кадрах 2 и 3
Добавлено через 9 минут
Работает по посту 7
Но теперь,возникла новая проблема.
На кадрах 2 и 3 есть это текстовое поля,но там не отображаются значение Value.
В чем может быть проблема?
А почему оно должно там отображаться?
Ведь код, с помощью которого вы выводите текст в поле:
Value(2)
уже отработал, еще до перехода в другой кадр.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.