function setLabel():void {
var cloneObject = UtilFunctions.clone(t_1) as VBox;
ticketList.push(cloneObject);
tickets.addChild(cloneObject);
}
私は t_1 id (id は VBox のプロパティです) を取得しており、彼に含まれるすべて (すべての子コンテナー) もコピーされ、配列に保存され、最終的にいくつかのビジュアル コンテナーに追加されると思います。いくつかのビジュアルオブジェクトのコピーを作成しますが、それは機能しません。それが可能かどうか疑問に思っています。私が考える他の解決策は、それをモジュールに配置し、動的にモジュールを作成してdisplayListに追加することです。ヒントを教えてください。また、どちらが速いですか?
**UPDATE**
package library
{
import flash.utils.describeType;
import flash.utils.getDefinitionByName;
import flash.utils.getQualifiedClassName;
public class UtilFunctions
{
public static function newSibling(sourceObj:Object):* {
if(sourceObj) {
var objSibling:*;
try {
var classOfSourceObj:Class = getDefinitionByName(getQualifiedClassName(sourceObj)) as Class;
objSibling = new classOfSourceObj();
}
catch(e:Object) {}
return objSibling;
}
return null;
}
public static function clone(source:Object):Object {
var clone:Object;
if(source) {
clone = newSibling(source);
if(clone) {
copyData(source, clone);
}
}
return clone;
}
public static function copyData(source:Object, destination:Object):void {
//copies data from commonly named properties and getter/setter pairs
if((source) && (destination)) {
try {
var sourceInfo:XML = describeType(source);
var prop:XML;
for each(prop in sourceInfo.variable) {
if(destination.hasOwnProperty(prop.@name)) {
destination[prop.@name] = source[prop.@name];
}
}
for each(prop in sourceInfo.accessor) {
if(prop.@access == "readwrite") {
if(destination.hasOwnProperty(prop.@name)) {
destination[prop.@name] = source[prop.@name];
}
}
}
}
catch (err:Object) {
;
}
}
}
}
}