![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 39
|
Здравствуйте. Ситуация следующая: у меня имеется около десятка MovieClip'ов, которые мне нужно разместить на сцене. Как организовать их все в массив и потом через него же добавить на сцену? Буду раз любому совету. Спасибо.
|
|
|||||
|
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
ну как вариант
var _mcArray:Array = new Array(MovieClip1, MovieClip2, MovieClip3, MovieClip4..... ); var _mcXHolder:Array = new Array(x1, x2, x3, x4.....); var _mcYHolder:Array = new Array(y1, y2, y3, y4.....); for(var a=0;a<_mcArray.length;a++){ _mcArray[a].x = _mcXHolder[a]; _mcArray[a].y = _mcYHolder[a]; this.addChild(_mcArray[a]); } |
|
|||||
|
2other.one:
все хорошо, только вынести бы _mcArray.length в отдельную переменную, протипизировать a, и откастовать содержимое массива к типу перед определением им свойств.
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 39
|
Цитата:
Я делал так: package { import flash.display.MovieClip; import flash.display.DisplayObject; public class Engine extends MovieClip { public var object1:Object1; public static var objects:Array=new Array(); public function Engine() { objects.push(object1); addChild(objects[1] as DisplayObject); } } } package { import flash.display.MovieClip; import flash.display.Stage; import flash.events.Event; public class Main extends MovieClip { private var object:Object; public static var objectList:Array=new Array(); public function Main() { addEventListener(Event.ENTER_FRAME, loop); } private function loop(e:Event):void { if ((Math.random()*10)>9.7) { object=new Objetc(stage); objectList.push(object); stage.addChild(object); } } } } |
|
|||||
|
Цитата:
Цитата:
конечно он будет выдавать ошибку - в arr у нас же ничего нету, а должны быть все мувиклипы. Цитата:
вот только на стейдж прямиком не надо добавлять детей. Плохой стиль. Накатал пример. package { import flash.display.Shape; import flash.display.Sprite; /** * ... * @author FluFme */ public class MyTest extends Sprite { /** * Constuctor */ public static const COUNT:int = 5; public function MyTest() { var i:int = COUNT; var arr:Array = []; while (i--) { arr.push(newSprite()); } trace(arr); //забили массив i = COUNT; var mc:Shape; while (i--) { mc = arr[i] as Shape; mc.x = Math.random() * 300; mc.y = Math.random() * 300; addChild(mc); } } /** * Просто рисует фигурку. * @return и возвращает её */ private function newSprite():Shape { var c:Shape = new Shape(); c.graphics.beginFill(Math.random() * 0xFFFFFF, 1); c.graphics.moveTo(0, 0); c.graphics.lineTo(Math.random() * 200, Math.random() * 200); c.graphics.lineTo(Math.random() * 200, Math.random() * 200); c.graphics.lineTo(Math.random() * 200, Math.random() * 200); c.graphics.lineTo(0, 0); return c; } } }
__________________
Тут мужик танцует и поёт про флэш |
|
|||||
|
Регистрация: Sep 2009
Сообщений: 39
|
Большое спасибо за помошь, Psycho Tiger и other.one.
|
|
|||||
|
У меня не получается добавить мувики в массив, а потом оперировать ими
![]() import com.greensock.*; import com.greensock.easing.*; var arr:Array= new Array();//создание for (var i=0; i<=1; i++) { arr.push(["d"+i]); //добавление (mc - ссылка); trace(arr[i]); } for (var m=0; m<=1; m++) { TweenLite.to(arr[m], 1, {x:261, y:222, ease:Cubic.easeInOut}); } ![]() Покажите, пожалуйста, что не так. Добавлено через 2 часа 36 минут Решил проблему следующим кодом: |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:28. |
|
|
« Предыдущая тема | Следующая тема » |
|
|