Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   ООП (http://www.flasher.ru/forum/showthread.php?t=58068)

TbIKBA 12.05.2004 20:16

ООП
 
ДОБРЫЕ Люди!!!!
Спасите мою голову!!!
Всю жизь писал АС и не парился! Писал так чтоб работало - никаких функций, определений объектов, тем более классов!

И тут сорвало мне голову...
нарвался на www.flash-ripper.com
пока не разберузззь не успакоюзззь - как етот Обджект Ориентал работает...

Все понятно вроде когда чужой код читаешь - а когда свой начинаю писать вопросов в голове такое кол-во, что я себя первоклассником чуйствую!!!

Подскажите где в сети почитать про Обджект Ориентал Пр.
а то денег нет за книжкой бежать...

..............................................................................................

Если вдуг у кого время есть помогите с примером...
Задача такая:

Есть n файлов/слоёв(кол-во их конечно может меняться иначе зачем етот ООП - пользовать так по полной ;) )
backGround
percent
logo
menu
text
foto
...

хотелось бы в main файле, куда будут грузиться ети файлы ограничется вызовом функции (назовём её createLayer)
которая будет:
1. создовать v _root мувик с именем файла (учитывая _depth в порядке вызова функции)
2. грузить туда етот файл
3. отслеживать его загрузку (запуская по setInterval другую Фу-ю )
4. запуская еще одну Фу-ю высчитывать общий % всех загружаемых файлов
5. передавать етот процент в _root.percent (тот самый уже загруженный файл)


вот с чего я начал:

createLayer.as:
var Layers = 0;
var interval;
var percent;
function createLayer(object_name) {
Layers++;
_root.createEmptyMovieClip(object_name, Layers);
loadMovie(object_name+".swf", "_root."+object_name);
interval = setInterval(percent=Preload, 1000, object_name);
}
function Preload(object_name) {
return _root[object_name].getBytesLoaded()/_root[object_name].getBytesTotal()*100;
}


main.fla:
#include " createLayer.as"
createLayer("backGround");
createLayer("percent");
createLayer("logo");
createLayer("menu");
createLayer("text");
createLayer("foto");


грузить файлы получается - правдо чую что через Ж... я это делаю...
а вот куда лучше сохранять етот процент пока сам лаер не подгрузился?? наверное лучше создать обект Preload и в нем хранить о общий просент и процент каждого лаера...

+ неполучается создать в каждом МС его порядковый номер Ж (
+ непонимаю как создать объект Preload с переменными и для общего и для каждого лаера: ((
+ непонимаю как передовать эти подсчитанные переменные из этих функций в этот Preload!

HELP PLEASE!!!

Dindin 13.05.2004 12:16

http://www.bruceeckel.com/ - один из самых уважаемых мною авторов книг по ООП. В том числе моей любимой "Философия Java" ("Thinking in Java")
Второй вопрос (вопросы?): _root.createEmptyMovieClip(object_name, Layers++); - приращение номера Layer (кстати, в ООП с большой буквы предположительно начинаются названия классов)
Совет - создай объект, в этом объекте создай ассоциированный массив, в котором каждому названию объекта соответствует его глубина:
Код:

obj = {name1:depth1,name2:depth2}
trace (obj["name1"];)

Или простой массив, в котором для соответствующего индекса глубины задавай строку-имя:
Код:

arr = [];
arr[depth1] = "name1";
arr[depth2] = "name2";

И дергай значения из этих массивов.

TbIKBA 13.05.2004 19:53

В объекте site есть Array layerName с именами моих лайеров.

_root[site.layerName[count]].getBytesTotal() выводит underfined

???? опять незнаю синтаксис!

Dindin 14.05.2004 14:14

Код:

site = {layerName:['name1','name2'],layerSurname:[]};
count=0;
_root.createEmptyMovieClip('name1',1);

with(_root[site.layerName[count]]){
        lineStyle(3,0xff0000,100);
        moveTo (30,30);
        beginFill(0xaaaaaa,100);
        lineTo (80,80);
        lineTo (80,30);
        lineTo (30,30);
        endFill();
}

Все работает, просто элемент массива layerName[] должен быть строкой.

Baltika 14.05.2004 15:24

Re: ООП
 
Цитата:

Оригинал написал(а) TbIKBA

Подскажите где в сети почитать про Обджект Ориентал Пр.
а то денег нет за книжкой бежать...

классика

Dindin 14.05.2004 17:28

хорошая ссылка. особенно впечатляет библиография
:):)


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

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