![]() |
копирование MovieClip ?
Допустим есть какой-то MovieClip, наприме, камушек mc_Rock.
Хотелось бы завести массив из таких объектов. Расставленных по экрану. Дублирование объектов, в АS3.0 работает совсем не так как в АS2.0. (Увы в поиски понятного мне хелпа по данному вопросу успеха не имели) Код:
import flash.display.*;Отображается лишь самый последний "камень". Извините за тупой вопрос. :rolleyes: Спасибо. |
Код:
var rocks:Array = new Array(); |
Xpb7
Спасибо огромное. Заработало. |
У Вас заработало, а у меня нет :(
здесь rocks - массив, а addchild, как я понял, должен делать дочерний объект. Нам нужен MovieClip, а в примере получается Array, а не MovieClip. Кроме того, как именно нужно "слинковать"? Можно рабочий пример? |
|
Спасибо, помогло. Я раньше не помещал картинки в библиотеку. Теперь вижу, что это очень удобно.
С помощью примеров разобрался, что и как линковать. Ещё раз спасибо. |
Ну, вообще говоря, название темы не совсем точное. Одно дело создать n-ое кол-во экземпляров класса и совсем другое - создать экземпляр класса, изменить в нем свойства, а потом создать клон уже измененного экземпляра класса.
Грубо говоря, вот ваш случай: Код:
var objectsHolder:Array = new Array();Код:
var user:Object = new Object(); |
копирование MovieClip - вот какая тема.
Лично меня интересовало в первую очередь как раз _визуальное_ копирование, то есть программное или при помощи действий юзера появление копии MovieClip в разных координатах окна. Вот и всё. Так что приведённые выше примеры не совсем подходят, в них нет ничего визуального и к MovieClip они мало адаптированы пока. Нужно поработать. "objectsHolder:Array" - я так понял, этот массив может быть как массивом MovieClip`ов, так и массивом объектов? И это определяется автоматом? Или при чём тут Array? Или это просто массив чисел? Вот что меня интересует. |
Почему это ?
Цитата:
Причем тут Array? Пример: Вам надо создать 4 Sprite с именами "dog", "cat", "ball", "food". Варианты: 1. создать 4 переменные и не парится (НО! А если их будет N ? :)) 2. перебирать их через getChildByName("имя") - вы запомните N имен? Как раз для этого вы и создаете массив, который в себе хранит ссылки на объекты, чтобы обращаться к ним просто и легко. Попробуйте все 3 варианта, думаю, вам станет ясно. ps: Код:
var arr:Array = new Array(); |
Как я и говорил:
"objectsHolder:Array" - я так понял, этот массив может быть как массивом MovieClip`ов, так и массивом объектов? И это определяется автоматом." Теперь ясно. :) Хорошо, что не надо писать Array of Objects или Array of string То есть, потом обращаемся просто objectsHolder[0], objectsHolder[1], objectsHolder[i], так? а как приатачить это имя к DisplayObject`ам? то есть чтобы начать показывать какой-то мувик или спрайт? |
Цитата:
Цитата:
Цитата:
Код:
addChild(objectsHolder[0]); // скажем |
хорошо, но если Sprite или MovieClip не показывался до этого на экране и не имел х,у. Разве addChild для него добавит его в класс DisplayObject ??
хм |
Господи, ну а в as2, при использовании attachMovie что не добавлялись на сцену? :)
Дефолт-то везде {x:0, y:0} |
!О_О! Эти буквы разрывают мне мозг...
Представьте, что на экране нет ничего. Маленький одинокий кружочек, превращённый в MovieClip и которому сделали Linkage, лежит в библиотеке. К его свойствам я обратиться не могу. Могу создать что-то типа var aaa:MovieClip = NEW MovieClip; Это будет работать и это будет чистый MovieClip с координатами 0,0. Возможно, я даже смогу нарисовать кружок в первом кадре, сделать его невидимым, а его child`ы делать видимыми в разных координатах. Но если именно из библиотеки, вот так? Пишу trace (aaa.x); нажимаю ctrl+enter и получаю 1119: Access of possibly undefined property x through a reference with static type Class. WAH?? Я-то понимаю, что у него нет x и y, и на экране он не показывается. Как же мне его из library "достать" ? |
может потому что некий объект в библиотеке является классом, а не экземпляром класса?
|
var bbb:aaa = new aaa;
addChild(bbb); bbb.x=100; bbb.y=100; Всё работает. Плачу от счастья, бью низкие поклоны... |
[quote=ulik;757743]
скоро придется :) [quote] Не придется |
что-то я запутался. подскажите пожалуйста. у меня есть сложный объект, наследник MovieClip внутри которого есть в том числе массив других наследников MovieClip в свою очередь хранящих картинки... по идее битмапы но не факт.
мне нужно скопировать экземпляр этого сложного объекта N раз в массив... так чтобы каждой копии этого оригинального экземпляра можно было так же менять некоторые свойства. ну или хотябы чтобы делая addChild у меня на экран выводился не последний объект, а все. |
| Часовой пояс GMT +4, время: 19:47. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.