Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.04.2010, 01:12
Maxim вне форума Посмотреть профиль Отправить личное сообщение для Maxim Найти все сообщения от Maxim
  № 1  
Ответить с цитированием
Maxim

Регистрация: Apr 2010
Сообщений: 8
Question Условный оператор "if" - нужна помощь

Имеется код:
----------------
Код AS1/AS2:
stop();
f_ploshad2_txt.text = _global.f_ploshad;
if (f_ploshad2_txt.text = 300) {
f_ob_txt.text = "10";
f_personal_txt.text = "12";
}
else if (f_ploshad2_txt.text = 420) {
f_ob_txt.text = "15";
f_personal_txt.text = "20";
}
else if (f_ploshad2_txt.text = 600) {
f_ob_txt.text = "20";
f_personal_txt.text = "25";
}
----------------
В таком случае, всегда выполняется только первое условие((( Тоесть f_ploshad2_txt.text меняется (300, 420 или 600), а вот два других поля всегда имеют почемуто значения 10 и 12 (как в первом условии)
Пытался всяко разна переделать, почему то не выходит((
Помогите пожалуйста!

Старый 19.04.2010, 01:26
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 2  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Боро боро! Используйте в if оператор сравнения, а не оператор равенства(если вдруг не знаете оператор сравнения это ==)
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

Старый 19.04.2010, 01:41
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 3  
Ответить с цитированием
in4core
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Код AS1/AS2:
f_ploshad2_txt.text = 300
между прочим это тоже неверно и нетолько из за присвоения
Код AS1/AS2:
f_ploshad2_txt.text == "300"
а вот так верно во всех случаях

Старый 20.04.2010, 11:53
AzagThoth вне форума Посмотреть профиль Отправить личное сообщение для AzagThoth Найти все сообщения от AzagThoth
  № 4  
Ответить с цитированием
AzagThoth
 
Аватар для AzagThoth

блогер
Регистрация: Sep 2009
Сообщений: 309
Записей в блоге: 4
Отправить сообщение для AzagThoth с помощью ICQ
Цитата:
Сообщение от in4core Посмотреть сообщение
Код AS1/AS2:
f_ploshad2_txt.text = 300
между прочим это тоже неверно и нетолько из за присвоения
Код AS1/AS2:
f_ploshad2_txt.text == "300"
а вот так верно во всех случаях
Ну я бы не сказал так. Если сравниваются значения разных типов, то они вначале будут приведены к одному типу, после чего уже и будет осуществляться само сравнение. Ну это например как если делать 5==false или if(5). В общем не обязательно писать "300" можно просто 300 и всё будет хорошо. С другой стороны действительно наверное лучше конкретно задавать тип значения(вопрос быстродействия). А вот сейчас и проверим!
Код AS1/AS2:
//per - динамическое поле на сцене с заданным текстом 300
var a:Number=0;
 
time=getTimer()
while(a<200000){
	if(per.text==300){
		a++;
	}
}
trace(getTimer()-time);
 
a=0;
time=getTimer()
while(a<200000){
	if(per.text=="300"){
		a++;
	}
}
trace(getTimer()-time);
И что же мы видим в Отупут?:
1597
1219

Разница безусловно есть в 1.3 раза медленее работает если сравниваем значения разных типов в случае строка=число.

Добавлено через 5 минут
Maxim Вы можете выложить файл по человечески? С депозита у меня скорость 6-8 кбайт/сек. Что значит по-человечески!? Т.е. приатачить его к вашему сообщению сюда на форум, предварительно заархивировав.
__________________
Играй. Это жизнь.
Всё повторяется. Играй.

Старый 20.04.2010, 19:20
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 5  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Сообщение от in4core Посмотреть сообщение
Код AS1/AS2:
f_ploshad2_txt.text = 300
между прочим это тоже неверно и нетолько из за присвоения
Код AS1/AS2:
f_ploshad2_txt.text == "300"
а вот так верно во всех случаях
Что, простите?

Старый 19.04.2010, 01:48
Maxim вне форума Посмотреть профиль Отправить личное сообщение для Maxim Найти все сообщения от Maxim
  № 6  
Ответить с цитированием
Maxim

Регистрация: Apr 2010
Сообщений: 8
Не работает! (
Может дела в предистории?)
У меня есть три кадра. На каждом из них есть текстовое поля со значениями 300, 420 и 600. В зависимости на каком кадре находишься - жмешь кнопку и глобальной переменной присваивается значение соответсвующего поля. Это функция работает. Так как на новом кадре в новом текстовом поле это значение отображается. А вот следующее действие с оператором if не выполняется.( Могу выложить коды предыдущих кадров...

Добавлено через 6 часов 51 минуту
Помогите пожалуйста =)


Последний раз редактировалось Maxim; 19.04.2010 в 08:39.
Старый 19.04.2010, 16:18
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 7  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Может проще исходник выложить?

Старый 19.04.2010, 16:46
Maxim вне форума Посмотреть профиль Отправить личное сообщение для Maxim Найти все сообщения от Maxim
  № 8  
Ответить с цитированием
Maxim

Регистрация: Apr 2010
Сообщений: 8
Да, конечно! Залил на депозит!
http://*****************/files/vn9ixx3j9
Проблема на 3 сцене, 7 кадре...
Буду признателен за помощь

Старый 19.04.2010, 17:56
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 9  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
У вас меняется только кадр. Попробуйте создать пустое текстовое поле и уже потом при помощи переменной задавать его значения 300-420-600.

Старый 19.04.2010, 19:09
Maxim вне форума Посмотреть профиль Отправить личное сообщение для Maxim Найти все сообщения от Maxim
  № 10  
Ответить с цитированием
Maxim

Регистрация: Apr 2010
Сообщений: 8
Да, кадры у меня меняются допустим с 4 по 6. В зависимости с какого кадра ты попадаешь на 7 кадр, такое значение и присваивается ДИНАМИЧЕСКОМУ ТЕКСТУ f_ploshad2_txt. А уже в зависимости от него должен работать оператор их. Просто если я вставлю InputText, то в общую картину совершенно не впишется))) Я думаю, что все-таки есть выход, используя динамический текст или я Вас неправильно понял.
Так же я думал, что в операторе if операндой использовать глобальную переменную, т.к. она задает текст динамическому тексту (сори за товталогию). Т.е. if (_global.ploshad = "...") {...}. Но и этот вариант у меня не выходит.

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.