2017-04-21 2 views
-1

Je suis assez nouveau pour as3, mais le jeu que je fais nécessite l'utilisation declones. Comment pourrais-je les faire (je sais que cela implique d'utiliser l'enfant mais je ne sais pas comment les faire)? J'ai également besoin de faire une fonction qui définit leur emplacement à des endroits aléatoires à l'écran, comment ferais-je cela? Je ne suis pas sûr de savoir comment je ferais référence aux emplacements x et y du clone sans qu'il bouge tous les 50 d'entre eux. MerciComment cloner un objet dans as3

Répondre

3

La meilleure façon de faire des clones de tout est d'attribuer la classe AS3 à l'élément de la bibliothèque (disons que vous avez nommé la classe QUELQUE CHOSE) et puis instancier avec le nouvel opérateur et ajoutez à afficher la liste avec addChild (...) méthode.

import SomeThing; 

// Lets create a list to keep things. 
var things:Vector.<SomeThing> = new Vector.<SomeThing>; 

function addThing():SomeThing 
{ 
    // Create. 
    var result:SomeThing = new SomeThing; 

    // Put it to a list for further reference. 
    things.push(result); 

    // Add it to display list. 
    addChild(result); 

    return result; 
} 

// Create one thing. 
// This one will go to (0,0) coordinates. 
addThing(); 

// You can create several things. 
for (var i:int = 0; i < 100; i++) 
{ 
    var aThing:SomeThing = addThing(); 

    aThing.x = 100 + 200 * Math.random(); 
    aThing.y = 100 + 100 * Math.random(); 
} 

// Now you can address things via list access. 
things[49].x = 50; 
things[49].y = 50; 
+0

@NealDavis Si le constructeur ne requiert aucun argument obligatoire, le caractère() peut être omis. C'est bien. – Organis