Форум 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=200865)

funkypanky 08.06.2013 16:16

помогите сделать всплывающие очки!
 
Вложений: 1
Всем привет!:)
Тестирую появление всплывающих очков, которые должны единожды появляться в определённое время при нажатии на кнопку(в моём случае когда FPS достигает отметки 40).
Но чую допускаю ошибку при написании кода--> когда счётчик стоит на отметке 40, экземпляры очков создаются постоянно. Подскажите пожалуйста как это исправить, чтобы стоя на отметки 40, очко появилось только один раз.

Вот сам код(пишу во Flash cs6), на сцене создаю три объекта с именами "mRect", "mBut" , "fpsText" и mScore", являющийся классом scor:
Исходник прилагаю.
Код:



       
Код AS3:

       
 
 
mRect.addEventListener(Event.ENTER_FRAME, loop);
function loop(e:Event):void{
        mRect.rotation += 5;
        fpsText.text = "FPS:"+(stage.frameRate).toString();
        if (stage.frameRate ==40){       
        score();
        }                                                       
}
 
mBut.addEventListener(MouseEvent.CLICK, onMouseclick);
 
function onMouseclick(e:MouseEvent):void{
 
        stage.frameRate++;       
}
 
 
function score():void{
        var mScore:scor = new scor();
        mScore.x =mRect.x;
        mScore.y =mRect.y;
        mScore.alpha = 1;
        addChild(mScore);
        mScore.addEventListener(Event.ENTER_FRAME, scoreMove);
}
function scoreMove(e:Event):void{
        e.target.y -=1;
        e.target.alpha-=0.01;
 
        }





XoJlToH 08.06.2013 17:40

Объявить переменную mScore, при выполнении необходимых условий запустить функцию создания и добавления на сцену. Функция создания должна проверить не существует ли уже переменная. Если не существует - функция выполняется, иначе - нет.
Код AS3:

var mScore:scor;
function createScore ():void
{
    if (mScore)
    {
          mScore=new scor();
          addChild(mScore);
    }
function disposeScore():void
{
    if (mScore)
    {
        reomveChild(mScore);
        mScore=null;
    }
}


funkypanky 08.06.2013 22:36

Цитата:

Сообщение от XoJlToH (Сообщение 1137081)

Не совсем понял как надо..
Переменная должна быть типа scor, не булевая?
Код AS3:

var mScore:scor;

Какие условия нужно точно проверить - то что frameRate ==40 и наличие экземпляра mScore на сцене? и где эти две функции вставить тоже не совсем понял..


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

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