![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Загружаю картинку, и вывожу на экран в цикле со смещением координат, но в итоге получаю картинку в последних координатах.
ЧТо нужно? Паузу в цикл? или в принципе делаю не правильно? package { import flash.display.Sprite; import flash.text.TextField; import flash.display.DisplayObject; import flash.events.Event; public class Main extends Sprite { public var spr:Array=new Array(); public function Main():void { if (stage) init(); else addEventListener(Event.ADDED_TO_STAGE, init); } public function init(e:Event = null):void { var i:int; [Embed(source="logo.png")] var symbol_logo:Class; [Embed(source="sprit1.png")] var symbol_kadr_1:Class; var logo:DisplayObject=new symbol_logo(); spr[1] = new symbol_kadr_1(); var koorlog_x:int = 0, koorlog_y:int = 0; for (i = 0; i < 20; i++) { addChild(spr[1]); spr[1].x = koorlog_x; spr[1].y = koorlog_y; koorlog_x += 1; koorlog_y += 1; } } } } |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы же и не создавали несколько картинок, откуда они возьмутся? Вы создали одну и двигаете ее в цикле.
spr[i] = new symbol_kadr_1(); addChild(spr[i]); spr[i].x = koorlog_x; spr[i].y = koorlog_y; ИЛИ Вы надеялись увидеть движение картинки по диагонали?))))) Изображение сцены не обновляется, пока не будет выполнен весь код, относящийся к текущему "кадру". Это же естественно. Сначала надо просчитать все изменения положений и размеров объектов, а потом уже их отображать)) Поэтому сначала цикл полностью выполнится и картинке будут присвоены конечные координаты, и только после этого будет отображение. Подписывайтесь на событие ENTER_FRAME, чтобы изменять координаты картинки перед каждым отображением.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 11.06.2012 в 13:06. |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Да, надеялся увидеть движение)
ну ок добавляем stage.addEventListener(Event.ENTER_FRAME, moveF); function moveF(e:Event):void { //тут цикл с прорисовкой. } Добавлено через 2 минуты Так, с прыганьем понял суть своей глупости цикл из функции убрал, все двигается плавненько и по 1пикселю. но как убрать бесконечную зацыкленность? Добавлено через 7 минут И в догонку: Я могу на одну сцену вывести несколько одинаковых обьектов? |
|
|||||
|
Цитата:
Цитата:
__________________
http://www.chessmax.ru |
|
|||||
|
|
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Цитата:
Добавлено через 2 минуты Цитата:
|
|
|||||
|
Цитата:
stage.addEventListener(Event.ENTER_FRAME, moveF); function moveF(e:Event):void; stage.removeEventListener(Event.ENTER_FRAME, moveF); this.addEventListener(Event.ENTER_FRAME, moveF); function moveF(e:Event):void; this.removeEventListener(Event.ENTER_FRAME, moveF); Цитата:
__________________
http://www.chessmax.ru |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Цитата:
А как теперь опять запустить туже функцию? с начала. просто добавив stage.addEventListener(Event.ENTER_FRAME, moveF); function moveF(e:Event):void; stage.removeEventListener(Event.ENTER_FRAME, moveF); stage.addEventListener(Event.ENTER_FRAME, moveF); Добавлено через 8 минут Цитата:
Последний раз редактировалось fduch; 11.06.2012 в 20:25. |
|
|||||
|
Цитата:
Судя по Вашему коды Вы пытаетесь добиться цикличности? Нужно просто выставить координаты картинки в начальные: Цитата:
И правильней будет, если Вы заведете локальную переменную, а не будете постоянно дергать объект из массива по индексу:
__________________
http://www.chessmax.ru Последний раз редактировалось Inet_PC; 11.06.2012 в 20:38. |
|
|||||
|
Регистрация: Jun 2012
Сообщений: 142
|
Цитата:
На данно этапе я хочу написать простенькую игру две биты на поле сверху и снизу, и по полю летает шарик, биты его соответственно отбивают.. Дык вот когда бита НЕ отбивает, и шар пролдетает, надо остановить мув, выдать инфу об очках, и выставив шар в центр продолжить! Все зделано, за исключением тока, что либо нет паузы, между вылетом шара и началом новой партии, либо шар останавливается и усе.... Вот вопрос var textA:TextField = new TextField(); textA.text = "AI: " + b1_shone + " Игрок: " + b2_shone; textA.x = 90; textA.y = 90; addChild(textA); Как задать это "окно"? и можно ли текст накладывать типа по маске, чтобы не затирать то что под ним? |
![]() |
![]() |
Часовой пояс GMT +4, время: 04:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|