![]() |
|
||||||||||
|
|||||
|
Регистрация: Jul 2007
Сообщений: 102
|
Всем привет. Всю голову поломал, обыскал форум.. такая проблема - нужно скопировать детей мувиклипа, то есть имеем программно созданный клип clipmc к примеру, у него имеются дети clipmc.getChildAt(N) (тоже мувиклипы).., так вот в некоторый момент нужно создать новый клип (дублировать в другое место, причем чтоб первые не исчезал, именно копирование нужно), который является ребенком clipmc. Если кто знает помогите пожалуйста.
|
|
|||||
|
[+1 17.02.10]
Регистрация: Aug 2009
Адрес: Казахстан Усть-Каменогорск
Сообщений: 249
|
ммм... а если в функцию (создание ребенка) а потом трейсить её?
__________________
Flex+AS3 good) |
|
|||||
|
Регистрация: Jul 2007
Сообщений: 102
|
ээ, что-то не совсем понял.. ребенок не создается программно, он уже имеется в программно созданном клипе! Но вроде я уже нашёл решение, правда не знаю насколько оно индусское ))) так что с удовольствием выслушаю ещё ответов
![]() |
|
|||||
|
Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
|
есть клипы закинутые на stage в IDE, имена которых известны
задача - зная имя не класса, а его экземпляра породить такой же с помощью оператора new тоже копаю как получить класс экземпляра, если он не экспортирован для Actionscript ? |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 33
|
Цитата:
|
|
|||||
|
[+1 19.06.10]
[+1 27.07.10] Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
а что если сделать чонить типа так?
не на чем счаз проверить. но прицнип должен быть понятен: порождаем пустой объект и наделяем его свойствами существующего |
|
|||||
|
Регистрация: Feb 2010
Сообщений: 33
|
Цитата:
|
|
|||||
|
.
|
Не огорчайте ) "To get a list of fixed properties, use the describeType() function"
|
|
|||||
|
[+1 19.06.10]
[+1 27.07.10] Регистрация: Aug 2009
Адрес: UTC+2
Сообщений: 353
|
ну тогда делать
в зависимости от того, к какому классу принадлежит clipmc |
|
|||||
|
Регистрация: Feb 2009
Адрес: Ялта, Севастополь, Одесса
Сообщений: 52
|
Вот Вам более приземленный вопрос:
написал метод дублирующий клипы - работает на ура, но есть одна неприятность: свойство transform дублируется нормально (все значения совпадают), но дублированый клип на стейдже отображается без трансформации вот код: package com.elser.utils { import flash.utils.getDefinitionByName; import flash.utils.getQualifiedClassName; import flash.utils.describeType; import flash.xml.*; public class Factory{ public static function duplicate(instance:Object, clone:Boolean = false):*{ var instanceClass:Class = getDefinitionByName(getQualifiedClassName(instance)) as Class; var newInstance = new instanceClass(); if(clone){ var typeDescription:XML = describeType(instance); trace("-----------------------------------------------------> ACCESSORS"); for each (var typeProperty:XML in typeDescription.accessor){ if(typeProperty.@access == "readwrite"){ (newInstance as instanceClass)[typeProperty.@name] = instance[typeProperty.@name]; trace(typeProperty.@name+" : "+(newInstance as instanceClass)[typeProperty.@name]); if(typeProperty.@name == "transform"){ var typeD:XML = describeType((newInstance as instanceClass)[typeProperty.@name]); for each (var typeP:XML in typeD.accessor){ //вот тут все выводится так как надо!!! а на стейдже как будто без трансформа trace(" > "+typeP.@name+" : "+(newInstance as instanceClass)[typeProperty.@name][typeP.@name]); } } } } trace("-----------------------------------------------------> VARS"); for each (var typeVariable:XML in typeDescription.variable){ (newInstance as instanceClass)[typeVariable.@name] = nstance[typeVariable.@name]; trace(typeVariable.@name); } } trace(newInstance);//[object S2] return newInstance as instanceClass; } } } package com.elser.components.elements{ import flash.display.MovieClip; import com.elser.utils.Factory; public class S1 extends MovieClip{ protected var ps2:MovieClip; public function S1(){ super(); ps2 = getChildByName("s2") as MovieClip; var ttt:MovieClip = Factory.duplicate(ps2,true); trace(">> "+ttt);//[object S2] ttt.x = 100; ttt.y = 100; addChild(ttt as MovieClip); } } }
__________________
понимание основ освобождает от необходимости запоминания тысяч фактов |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:57. |
|
|
« Предыдущая тема | Следующая тема » |
|
|