0
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) {
                 ;
             }
         }
     }
 }
}
4

0 に答える 0