|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: May 2009
Сообщений: 34
|
как размножить родительскую картинку?
Пробую создать интерактивную сцену и упёрся в совершенно не понятную проблему.
Создаю базовую паркетную ячейку: package { import flash.display.*; public class FonImg extends MovieClip { var square:Shape = new Shape(); public function FonImg() { square.graphics.lineStyle(5, 0x009900); square.graphics.beginFill(0xff0000); square.graphics.drawRoundRect (0, 0, 200, 200, 10, 10); square.graphics.endFill(); addChild(square); } } } package { public class FonParket extends FonImg { var fona:Array = new Array(); public function FonParket() { for (var i:uint=0; i<3; i++) { fona[i] = square; fona[i].x = i * 200; } } } } package { import flash.display.*; public class MainFon extends MovieClip { var bazFon:FonParket = new FonParket(); public function MainFon() { addChild(bazFon); } } } Помогите пожалуйста разобраться, что я не так делаю. |
|
|||||
Регистрация: May 2009
Сообщений: 34
|
Спасибо, помогло.
|
|
|||||
Регистрация: May 2009
Сообщений: 34
|
В продолжение темы
Создав свой условный наборной паркетный пол решил его постоянно двигать, как конвейерную ленту. Дописал в класс исходной паркетины FonImg функцию проверки расположения и изменения её положения если вылезет далеко за окно отображения package { import flash.display.*; import flash.events.Event; public class FonImg extends MovieClip { public function FonImg() { graphics.lineStyle(5, 0x000099); graphics.beginFill(0xff0000); graphics.drawRoundRect (0, 0, 200, 200, 40, 40); graphics.endFill(); addEventListener(Event.ENTER_FRAME, Step_fonBground); // вызываю функцию которая проверяет не ушёл ли мой квадрат за -50 пиксел левее окна отображения // и если ушёл то возвратить его в позицию 500 по X координате } function Step_fonBground(event:Event):void { if (this.parent.x<= -50) { this.parent.x = 500; } } } } его нужно сделать не дочерним от FonImg, поэтому код изменил (а вот результат нет ) package { import flash.display.MovieClip; public class FonParket extends MovieClip { var fona:Array = new Array(); public function FonParket() { for (var i:uint=0; i<3; i++) { var duplikat_FonImg:FonImg = new FonImg(); fona[i] = duplikat_FonImg; fona[i].x = i * 200 + 100; // новый экземпляр класса FonImg установленный на 200 пиксел правее предыдущего addChild(this.fona[i]); // таким образом набирая паркет из отдельных плиток } } } } package { import flash.display.*; import flash.events.Event; public class MainFon extends MovieClip { var bazFon:FonParket = new FonParket(); public function MainFon() { addChild(bazFon); addEventListener(Event.ENTER_FRAME, Zsuv_fona); } function Zsuv_fona(event:Event):void { bazFon.x = bazFon.x - 1; // каждый раз сдвигаю весь класс FonParket // состоящий из отдельных экземпляров класса FonImg на 1 пиксель // и надеюсь что когда bazFon.x станет -50, то первая плитка экземпляра класса FonImg // поменяет свою позицию на 500 по Х } } } Помогите разобраться пожалуйста. Последний раз редактировалось p0okm; 24.11.2010 в 14:59. |
Часовой пояс GMT +4, время: 02:14. |
|
« Предыдущая тема | Следующая тема » |
|
|