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

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

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

Регистрация: Apr 2010
Адрес: Тольятти
Сообщений: 9
Post Типы переменных

Итак, такое дело. Создал программу для вычисления корреляций (что это такое - нет времени объяснять, да и проблема не в этом).
В начале программы я задал все значения переменных по типу:

var [переменная]:Number;

А в ходе вычислений я заметил, что так идет другой тип переменной - строка, потому что там идет такой процесс:

1) Присваиваю Х значение = 10
2) Присваиваю У значение = 10
3) Есть поле "Операция" ("rezult"), где возможны 4 значения: плюс, минус, делить, умножить (в это поле нужно вводить операцию: +, -, *, /)
4) Есть поле Dynamic Text "rezult", которое вначале = 0 (присвоено, как Number, равный 0)
5) При нажатии кнопки "RESULT", переменной rezult присваивается значение Х и У, между которыми происходит операция. Вот код кнопки:
Код AS1/AS2:
on (release) {
	txt = "";
	if ((oper == "+") or (oper == "-") or (oper == "*") or (oper == "/")){
		if ((a != "") and (b != "")){
			switch (oper){
				case "+":
				rezult = a + b;
				case "-":
				rezult = a - b;
				case "*":
				rezult = a * b;
				case "/":
				rezult = a / b;
			}
		} else {
			txt = "Не введены числа!";
		}
	} else {
		txt = "Неверная операция!";
	}
}
6) Вроде бы, код верный, а в поле rezult высвечивается такое значение rezult, будто он ДЕЛИТ (то есть rezult становится равным 1. Если Х и У равно 10 и 100, соответственно, то rezult = 0,1)

Вопрос: почему так происходит? Подскажите, что я не так делаю

Старый 19.02.2011, 12:19
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 2  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Замените "or" на "||"

'a != ""' замените на !isNan(a)

У меня все работает

А. Тьфу. После каждого case и операции добавляйте break;

Код AS1/AS2:
switch (oper)
			{
				case "+":
				rezult = a + b;
				break;
				case "-":
				rezult = a - b;
				break;
				case "*":
				rezult = a * b;
				break;
				case "/":
				rezult = a / b;
				break;
			}
			trace( rezult )
Вложения
Тип файла: rar calc.rar (8.8 Кб, 51 просмотров)
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2


Последний раз редактировалось dark256; 19.02.2011 в 12:25.
Старый 19.02.2011, 12:34
BlackShadow вне форума Посмотреть профиль Отправить личное сообщение для BlackShadow Найти все сообщения от BlackShadow
  № 3  
Ответить с цитированием
BlackShadow

Регистрация: Apr 2010
Адрес: Тольятти
Сообщений: 9
Спасибо большое, но теперь у меня другая проблема. При введении, например, 12 и 1 результат оказывается 121, а не 13... Походу, теперь он стал считать их строками... Может я опять что-то не так делаю?

Старый 19.02.2011, 12:43
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 4  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Флэш плюет на типизацию при любом удобном случае.
Вставьте операнды в "Number()"

Код AS1/AS2:
Number(a) + Number(b)
К сожалению вы привели лишь участок кода, поэтому судить сложно.
К слову, если вы берет данные из полей ввода, то там однозначно будет text.
Еще кстати - флэш совершенно безболезненно умеет делить на ноль
Так что ничему не удивляйтесь
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2


Последний раз редактировалось dark256; 19.02.2011 в 12:45.
Старый 19.02.2011, 12:47
BlackShadow вне форума Посмотреть профиль Отправить личное сообщение для BlackShadow Найти все сообщения от BlackShadow
  № 5  
Ответить с цитированием
BlackShadow

Регистрация: Apr 2010
Адрес: Тольятти
Сообщений: 9
Цитата:
Сообщение от dark256 Посмотреть сообщение
Флэш плюет на типизацию при любом удобном случае.
Вставьте операнды в "Number()"

Код AS1/AS2:
Number(a) + Number(b)
К сожалению вы привели лишь участок кода, поэтому судить сложно.
К слову, если вы берет данные из полей ввода, то там однозначно будет text.
Еще кстати - флэш совершенно безболезненно умеет делить на ноль
Так что ничему не удивляйтесь
Ой Огромное спасибо Вам)) Очень выручили и помогли!)) Можно потом к Вам еще по одному вопросу обратиться?))

Старый 19.02.2011, 12:52
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 6  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Ну.... собственно я тут самый тихий и незаметный из всех пользователей.
Пишите в форум, тут присутствуют гуру на несколько порядков покруче, чем ваш покорный слуга
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 19.02.2011, 12:57
BlackShadow вне форума Посмотреть профиль Отправить личное сообщение для BlackShadow Найти все сообщения от BlackShadow
  № 7  
Ответить с цитированием
BlackShadow

Регистрация: Apr 2010
Адрес: Тольятти
Сообщений: 9
Да что Вы)) Какой слуга?)) Вы мне очень даже помогли)) Просто я разработчик формул во Flash, которые идут из курса физики за первый курс института)) и мне позарез нужно узнать, как построить графики, если у меня есть функция y = kx + b.. Вы бы не могли помочь с материалом по этой теме? просто я, бродя по поисовикам, ничего толком не нашел.. а у вас рука-то уже "набита" по таким сумасшедшим вопросам))

Старый 19.02.2011, 13:08
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 8  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
Нуууууу......... батенька....... собссно строим по точкам.
Которые соединяем линиями

Код AS1/AS2:
var SUMDRAW = SUM.createEmptyMovieClip("SUMMARY",100);
		SUMDRAW.lineStyle (1, 0x00AAAA,100);
		SUMDRAW .beginFill(0x00AAAA,20);
 
		SUMDRAW.moveTo ( x0, y0); 
		SUMDRAW.lineTo ( x1, y1);
и так далее по точкам графика
В целом.... можете полюбоваться на мой исходник... типа сумматор нескольких функций.
Можно полюбоваться кодом. Который ужасен. Ибо писано давно. Но посмотреть можно
Вложения
Тип файла: rar miXer2.rar (10.5 Кб, 47 просмотров)
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

Старый 19.02.2011, 13:10
BlackShadow вне форума Посмотреть профиль Отправить личное сообщение для BlackShadow Найти все сообщения от BlackShadow
  № 9  
Ответить с цитированием
BlackShadow

Регистрация: Apr 2010
Адрес: Тольятти
Сообщений: 9
Извините, а в какой он сделан версии? У меня MF8... И он говорит, что не понимает формат((

Старый 19.02.2011, 13:10
dark256 вне форума Посмотреть профиль Отправить личное сообщение для dark256 Посетить домашнюю страницу dark256 Найти все сообщения от dark256
  № 10  
Ответить с цитированием
dark256
 
Аватар для dark256

блогер
Регистрация: Apr 2008
Адрес: SPb
Сообщений: 3,718
Записей в блоге: 5
Отправить сообщение для dark256 с помощью ICQ Отправить сообщение для dark256 с помощью Skype™
А в целом, может быть, имеет смысл связаться с автором вот этого приложения.
Дать ему денег и сэкономить время
http://vkontakte.ru/app5435_43915359
__________________
FLASHER.MAP SOUNDSTAGE / CS3 / AS2

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

Теги
number , var , переменные , типы переменных

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

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


 


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


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