PDA

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


dacino
19.11.2006, 20:46
положым есть у нас есть класс

class MyC{
var mc:MovieClip;
var _name:String;
//и что-нибудь еще
function MyC(nam){
this._name = nam;
}
function nCl(type,depth){
var cl = _root.attachMovie("ClMC","cl"+tdepth,tdepth);
var butt = cl.createClassObject("Button","butt",100);
if type=="sqrt"{
butt.onRelease = function{
this.caption = "sqrt";
//?здесь сослаться на функцию drawsqrt(this._parent,this._x,this._y,...);
}
else{
butt.onRelease = function{
this.caption = "line";
//?здесь сослаться на функцию drawline(this._parent,this._x,this._y,...);
}
return cl;
}
function drawsqrt(mc:MovieClip,x,y,h,w){
with(mc){
clear();
lineStyle(2, 0x000000, 100); moveTo(x-15, y+int(h/2)); lineTo(x-10, y+int(h/2)); lineTo(x-5, y+h); lineTo(x, y-5); lineTo(x+w, y-5);
}
}
function drawline(mc:MovieClip,x,y,h,w){
wirh(mc){
clear();
moveTo(x,y+h); lineTo(y+h,x+w);
}
}
}

//? - как такую ссылку/вызов функции (уж как правильно выразиться и не знаю) реализовать?
или если в корне не прав, предложите иной подход, заранее благодарен

BigDan
19.11.2006, 21:02
До конца не понял вопрос. Ты хочешь в классе вызвать определённую функцию?

dacino
19.11.2006, 21:48
ну типа того, у класса функции что то рисующие муве(итих мувов будет много), есть метод создающий мув, на этом муве расположена к примеру кнопочка, и в зависимости от того, с каким параметром "type" был создан мув, при нажатии на нее(кнопочку), должна вызываться некоторая функция(она же и метод класса) в примере drawsqrt или drawline

dacino
20.11.2006, 00:32
народ, реально, ай ниид хелп, практическую часть диплома на PHP почти сделал, а вот то что касается Flash - тормозю жутко, или подскажить толковую книгу по AS(не для начинающих) которые есть у меня, там все пространственно...
и при создании нестандартных приложений от них мало толку
P.S
(хотя можно выдвинуть и другое предположение что дело не в книгах, а в том кто их читает, но это будет уже иное предположение)

dacino
20.11.2006, 01:47
не меня наверно реально приперет биться головой о стену, кричать что не знаю как это написать - спрашивать народ, а через пару часов самому найти решение.
если кому требо вот как решил я проблему такого вызова функций:
все эти вызываемые функции я поместил в отдельный класс, и когда нужно вызвать одну из них создаю экземпляр этого класса и обращаюсь к соотв. методу.

да походу вопрос: Господа Гуру Флеша, какой код будет производительнее - написанный при помощи классов или аналогичный, реализованный в функциях, насколько знаю в php последний работает шустрей, а как в AS?

PITer
20.11.2006, 10:27
Ну я не гуру, могу и ошибаться...

На текуший момент флэшплэеры не поддерживают полноценные ООП, и поэтой причине все навороты с классами, являются надстройками. Т.е. при компиляции FLA->SWF классы преобразуются в обычные процедурные инструкции. При этом возможно порождение мусорного кода... который в принципе способен вызывать торможения.

НО на мой взгляд при БОЛЬШИНСТВЕ решаемых флэшерами задач, это торможение является ПРИНЕБРЕЖИМО МАЛЫМ. И кстати говоря не следует забывать о вот еще каком моменте: при компиляции ООП в процедурные байт-коды, используется алгоритм созданный разработчиками, т.е. людьми ГИПОТЕТИЧЕСКИ ЗНАЮЩИМИ, как флэш устроен "изнутри", и потому способными использовать наиболее быстродействующие приемы. Дабы достичь аналогичного эффекта самостоятельно следует быть не просто ГУРУ, а ГУРУ ПО ОПТИМИЗАЦИИ БЫСТРОДЕЙСТВИЯ.

Кстати в большинстве задач перед разработчиком не стоит задачу сделать ШУСТРУЮ программу, перед ним стоит задача ШУСТРО сделать программу.

Многие вещи работают быстрее если их написать на ассемблере, но на ассемблере сегодня пишет все меньше и меньше народа ибо процесс трудое$кий...