Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 12.05.2004, 20:16
TbIKBA вне форума Посмотреть профиль Отправить личное сообщение для TbIKBA Найти все сообщения от TbIKBA
  № 1  
TbIKBA
[+1.6 19.12.06]

Регистрация: Nov 2000
Сообщений: 135
По умолчанию ООП

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

И тут сорвало мне голову...
нарвался на 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!!!


Последний раз редактировалось TbIKBA; 12.05.2004 в 20:21.
Старый 13.05.2004, 12:16
Dindin вне форума Посмотреть профиль Отправить личное сообщение для Dindin Посетить домашнюю страницу Dindin Найти все сообщения от Dindin
  № 2  
Dindin
 
Аватар для Dindin

Регистрация: Feb 2004
Адрес: на колокольне Любит: плеваться
Сообщений: 1,769
Отправить сообщение для Dindin с помощью ICQ
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";
И дергай значения из этих массивов.
__________________
судью - на мыло, из игроков - вить веревки.

Старый 13.05.2004, 19:53
TbIKBA вне форума Посмотреть профиль Отправить личное сообщение для TbIKBA Найти все сообщения от TbIKBA
  № 3  
TbIKBA
[+1.6 19.12.06]

Регистрация: Nov 2000
Сообщений: 135
В объекте site есть Array layerName с именами моих лайеров.

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

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

Старый 14.05.2004, 14:14
Dindin вне форума Посмотреть профиль Отправить личное сообщение для Dindin Посетить домашнюю страницу Dindin Найти все сообщения от Dindin
  № 4  
Dindin
 
Аватар для Dindin

Регистрация: Feb 2004
Адрес: на колокольне Любит: плеваться
Сообщений: 1,769
Отправить сообщение для Dindin с помощью ICQ
Код:
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[] должен быть строкой.
__________________
судью - на мыло, из игроков - вить веревки.

Старый 14.05.2004, 15:24
Baltika вне форума Посмотреть профиль Отправить личное сообщение для Baltika Посетить домашнюю страницу Baltika Найти все сообщения от Baltika
  № 5  
Baltika

Регистрация: Oct 2000
Сообщений: 1,593
Отправить сообщение для Baltika с помощью ICQ Отправить сообщение для Baltika с помощью MSN Отправить сообщение для Baltika с помощью Skype™
По умолчанию Re: ООП

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

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

Старый 14.05.2004, 17:28
Dindin вне форума Посмотреть профиль Отправить личное сообщение для Dindin Посетить домашнюю страницу Dindin Найти все сообщения от Dindin
  № 6  
Dindin
 
Аватар для Dindin

Регистрация: Feb 2004
Адрес: на колокольне Любит: плеваться
Сообщений: 1,769
Отправить сообщение для Dindin с помощью ICQ
хорошая ссылка. особенно впечатляет библиография
__________________
судью - на мыло, из игроков - вить веревки.

Создать новую тему   Часовой пояс GMT +4, время: 08:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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