![]() |
|
||||||||||
|
|||||
|
Регистрация: 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, время: 06:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|