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

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

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

Регистрация: Jul 2008
Сообщений: 912
По умолчанию стильный калькулятор, проблема с точкой

начал изучать экшн скрипт, добрался до создания калькулятора всё вроде-бы получилось только калькулятор проблемный вышел - точка десятичной дроби конфликтует с нулём вот код:
Код:
var tablo = 0;
var num:Number = null;
var tochka:Boolean = true;
var numbers = 0;
var str:String = " " ;
var memory = null;
var operations = null;
but_ravno.enabled = false;
but_1.onPress = function():Void {
	num=1;
	myAdd();
}
but_2.onPress = function():Void {
	num=2;
	myAdd();
}
but_3.onPress = function():Void {
	num=3;
	myAdd();
}
but_4.onPress = function():Void {
	num=4;
	myAdd();
}
but_5.onPress = function():Void {
	num=5;
	myAdd();
}
but_6.onPress = function():Void {
	num=6;
	myAdd();
}
but_7.onPress = function():Void {
	num=7;
	myAdd();
}
but_8.onPress = function():Void {
	num=8;
	myAdd();
}
but_9.onPress = function():Void {
	num=9;
	myAdd();
}
but_0.onPress = function():Void {
	num=0;
	myAdd();
}
but_tochka.onPress = function():Void {
	if (tochka) {
	tochka = false;
	str+= ".";
	}
}
function myAdd():Void {
    if (tochka) {
		numbers = numbers*10+num;
    }else{
		numbers+=num/Math.pow(10,n);
		n++;
    }
	if (str!= 0) {
		str = str+num;
	    }else{
		str = String(num);
	}
	if (str.length<17) {
		tablo = str;
		} else {
		tablo = numbers;
}
}
but_znak.onPress = function ():Void {
	if (str!= 0 && str!= "" ) {
		numbers*=-1;
		if (str.substring(0 , 1)!= "-" ) {
			str = "-"+str;
		}else{
			str = str.substring(1);
		}
		if (str.length<17) {
			tablo = str;
			} else {
				tablo = numbers;
			}
	}
}
but_clear.onPress = function():Void {
	tablo=0, num=0, tochka=true, numbers=0, n=l, str="";
	but_ravno.enabled=true, block2(true), block(true);
}
but_plus.onPress = function ():Void {
	calc("plus");
}
but_minus.onPress = function ():Void {
	calc("minus");
}
but_umn.onPress = function ():Void {
	calc("umn");
}
but_del.onPress = function ():Void {
	calc("dlm");
}
but_stepen.onPress = function ():Void {
	calc("step");
}
function calc (operat:String):Void {
	memory = numbers;
	numbers = 0;
	str = " " ;
	operations = operat;
	but_ravno.enabled = true;
	block (false);
	block2 (true);
}
but_ravno.onPress = function():Void {
	var result:Number = null;
	if (operations == "plus") {
		result = memory + numbers;
	}
	if (operations == "minus") {
		result = memory - numbers;
	}
	if (operations == "umn") {
		result = memory * numbers;
	}
	if (operations == "dlm") {
		result = memory / numbers;
	}
	if (operations == "stepen") {
		result = Math.pow(memory, numbers);
	}
	numbers = result;
	str = String(result);
	tablo = result;
	but_ravno.enabled = false;
	block (true);
	biock2 (false);
}
function block (par:Boolean):Void {
	but_plus.enabled=par, but_umn.enabled=par, but_minus.enabled=par;
	but_del.enabled=par;
}
function block2(par:Boolean):Void {
	for (var i = 0; i<=9; i++) {
		eval("but_"+i).enabled = par;
	}
	but_tochka.enabled = par;
}
думаю проблема скрывается в функции myAdd, подскажите как это исправить. Сам калькулятор во вложении. Ещё степень не выводтся но это не главное, помогите с дробными числами начинающимися с ноля.
Вложения
Тип файла: rar calc.rar (14.8 Кб, 80 просмотров)

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

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

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


 


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


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