PDA

Просмотр полной версии : обращение к функции другого класса/пакета


RblSb
02.08.2014, 22:20
Не могу понять почему текст не выводится при перемещении функции в отдельный класс/пакет, помогите пожалуйста.


package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.text.TextField;
import Canvas;

public class Main extends Sprite
{
public function Main():void
{
var dt:Canvas = new Canvas();
dt.DrawText('Hello World',5,5);
}
}
}



package
{
import flash.display.Sprite;
import flash.text.TextField;

public class Canvas extends Sprite
{
public function DrawText(p0:String, p1:int, p2:int):void
{
var tf:TextField;
tf = new TextField();
tf.text = p0;
tf.x = p1;
tf.y = p2;
addChild(tf);
}
}
}

Zebestov
03.08.2014, 16:52
Потому что addChild(tf) есть, а addChild(dt) нема.

RblSb
03.08.2014, 17:37
Потому что addChild(tf) есть, а addChild(dt) нема.

Спасибо, а как сделать чтобы отрисовка происходила уже в функции DrawText, без добавления addChild(dt) в главный класс?

Zebestov
04.08.2014, 13:04
А она там и происходит. Просто добавляется текстовой поле в экземпляр класса Canvas (это который dt). Вот это все здорово, но сам экземпляр надо же добавить на сцену, правильно?

P.S.
1. Немного режет глаз отсутствие функции-конструктора;
2. Названия методов в подавляющем большинстве случаев пишутся в стиле someMethodName (а не SomeMethodName);

Wolsh
04.08.2014, 16:51
http://flasher.ru/forum/showthread.php?t=207706