![]() |
ActionScript: Просьба о помощи.
ребята, подскажите пожалуйста, можно ли во флеше программно сделать так: сначало рисую один квадрат, потом через несколько секунд другой.
|
да, такое конечно возможно.
тебе с чего начать объяснять, как рисовать квадрат или как отследить событие его нарисовывания, чтобы начать рисовать слудующий? |
Нет, квадраты я в цикле рисую. Вот так:
x=0; y=0; a=40/5; b=40/5; this.createEmptyMovieClip("square_mc", this.getNextHighestDepth()); _root.muv.setMask (square_mc); for (i=0; i<=a; i++) { for (n=0; n<=b; n++) { square_mc.beginFill(0xFF0000); square_mc.moveTo(x, y); square_mc.lineTo(x+a, y); square_mc.lineTo(x+a, y+b); square_mc.lineTo(x, y+b); square_mc.lineTo(x, y); square_mc.endFill(); x=x+2*a; } y=y+2*b; x=0; } |
function drawRect(RectX,RectY){
//Прорисовка квадратика с координатами RectX,RectY... } nint = setInterval(drawRect,ВРЕМЯ_ЗАДЕРЖКИ,X_квадратика,Y_квадратика); (например, так: setInterval(drawRect,100,10,10)); //Чтобы очистить интервал - очищаешь по его ID (параметр nint) - в нужном месте clearInterval(nint); :) |
C setInterval лучше не связываться... Лучше сделать примерно так:
MovieClip.prototype.drawSquares=function(sec){ this.time=0 this.sqNum=0 <рисовать квадрат> this.onEnterFrame=function(){ if(this.time==(sec)*(<твое кол-во фрэймов в секунду>)){ <рисовать квадрат> this.time=0 this.sqNum++ } if(this.sqNum==<необходимое кол-во квадратов>){ delete this.onEnterFrame } this.time++ } } _root.createEmptyMovieClip("squares",0) _root.squares.drawSquares(<интервал между рисованием>) Сорри если не заработает - у меня под рукой не было флэш - редактора и код я не проверял... Но я думаю ты разберешься. |
Цитата:
|
проверенно на ёжиках...
сет интервал работает с меньшим потреблением ресурсов... |
Может быть для немудренного использования этот метод и работает нормально, но для мудреных кодов... Я это из опыта говорю - зайди на мой сайт - tie-games.narod.ru и посмотри там игру сапер - квадратики там открываются через интервал - если бы ты знал, как долго я трахался с методом setInterval... В общем я так и не понял, в чем была ошибка - с началом игры заново этот метод продолжал выполняться, хотя я его убивал перед этим незнаю сколько раз... В общем я плюнул и написал свою функцию паузы и воспользовался ею...
|
извини... а как ты его убивал??)))
|
clearInterval и delete пробывал, а так же пробывал убивать объект, из которого запускал этот метод
|
| Часовой пояс GMT +4, время: 18:37. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.