PDA

Просмотр полной версии : копирование объекто


Alessanderovez
19.04.2004, 09:59
я всё понимаю про вашу реакцию ивидев этот вопрос, но прошу понять меня и помочь чем можете......
у меня есть объекты на определённом кадре.
на первом же кадре я выбираю какой объект мне нужен из списка имеющихся (это я сделал), но как сделать так чтобы тот объект (который мы выбираем) не сам перемещался, а его копия плюс со всеми свойствами родителя, но при этом все новые объекты(созданные) должны получить уникалное имя.
Пробовал с duplicateMovie но ни фига не получается, как ещё-то????????я уже запапрился делать это вторую неделю, помогите пожал-ста-)!!!!!!!!!!!!!!!!!!!!!!!!!
заранее благодарен!!!!!!!!!

Dindin
19.04.2004, 11:49
Что ты понимаешь под наследованием свойств? Какие свойства имеет объект? В чем проблема с duplicateMovie? А лучше всего - исходник выложи :)

Iv
19.04.2004, 12:02
1) объект и мувиклип - разные вещи. то ты выбираешь объект, а потом копировать собираешься мувиклип...
2) что значит со свойствами родителя? это если мувик в руте, то со свойствами рута? или все-таки со свойствами мувиклипа-образца?

но вроде как включив телепатию, можно догадаться, что тебе нужно создать на сцене мувиклип по образцу выбранного.
для таких целей удобно пользоваться классами. Хм. но судя по вопросу нужно искать другие пути.

да простят меня ООП боги.
итак, вознеся хвалу за хороший урожай, поехали:
выбранный мувиклип - _root.main_mc
желаем получить _root.instance1_mc (в следующем кадре? странно это)
main_mc залинкован в библиотеке под именем "main_mc"

_root.obj_container = {}
_root.counter = 0
_root.max_depth = 0

_root.main_mc.onRelease = function () {
var i = ++_root.counter
var obj = _root.obj_container ["obj"+_root.counter] = {}

// это Linkage-имя в библиотеке, ты должен его задать:
obj.linkage_name = this.linkage_name


obj._name = "instance"+i+"_mc"

// копируем нужные свойства
obj._x = this._x
obj.any_property = this.any_property
// .............................. и т. д.

}

в итоге после клика на main_mc в _root.obj_container образуется объект с уникальным именем.

и раз оочень нужно все делать во втором кадре, то идем во второй кадр,


for (i in _root.obj_container) {
_root.max_depth ++
_root.attachMovie(_root.obj_container[i].linkage_name, "", _root.max_depth, _root.obj_container[i])
}

вот. примерно так

Alessanderovez
19.04.2004, 12:16
ну в смысле у меня есть изображения мостов, шлюзов, концентраторов и т.д. и выполнил в флэше я в виде кнопок, т.к. мне надо их таскать по рабочей области(составлять из них схемы межсетевого взаимодействия)

Dindin
19.04.2004, 12:22
BitSky достаточно точно ответил на твойс вопрос - при дублировании (прикреплении) мувиклипа можно передавать параметры вновьсозданному мувиклипу одним объектом. (либо его элементами,

_root.attachMovie('linkageName','instanceName', depth,{param1: value, param2: value...})
В общем то то же самое, но у BitSky, имхо, лучше - он передает все параметры в заранее созданном объекте.

Iv
19.04.2004, 12:23
:D

Iv
19.04.2004, 12:26
я такие вещи делаю через xml - все равно потом на сервер постить.
представленный код никоим образом не отражает тех реалий, которыми я пользуюсь, а несет в себе задачу быть прежде всего понятным реципиенту.

Alessanderovez
19.04.2004, 12:30
спасиба огромное всем :) !!!!!!

Alessanderovez
19.04.2004, 12:33
Вы шибко то не смейтесь я с флэшем не владах пока ещё, я на дельфях всё время работал :cool: :)

Iv
19.04.2004, 12:35
соррь если обидел... не желал того.
не знание не порок. порок нежелание учиться.
все придет.

Alessanderovez
19.04.2004, 12:37
да ладно чё там ....всё равно спасибо огромное!!!!!!!!!!! :)

Dindin
19.04.2004, 12:39
2BitSky, честно говоря, то как я пишу на форуме и для дела - две большие разницы, ибо скрипты у меня в конечных продуктах идут через __bytecode__()
:) А этого народ, я думаю, не поймет.

2Alessanderovez над тобой не смеются, просто Bitsky радуется "удивительной и нерушимой солидарности флэшеров" :)

Alessanderovez
19.04.2004, 13:01
да ладно чё там ....всё равно спасибо огромное!!!!!!!!!!! :)