Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Простой счётчик. (http://www.flasher.ru/forum/showthread.php?t=212590)

Comer 21.03.2016 09:51

Цитата:

Сообщение от KiL33 (Сообщение 1192830)
как то так

Спасибо Вам большое! Мне не хватило мозгов додуматься вот до этой строчки:
Код AS3:

var count:uint = uint(myTF.text)+n;


caseyryan 21.03.2016 11:01

Цитата:

Сообщение от Comer (Сообщение 1192837)
Спасибо Вам большое! Мне не хватило мозгов додуматься вот до этой строчки:
Код AS3:

var count:uint = uint(myTF.text)+n;


Ну а если там будет не uint? Эта строчка чревата багами в программе. uint или unsigned integer (целое беззнаковое) это положительное целое число. Если там будет отрицательное (по какой-то причине), то результат будет очень странный. Лучше использовать parseInt(myTF.text)+n;[

Comer 21.03.2016 11:37

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

Сообщение от caseyryan (Сообщение 1192838)
Ну а если там будет не uint? Эта строчка чревата багами в программе. uint или unsigned integer (целое беззнаковое) это положительное целое число. Если там будет отрицательное (по какой-то причине), то результат будет очень странный. Лучше использовать parseInt(myTF.text)+n;[

Понял. Учту. Спасибо!
Тут у меня теперь новая головная боль. Пытаюсь сохранить последнее число, чтобы при повторном открытии ролика оно появилось на экране. Но что-то я, видимо, не то делаю. Не появляется! Может поможешь? Я вложил swf, чтобы ты мог посмотреть.

Код AS3:

var n:uint=5;
myTF.text=n+"";
myBtn.addEventListener(MouseEvent.CLICK,onClick);
function onClick(e:MouseEvent):void {
var count:uint = parseInt(myTF.text)+n;
myTF.text=count+"";
}
 
 
var sharedObj:SharedObject = SharedObject.getLocal("frameSave");
 
 
save_mc.addEventListener(MouseEvent.CLICK, save_click);
load_mc.addEventListener(MouseEvent.CLICK, load_click);
 
 
function save_click(e:MouseEvent):void
{
        sharedObj.data.frameNum = parseInt(myTF.text);
        parseInt(myTF.text);
        trace("Сохранёно число", sharedObj.data.frameNum );
}
 
function load_click(e:MouseEvent):void
 
        {
                parseInt(myTF.text);
                trace("Загружено число", sharedObj.data.frameNum);
        }


caseyryan 22.03.2016 08:41

Цитата:

Код AS3:

function load_click(e:MouseEvent):void
 
        {
                parseInt(myTF.text);
                trace("Загружено число", sharedObj.data.frameNum);
        }


Что ты пытаешь сделать здесь? У тебя просто парсится то, что есть текстовом поле на данный момент. Но с результатом ничего не делается.
Тебе нужно записать в текстовое поле то, что у тебя есть в шерд объекте
То есть что-то типа этого:
Код AS3:

myTF.text = sharedObj.data.frameNum.toString();

Вот, написал тебе простой пример счетчика с сохранением.
Обрати внимание, что тут значение получается не из текстового поля, а хранится в отдельной переменной.
Код AS3:

package {
        import flash.display.Sprite;
        import flash.events.MouseEvent;
        import flash.net.SharedObject;
        import flash.text.TextField;
 
 
        public class SimpleCounter extends Sprite {
 
 
                private static const SHARED_OBJECT_NAME:String = "counter";
 
                private var _tf:                        TextField                = null;
                private var _value:                        int                                = 0;
                private var _sharedObject:        SharedObject        = null;
 
                public function SimpleCounter() {
                        stage.addEventListener(MouseEvent.CLICK, onClick);
 
                        _sharedObject        = SharedObject.getLocal(SHARED_OBJECT_NAME);
                        // при загрузке приложения, проверяем сохранено ли что-то в куках
                        if (_sharedObject.data.hasOwnProperty("counterValue")) {
                                _value = _sharedObject.data.counterValue;
                        }
 
                        _tf                        = new TextField();
                        _tf.text                = _value.toString();
                        addChild(_tf);
                }
 
                private function onClick(e:MouseEvent):void {
                        _value ++;
                        // сохраняем
                        _sharedObject.data.counterValue = _value;
                        _tf.text = _value.toString();
                }
 
        }
 
}

Если ты не вводишь в него значение вручную, то лучше сделать именно так.

Comer 22.03.2016 17:02

Цитата:

Сообщение от caseyryan (Сообщение 1192848)
Если ты не вводишь в него значение вручную, то лучше сделать именно так

Ух ты! Сам бы я до такого кода не додумался. У меня ещё не так много знаний. Но, как говорится, век живи - век учись. Спасибо тебе за урок и помощь!
Классный форум! Доброжелательные форумчане! Пусть всё у вас будет хорошо!


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

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