Dans une tentative d'organiser mon code, j'essaie de diviser ma classe de contrôleur principal (long) en fichiers séparés, mais mes nouveaux fichiers doivent toujours avoir accès aux variables et fonctions de la classe de contrôleur principal. J'essaie de couper et coller du code de ma classe de contrôleur dans une nouvelle classe/fichier, permettant à la classe de contrôleur d'appeler la nouvelle classe, et permettant à la nouvelle classe d'accéder aux propriétés et à la fonction de la classe de contrôleur.Organisation de longs scripts dans des fichiers séparés?
En supposant que je ne suis pas tout à fait matraquer modèles de conception appropriés, ci-dessous est ma tentative infructueuse à l'accomplissement de cette tâche:
package
{
import flash.display.Sprite;
import flash.events.Event;
public class Test extends Sprite
{
public var myString:String;
public function Test()
{
if (stage)
init(null);
else
addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(evt:Event):void
{
if (hasEventListener(Event.ADDED_TO_STAGE))
removeEventListener(Event.ADDED_TO_STAGE, init);
/////////////// MOVE COMMENTED CODE TO NEW FILE ///////////////////////
//
// //Assign The String A Value
// myString = "Hello world";
//
// //Draw A Blue Square
// var sq:Sprite = new Sprite();
// sq.graphics.beginFill(0x0000FF);
// sq.graphics.drawRect(10, 10, 100, 100);
// sq.graphics.endFill();
// super.addChild(sq);
//
// //Call Tracer Function
// tracer();
//
//////////////////////////////////////////////////////////////////////
//Call pasted method in NewFile.as
NewFile.myNewFunction(); // <- this doesn't work
}
public function tracer():void
{
trace(myString);
}
}
}
nouveau fichier n'a pas accès à la classe Controller - ne fonctionne pas. comment puis-je écrire le nouveau fichier pour qu'il ait accès aux propriétés, fonctions, étapes, etc. de la classe Controller, comme si son code n'avait jamais été supprimé et était toujours à son emplacement d'origine.
package
{
public class NewFile
{
public static function myNewFuntion():void
{
//Assign The String A Value
myString = "Hello world";
//Draw A Blue Square
var sq:Sprite = new Sprite();
sq.graphics.beginFill(0x0000FF);
sq.graphics.drawRect(10, 10, 100, 100);
sq.graphics.endFill();
super.addChild(sq);
//Call Tracer Function
tracer();
}
}
}
semble que vous avez rencontré l'anti-modèle "The God class" – Allan