Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   стильный калькулятор, проблема с точкой (http://www.flasher.ru/forum/showthread.php?t=113654)

Sintesis 04.07.2008 19:12

стильный калькулятор, проблема с точкой
 
Вложений: 1
начал изучать экшн скрипт, добрался до создания калькулятора всё вроде-бы получилось только калькулятор проблемный вышел - точка десятичной дроби конфликтует с нулём :( вот код:
Код:

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, подскажите как это исправить. Сам калькулятор во вложении. Ещё степень не выводтся но это не главное, помогите с дробными числами начинающимися с ноля.

RealShat 04.07.2008 20:27

Я так понимаю, калькулятор из книжки Гурского. Если да, то посмотрите на диске который был с ней в комплекте.

Sintesis 04.07.2008 20:48

Да, правильно код с неё, но я её в и-нете скачал, а приложения к ней не нашол.
Может быть кто-то знает где можно скачать приложение к книжке Дмитрия Гурского "Action Script 2.0"? Дайте пожалуйста ссылку

Mnilionic 05.07.2008 04:24

хм... а у меня книжка куплина, а диска, собаки, не дали.

Sintesis 05.07.2008 04:39

ха эт конечно ещё хуже, а ты калькулятор делал по ней? Всё работает?

Mnilionic 05.07.2008 04:48

нее... я калькулятор делал в пятой версии флеша 9 лет назад.
А чего толку от твоего swf, проект давай.

Sintesis 06.07.2008 01:02

Вложений: 1
Цитата:

Сообщение от Mnilionic (Сообщение 750186)
нее... я калькулятор делал в пятой версии флеша 9 лет назад.
А чего толку от твоего swf, проект давай.

9 лет во флэше это сильно, вот проэкт

iNils 07.07.2008 04:19

Удалил флейм.


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

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