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

AQUAFRESH 03.07.2009 18:17

задержка
 
Как сделать задержку в AC3 ??? (только без таймера)

willis83 03.07.2009 18:20

чем таймер не угодил?
Поставьте условие на таймстамп

Добавлено через 2 минуты
хотя условие на таймстамп это извращение. создайте функцию которая будет исполняться покадрово и в ней переменную которая будет увеличиваться. И условие.

kackbip 03.07.2009 19:06

setTimeout и setInterval

AlexDesinger 03.07.2009 19:09

setInterval
Timer
Tween

а для чего вам задержка?
обычно когда мне требовалась задержка, все решалось с помощью правильного использования событий.

AQUAFRESH 03.07.2009 19:49

Код AS3:

 
function  TimeDelay(delay:Number):void{
 
                        var Start:Number = new Date().getTime();
                        var Now:Number;
 
                        while(true)
                        {
                                Now = new Date().getTime();
                                if( Now - Start >= delay)
                                break;
                        }
                }


я вот такую функцию написал... но оно слишком тормозит както....

А Timer выполняеться в отдельном потоке во флеше ?

iflamberg 03.07.2009 19:51

конечн такая функция подвисает =) Ты подвешиваешь флеш-плеер на все время выполнения.
>>А Timer выполняеться в отдельном потоке во флеше ?
Эм. Ну типа того

Psycho Tiger 03.07.2009 21:03

Хах))
Код AS3:

while(true)

- сильно)

Во флеше один поток. Если поставим таймаут даже на 1 мс - то он выполнит весь код ниже, после будет вызывать уже функцию в таймауте, даже если код "ниже" будет выполняться секунд 5-6.

AQUAFRESH 04.07.2009 02:01

я вот создал timer

Код AS3:

 
var repeat:int=2;
var delay:int=750;
var myTimer:Timer = new Timer(delay, repeat);
 
myTimer.addEventListener(TimerEvent.TIMER, timerHandler);
                        myTimer.addEventListener(TimerEvent.TIMER_COMPLETE, timerHandlerComplete);
 
 
function timerHandler(e:TimerEvent):void{
 
          trace(repeat);
                        if(!bombBlow)
                        {
                              ExplosivePicture = new Bitmap(blueFire);
 
                                                        ExplosivePicture.height=150;
                                                        ExplosivePicture.width=150;
 
                                                        ExplosivePicture.x=currentBombPositionX-60;
                                                        ExplosivePicture.y=currentBombPositionY-60;
 
                                                        stage.addChild(ExplosivePicture);
                                                        bombBlow=true;
                        }
        }
 
                function  timerHandlerComplete(e:TimerEvent):void{
 
                                                //        BombPicture = bombArr[0] as Bitmap;
                                                //        stage.removeChild(BombPicture);
                                                        stage.removeChild(ExplosivePicture);
                                                        bombBlow=false;
                trace(bombBlow)
                trace("таймер овер");
 
        }
 
 
 
if (wasdArr[Keyboard.SPACE])
                                {
                                        wasdArr[Keyboard.SPACE]=false;
 
 
                                                        var bitmap:Bitmap = new Bitmap(b);
 
                                                        stage.addChild(bitmap);
 
                                                        bombArr.push(bitmap);
                                                        exitBomb=false;uj
                                                        myTimer.start();
 
                                }


Получаеться на жимаю пробел. Функция выполняеться 2 раза.. а потом выполняеться 1 раз фунция Complite.

а когда я нажимаю второй раз и третий пробел уже таймер делает токо 1 повтор..
Немогу понять в чём прикол я ж repeat поставил 2.. Может у меня плохая уличная магия ))

Добавлено через 5 часов 37 минут
кароче я забил разбираться в чём там был прикол

сделал спомощью setInterval и clearInterval

BlooDHounD 04.07.2009 09:28

а счётчик за Вас кто сбрасывать будет?

AQUAFRESH 04.07.2009 17:23

где??? кого сбросить???


а ещё хотел спросить.

если напишу if(e.key = keyboard.space) setInterval(BombBlowInterval, Delay);

я нажал 2 раза бробел должны парельно бесконечно выполняться 2 функции..
почему первая заканчивает выполняться после того как я вызвал вторую ???

тоже загадка века (с)


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

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