Question: Je veux savoir pourquoi je dois ajouter un addChild à ma classe de document et à la classe externe pour que mon clip de scoreBoard que j'ai correctement lié depuis ma bibliothèque apparaisse sur la scène . Si je supprime l'addchild de l'une ou l'autre classe, le code échoue. Le code fonctionne et j'obtiens le bon nombre de cas mais je ne comprends pas très bien pourquoi. Ce que je voulais faire, c'était simplement passer le nombre d'instances de la classe scoreBoard que je voulais à la classe ScoreBoard et créer des instances x en utilisant une boucle for dans la classe ScoreBoard externe. Au lieu de cela, j'ai été forcé de faire la boucle for de la classe de document. Toute aide est appréciée.Besoin d'aide pour comprendre AddChild Method
/*This is my Document Class*/
package {
import flash.events.Event;
import flash.events.MouseEvent;
import flash.display.*;// Import statement(s)
import flash.display.Stage;
//creates the 5 instances of my scoreBoard
public class Base extends MovieClip {
// Class Constructor
public function Base() {
//create an object of our ship from the Ship class
//add it to the display list
for(var cnti:int = 0; cnti< 5; cnti++){
//var myScoreBoard:ScoreBoard = new ScoreBoard();
var s = new ScoreBoard;
addChild(s);}
}
private function init() {
}
}
}
/*This is my external class */
package {
/*++++++++++++++
last modified 1/6/2010
class creates the scoreboard
*/
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.MouseEvent;
//the class
public class ScoreBoard extends MovieClip
{
private static var score = 0;
private static var curRow = 0;
private static var teamCounter = 0;
private static var teamScoreArray = new Array();
var teamScoreBoard:MovieClip = new teamScore(); //decalre the name property
//the constructor
public function ScoreBoard()
{ //makes instance of the class
teamScoreBoard.teamName.text = "Team "+[teamCounter+1];
teamScoreBoard.name = "Team "+[teamCounter+1];
teamScoreBoard.score.text = score;
teamScoreBoard.x = getXCoord();
teamScoreBoard.y = getYCoord(teamCounter);
trace(teamCounter);
teamScoreBoard.plus.addEventListener(MouseEvent.CLICK, plusBtnClickHandler);
teamScoreBoard.minus.addEventListener(MouseEvent.CLICK, minusBtnClickHandler);
teamCounter++;
this.addChild(teamScoreBoard);
}//end contructor
private function getXCoord():int
{
var xCoord:int;
xCoord = 100;
return xCoord;
}
private function getYCoord(someNum):int
{
var yCoord:int;
yCoord = 100 + someNum * 85;
return yCoord;
}
private function plusBtnClickHandler(event:MouseEvent):void
{
//var curRow = 0;
var pointValue = getPointValue(0);
//incriment the score
event.currentTarget.parent.score.text = score += pointValue;
}
private function minusBtnClickHandler(event:MouseEvent):void
{
//var curRow = 0;
var pointValue = getPointValue(0);
//incriment the score
//event.currentTarget.parent.score.text = score -= pointValue;
event.currentTarget.parent.score.text = score -= pointValue;
}
private function getPointValue(curRow):int
{
var pointValue;
switch(curRow){
case 0: pointValue = 100; break;
case 1: pointValue = 200; break;
case 2: pointValue = 300; break;
case 3: pointValue = 400; break;
default: pointValue = 500; break;
}
return pointValue;
}
}//end class
}//end package