PDA

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


DissDoc
22.08.2006, 21:43
... не видит, так как функция класса вставляется через функцию Чтобы было понятно вот код

class api.windows.GConsoleWindow
{
private var intervalID:Number;
private var objMC:MovieClip;
private var x_pos:Number;
private var y_pos:Number;
private var par:GParcerConsole;

function GConsoleWindow(objMC:MovieClip, x_pos:Number, y_pos:Number)
{
this.objMC = objMC;
this.x_pos = x_pos;
this.y_pos = y_pos;
}

function ShowConsole()
{
var point:Number = 0;

objMC.createTextField("Console", objMC.getNextHighestDepth(), x_pos, y_pos, 200, 100);
with (objMC.Console)
{
type = "input";
border = false;
background = true;
backgroundColor = 0x666666;
wordWrap = true;
}
//*********************************************
// ВОТ ТУТ ТРАБЛЫ НАЧИНАЮТСЯ
objMC.Console.prototype.onChanged = function(txt:TextField)
{
if (txt.text.slice(0, 5) == "#chat")
{
// ВОт тут моя функция дает значение undifened
txt.setTextFormat(0, 5, GetWorkFormat());
point = 5;
}
}
}

private function GetWorkFormat():TextFormat
{
var tf:TextFormat = new TextFormat();
tf.font = "Verdana";
tf.size = 10;
tf.color = 0xFFFFCC;

return tf;
}
}

KidsKilla
22.08.2006, 21:46
не мешай классы и прототипы.

DissDoc
22.08.2006, 22:06
А как тогда это сделать иначе? onChange - ведь висит на textField. Я на фруме поискал про prototype, и немного не соображу как мне тогда ф-цию onChange - сделать функцией класса?
Ума не приложу
Может просто наследовать класс TextField? Но это не выход, так как у меня по сути должно быть всего две функции - создать консоль - убить консоль. Остальное все приватное.

Nirth
22.08.2006, 22:48
тогда не используй классов вообще, но мешать прототипы с классами - нельзя. себе дороже.

DissDoc
22.08.2006, 22:51
Хорошо, убрал prototype! НО! Все равно не работает функция GetWorkFormat! Она undefened. Что делать?

etc
22.08.2006, 23:08
objMC.Console.onChanged = mx.utils.Delegate.create(this,function(txt:TextField)
{
if (txt.text.slice(0, 5) == "#chat")
{
txt.setTextFormat(0, 5, this.GetWorkFormat());
point = 5;
}
});

DissDoc
22.08.2006, 23:11
__etc, огромное спасибо. Пойду почитаю о том, что вы написали ) Чтобы больше такие вопросы не возникали.