как в конструктор
без рекурсии передать переменную в которой хранится экземпляр класса . Сама эта переменная хранится в другом классе. Здесь у меня вообще бардак т.к. я уже всяко пробовал делать. Первый класс - основной. Подскажите пожалуйста выход из этой ситуации. да и сразу предупреждаю не осуждать большое кол-во параметров в конструкторе CreateButton(это для тех кто такое не любит, а мне так удобно).

Код AS3:
package p {
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.text.*;
import flash.display.Sprite;
public class Application extends MovieClip {
public function Application() {
trace("Конструктор основного класса Application");
addChild(_panel); //Надо как-то соответствующе обращаться к
addChild(_glav0); //этим переменным(они принадлежат классу Ref)
}
}
}

Код AS3:
package p{
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.text.*;
import flash.display.Sprite;
public class Panel extends Sprite {
public function Panel() {
addChild(new CreateButton("Главная", 13, 0x000000, "Times New Roman", true,
false, 0, 0, 100, 20, TextFieldAutoSize.NONE,
TextFormatAlign.CENTER, true, 0xdf6415, true, 0x000000,
true, _glav0)); // Здесь тоже.
}
}
}

Код AS3:
package p {
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.text.*;
import flash.display.Sprite;
public class Glava0 extends Sprite {
private var biology;
private var ch1;
public function Glava0() {
trace("Класс-контейнер для содержимого Главной страницы - Glava0");
biology = new CreateButton('Интерактивный\n курс\n\n "Биология\n\n 8 класс"',
28, 0x00ff00, "Segoe Print", true, false, 90, 40,
100, 100, TextFieldAutoSize.CENTER,
TextFormatAlign.CENTER, false, null, false, null,
false, null);
addChild(biology);
ch1 = new CreateButton("Организм человека. Общий обзор", 14, 0x0000ff, "Segoe Print",
true, false, 280, 40, 100, 100, TextFieldAutoSize.LEFT,
TextFormatAlign.LEFT, false, null, false, null, true,
_glav1); // И здесь
addChild(ch1);
}
}
}

Код AS3:
package p {
import flash.display.*;
import flash.net.*;
import flash.events.*;
import flash.text.*;
import flash.display.Sprite;
import flash.display.DisplayObjectContainer;
public class CreateButton extends Sprite {
private var txt:TextField = new TextField();
private var format:TextFormat;
private var psize;
private var pchild;
public function CreateButton(ptext:String, size:uint, color:Object, font:String,
bold:Boolean, italic:Boolean, xpos:uint, ypos:uint,
wid:uint, heig:uint, autosize, align, back:Boolean,
backcolor, bord:Boolean, bordcolor, mouse:Boolean,
child) {
// Я выпустил ненужную часть кода
txt.addEventListener(MouseEvent.CLICK, clickListener);
txt.addEventListener(MouseEvent.MOUSE_OVER, overListener);
txt.addEventListener(MouseEvent.MOUSE_DOWN, downListener);
}
private function clickListener(e:MouseEvent):void {
format.size = psize;
txt.setTextFormat(format);
removechild(); // Вот здесь я попытался сделать рекурсивную функцию, которая удаляет все с экрана. По этому поводу тоже жду критики.
addChild(_panel); // Здесь тоже надо как-то обратиться к переменной правильно
addChild(this.pchild);
}
private function overListener(e:MouseEvent):void {
txt.setTextFormat(format);
}
private function downListener(e:MouseEvent):void {
format.size = psize+1;
txt.setTextFormat(format);
}
private function removechild() {
removeChildAt(0);
if(numChildren == 0) {
return;
}
removechild();
}
}
}