Comment charger des objets de bibliothèque par liste de chaînes en utilisant Flash et AS3?
Je dois mieux comprendre les listes de chaînes, les tableaux et les sprites.charger des objets de bibliothèque par liste de chaînes, AS3
QU'EST-CE QUE JE VEUX FAIRE
ennemis de charge à l'étape en utilisant une liste de chaînes « boule orange, boule rouge, boule verte etc »
EXPLICATION
Les tutoriels que j'ai donné sont trop basique, ou sont incomplets des exemples qui n'expliquent pas les classes utilisées.
Les instructions de trace ne me montrent pas comment j'accède au nom ou à la classe d'un objet. J'ai besoin d'exemples. Classes non emballées préférées. Merci.
CE QUE JE TRAVAILLE OBTENU « Je savais que je confonds la classe et le nom »
propriétés du symbole
nom est ils pas le nom spécifique, j'appelle le mien noname »
classe est Pyramid
//Creates 10 enemies and trace statement
import flash.display.Sprite;
var sprites:Array = new Array();
for(var i:Number=0;i<10;i++){
//var test:Sprite = new Sprite();
var test:Pyramid = new Pyramid();
sprites.push(test);
addChild(test);
test.name = "littlebox_"+ i
trace(test.name)
with(test){
x=i*25;
}
}
///////////////////////////////////////////////////////////////////////
/*debu's example*/
//Creates 10 enemies
var enemyArray:Array = new Array();
for (var i:int = 0; i < 10; i++)
{
var noname:Pyramid = new Pyramid();
noname.x = i*10; //this will just assign some different x and y value depending on i.
noname.y = i*11;
enemyArray.push(noname); //put the enemy into the array
addChild(noname); //puts it on the stage
}
///////////////////////////////////////////////////////////////////////
//centered and trace statement
var sprite:Sprite;
var noname:Pyramid = new Pyramid;
//var noname:Pyramid2 = new Pyramid2;
sprite = new Sprite();
sprite.name = "Pyramid" + 1;
addChild(noname);
noname.x = stage.stageWidth/3;
noname.y = stage.stageHeight/3;
trace(getChildByName("Pyramid" + 1)); // [object Sprite]
alt text http://www.ashcraftband.com/myspace/videodnd/so___.jpg
PRÉCÉDENT MODIFIÉ
var enemyList:Object = new Object();
//var enemy:Sprite = new Sprite();
var enemy:BadGuy = new BadGuy();
enemy.name = "BadGuy";
enemyList [enemy.name] = enemy;
//var enemyList:Object = new Object();
//for (var i:int = 0; i < 10; i++) {
//var enemy:Sprite = new Sprite();
//var enemy:BadGuy = new BadGuy();
//enemy.name = "BadGuy" + i;
//enemyList [enemy.name] = enemy;
//}
//for (var i:String in enemyList){
//var enemy:Sprite = enemyList[i]
//do something to enemy sprite
//}
Cela semble correct. J'ai fait deux symboles et ai inversé le nom et la classe pour m'assurer. Pas d'erreur, ça ne montre rien. consultez mon lien. http://videodnd.weebly.com/ –
Oui, comme je l'ai dit, vous devez savoir comment lier un objet dans Flash à un nom de classe. Faites un clic droit sur votre objet 'ennemi' dans la bibliothèque Flash, et cliquez sur 'propriétés'. Ensuite, assurez-vous que 'export for ActionScript' est coché, et mettez un nom (en commençant par une majuscule) dans la case 'Class' - disons Badguy. Appuyez sur OK, il vous donnera un avertissement disant qu'il ne peut pas trouver une définition pour le chemin de la classe, car vous n'avez pas créé de fichier .AS réel pour cela - mais cela n'a pas d'importance pour l'instant. Une fois que vous avez fait cela, changez la ligne: var ennemi: Sprite = new Sprite(); à var ennemi: Badguy = nouveau Badguy(); Cela va le mettre en scène. – debu
Je vais vérifier les propriétés/classe à nouveau, merci. –