![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Осваиваю ООП во Flash. Есть постоянная проблемма.
Допустим сделал клип, в его первом кадре создал свои свойства (т.е. var имя_свойства), свои методы (function имя_метода {...}), которые управляют поведением клипа (свойства _x, _y и т.д.) и его данными. Т.е. создал свой объект-клип (дальше [child]). [Как написано в прилагаемой к FLASH 5 документации - клип то же объект.] Теперь из клипа-родителя[parent] с помощью duplicateMovieClip наплодил несколько дочерних клипов, таких же как child: for(i=1; i<кол-во_нужных_клипов; i++) { оригинал.duplicateMovieClip("копия"+i,i); } И по идее хотелось бы вызывать методы всех этих размноженных клипов и использовать их свойства (те которые сам создал). Свойства то работают, работают так же и методы оригинала, т.е. клипа который был расположен на сцене в ручную. Но методы программно созданных клипов даже не вызываются. Конечно можно писать методы в клипе родителе (parent) с параметром, который передает нужный дочерний, объект клип, но код получается запутанным и теряется смысл ООП. Может есть у кого-нибудь есть простенький работающий пример, использования методов, программно размноженных объектов-клипов? Вышлите пожалуйста. Заранее благодарен.
__________________
Зеленков Н.П. |
|
|||||
|
Регистрация: Oct 2001
Адрес: Россия, Казань
Сообщений: 270
|
Ты что сделать-то хочешь?
Если методы клипов переопределить, то это impossible.
__________________
The war does not determine who is right. Only who is left. |
|
|||||
|
Конечная цель такова: управление клипом не набором свойств:
имя_клипа._visible=...; имя_клипа._rotation=...; имя_клипа.свое_свойство0=...; имя_клипа.свое_свойство1=...; ... а просто написать метод, что бы контролировать клип конструкцией вида: имя_клипа.имя_метода(список параметров); К примеру эффект фейерверка(Как то делал на C++/OpenGL). сейчас хочу реализовать во флэше. Изначально на сцене лежит только один клип "firework". Просто какой нибудь кружочек с радиальной заливкой или что то вроде звездочки. В нем определен метод "start" для запуска по направлению, скорости, цвету времени до взрыва и др. Так же есть методы для расчета шага полета, взрыва и др. После вызова метода "start" клип полетел в зависимости от параметров. В момент взрыва нужно вызвать метод "explosion", который размножит клип "firework" и запустит каждый экземпляр в случайном направлении (вызовет метод "start", для каждого из них). И если все делать в этом порядке, то получится так: "firework" полетит, но после взрыва, размноженные клипы останутся на месте(т.к. не сработают методы "start"). Эффект я конечно сделал(у меня zipа нет, просто переименуй файл в swf). Но попробовав быстро адаптировать его в другой проект столкнулся с трудностями.
__________________
Зеленков Н.П. |
|
|||||
|
2Aib
А если я переопределю, что мне за это будет? ![]() ![]() Щас придет john, вам такого расскажет ![]()
__________________
Фоторобот UltimateFlashFace: http://flashface.ctapt.de, Большой респект Артему Мельникову! |
|
|||||
|
некрофил
Регистрация: Mar 2002
Адрес: ...по колено в кровище...
Сообщений: 2,292
|
2Aib
Да, на твоем месте я бы поостерегся произносить такое вслух, да еще и громко... 2znick Создаешь массив со своими клипами clipStock = new Array();
for (var i = 0; i < _max; i++) {
yourClip.duplicateMovieClip("newName" + i, i);
clipStock.push(this["newName" + i]);
}
clipStock[_index].method_name(arguments);
__________________
...убивать людей не удовольствия ради, но для еды. |
|
|||||
|
Пишешь где угодно:
movieClip.prototype.Method=function(параметры) { суть метода. } И вызывай потом этот метод откуда угодно, поскольку метод теперь добавился к прототипу объекта мувиклип!
__________________
suum quique |
|
|||||
|
Некоторое уточнение: прототип надо изменить ДО использования нового метода в соответствии с порядком загрузки мувика ( например, если грузятся сначала верхние слои, а потом нижние - надо прототип изменять в высшем слое по отношению к слою с использованием метода )
__________________
suum quique |
|
|||||
|
Регистрация: Oct 2001
Адрес: Россия, Казань
Сообщений: 270
|
Ну, не знаю. Я, помниться, когда совершал подобное, ошибки не выдавались, просто всё вешалось и дело с концом. Я не спорю, может у Меня тогда просто что-то другое глючило...
Публичное сорри, больше не буду. ![]()
__________________
The war does not determine who is right. Only who is left. |
|
|||||
|
После компиляции в SWF нет информации о слоях.
Откуда сведения о порядке загрузке?
__________________
Зеленков Н.П. |
|
|||||
|
Смотри паблиш сеттингс. там можно устанавливать порядок загрузки ( лоад ордер: боттом ап и топ даун ).
__________________
suum quique |
![]() |
Часовой пояс GMT +4, время: 01:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|