PDA

Просмотр полной версии : помогите сделать всплывающие очки!


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

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



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, при выполнении необходимых условий запустить функцию создания и добавления на сцену. Функция создания должна проверить не существует ли уже переменная. Если не существует - функция выполняется, иначе - нет.

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
Не совсем понял как надо..
Переменная должна быть типа scor, не булевая?
var mScore:scor;
Какие условия нужно точно проверить - то что frameRate ==40 и наличие экземпляра mScore на сцене? и где эти две функции вставить тоже не совсем понял..