Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   метод из глубока (http://www.flasher.ru/forum/showthread.php?t=88225)

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 классы преобразуются в обычные процедурные инструкции. При этом возможно порождение мусорного кода... который в принципе способен вызывать торможения.

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

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

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


Часовой пояс GMT +4, время: 08:49.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.