Модераторы: SoWa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Флеш-сайт. Как правильно организовать структуру? Проект "Мосты Москвы" 
:(
    Опции темы
Caramel
Дата 10.8.2005, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4190
Регистрация: 7.8.2004
Где: Дюссельдорф

Репутация: 2
Всего: 142



В продолжение тем:
Флешевый сайт, что за зверь?

Мосты Москвы - эскизы

По эскизам я разбила сайт на три страницы.

Первый уровень (вход)
Второй уровень (выбор моста, пролистывание карты)
Третий уровень (мост и информаци о нем + фотогалерея)
Верхнее и нижнее меню у меня остается во всех страницах


Теперь вопрос. Как оно должно лежать во флеше?

Вариант первый.
Каждому эскизу свой кадр.
При щелчке пользователь перескакивает с кадра на кадр.
Но не понятно тогда как отрисовывать смену содержания?
Скажем смену карты (второй уровень)? Или моста (третий уровень)?

Вариант второй.
Каждому объекту по кадру.
Т.е. я отрисовываю не только три по количеству эскизов, но и + кадры на все карты + кадры на все мосты.

Этот вариант мне кажется более легким в исполнении но в тоже время муторным.



Где не права поправте. Я сецально завела этот проект что бы учиться. Рада любым советам smile

Кому лень лезть в темы прилагаю один из эскизов.

Присоединённый файл ( Кол-во скачиваний: 19 )
Присоединённый файл  2.jpg 30,66 Kb
PM MAIL WWW Skype   Вверх
AlDev
Дата 10.8.2005, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



выложи все 3 эскиза pls
PM MAIL WWW ICQ YIM MSN   Вверх
ManiaK
Дата 10.8.2005, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: нет
Всего: 29



Мне как-то не очень понятна схема сайта. Ещё бы это объяснить.
PM MAIL WWW   Вверх
AlDev
Дата 10.8.2005, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



Offtopic:
ManiaK, долго думал, кто такой Maniak , и откуда он у мня в blog-е взялся smile сейчас дошло smile
PM MAIL WWW ICQ YIM MSN   Вверх
Caramel
Дата 10.8.2005, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4190
Регистрация: 7.8.2004
Где: Дюссельдорф

Репутация: 2
Всего: 142



Я выложу эскизы и будет понятно.
Просто третий еще не отрисован
PM MAIL WWW Skype   Вверх
ManiaK
Дата 10.8.2005, 12:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: нет
Всего: 29



Alex Batsuev smile

Цитата(Caramel @ 10.8.2005, 13:26)
Я выложу эскизы и будет понятно.
Просто третий еще не отрисован

Ждём-с...
PM MAIL WWW   Вверх
PROCESSOR
Дата 12.8.2005, 06:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 25.5.2005

Репутация: нет
Всего: нет



- меню, которое видно везде - расположи в одном слое ( чтобы поверх всех был ) и сделай пустые кадры в томже слое во всех фреймах где есть страницы. т.е. ключевой кадр в фрейме 0 и пустые кадры в 1,2
- каждую страницу в своем слое ( вообщемто можно и в одном ), но в разных фреймах. 1 страница в фрейме 0, 2оя страница в фрейме 1...
- в нулевом фрейме напиши в action - stop() . чтобы плеер показал только 0 фрейм ( меню и первую страницы ) и остановился.
- теперь для перехода на другие страницы - просто пиши gotoAndStop (1) для второй страницы и gotoAndStop (2) для третей страницы и само собой gotoAndStop (0) для возврата на первую страницу.
- фреймам можно дать имена и тогда можно писать gotoAndStop ("page1") например.
- плюс в том что другие страницы будут автоматом исчезать, и появляться только нужная страница, а постоянный слой ( с меню ) будет виден везде. Практчиски принцип презентации - слайды. Ненадо никакие _visible пользовать и дополнительные коды писать, которые закрывают и появляют страницы.
- можно всё разнообразить , но общий принцип ясен.
- на сегодня, это самое эффектной и простой способ, что я знаю.
- очень легко ввести любую анимацию. Например размещать страницы в кадрах 0,100,200.Тока вместо gotoAndStop писать gotoAndPlay. Тока незабыть в конце появления страницы, поставить stop(). Хотя намного практичнее использовать мувики в мувике для анимации, а не засорять главный timeline.



Это сообщение отредактировал(а) PROCESSOR - 12.8.2005, 06:57
PM MAIL   Вверх
Caramel
Дата 12.8.2005, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4190
Регистрация: 7.8.2004
Где: Дюссельдорф

Репутация: 2
Всего: 142



PM MAIL WWW Skype   Вверх
ManiaK
Дата 22.8.2005, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: нет
Всего: 29



1. Не очень понятно на главной странице что значит "вверх по течению" и "вниз потечению". Для человека, который только что зашёл на сайт эти два термина будут загадкой. Вверх относительно чего?.. (но это
2. Логичней всего, как мне кажется, разбить сайт на две флешки: выбор моста и view'ер мостов (третий уровень). Главную страницу можно сделать обычной, HTML-ной, если, конечно, не предполагаются и там всякие всплывучести (да, я думаю, это лишнее). То есть, я бы выбрал первый вариант. Как сделать всплывание текста и пр. прелести PROCESSOR уже объяснил.
Добавлено @ 08:07
Любопытно посмотреть на то, как это будет выглядеть в конечном итоге.
PM MAIL WWW   Вверх
AlDev
Дата 22.8.2005, 08:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



preprepreprealpha )
http://batsuev.com/wp/2005/08/16/site-engine/
сайт разбит на хрен знает сколько flash-ек, некоторые - скины, неуоторые - данные. всё подгружается через один класс, который умеет подгружать сразу несколько swf и отображать общий прогресс. Все данные внешние.
Основаная swf содержит движок для подгрузки данных, прелоадер, и движок для смены страниц. Остальное - подгружается в неё и юзает классы, которые в основной. Всё.

Это сообщение отредактировал(а) Alex Batsuev - 22.8.2005, 08:39
PM MAIL WWW ICQ YIM MSN   Вверх
ManiaK
Дата 22.8.2005, 09:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Homo Sapience
***


Профиль
Группа: Комодератор
Сообщений: 1145
Регистрация: 3.8.2004
Где: ИУ5-93

Репутация: нет
Всего: 29



Неплохо! Довести бы до разумного smile
Из минусов тотального использования flash - тормоза.
PM MAIL WWW   Вверх
Rus
Дата 22.8.2005, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 27.4.2005

Репутация: нет
Всего: 1



Воду "живую" может сделать?
PM ICQ   Вверх
Caramel
Дата 22.8.2005, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4190
Регистрация: 7.8.2004
Где: Дюссельдорф

Репутация: 2
Всего: 142



Цитата(Rus @ 22.8.2005, 12:27)
Воду "живую" может сделать?

Вода живая... там плавает таракан. Т.е. кораблик smile
Добавлено @ 13:43
Читаю сейчас введение в ООП smile
Сложно... ни фига не понимаю smile
PM MAIL WWW Skype   Вверх
Rus
Дата 22.8.2005, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 27.4.2005

Репутация: нет
Всего: 1



А где? - я чет не вижу
PM ICQ   Вверх
Caramel
Дата 22.8.2005, 20:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4190
Регистрация: 7.8.2004
Где: Дюссельдорф

Репутация: 2
Всего: 142



Цитата(ManiaK @ 22.8.2005, 10:44)
Из минусов тотального использования flash - тормоза.

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




Цитата(Rus @ 22.8.2005, 20:03)
А где? - я чет не вижу

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


Цитата(PROCESSOR @ 12.8.2005, 07:56)
- меню, которое видно везде - расположи в одном слое ( чтобы поверх всех был ) и сделай пустые кадры в томже слое во всех фреймах где есть страницы. т.е. ключевой кадр в фрейме 0 и пустые кадры в 1,2
- каждую страницу в своем слое ( вообщемто можно и в одном ), но в разных фреймах. 1 страница в фрейме 0, 2оя страница в фрейме 1...
- в нулевом фрейме напиши в action - stop() . чтобы плеер показал только 0 фрейм ( меню и первую страницы ) и остановился.
- теперь для перехода на другие страницы - просто пиши gotoAndStop (1) для второй страницы и gotoAndStop (2) для третей страницы и само собой gotoAndStop (0) для возврата на первую страницу.


До этого места все понятно. В общем-то так и делала smile


Цитата(Alex @ 22.8.2005, 09:36)
всё подгружается через один класс, который умеет подгружать сразу несколько swf и отображать общий прогресс. Все данные внешние.


А вот это - нет smile


PM MAIL WWW Skype   Вверх
AlDev
Дата 23.8.2005, 03:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



в main.swf у тебя есть два кадра. Также на первую swf-ку пихаем все, что всегда есть на остальных страницах и прелоадер. На первом торчит подгрузка всего клипа и создание экземпляров pageManager и dataManger:
Код

System.useCodepage = true;
this.pm = new com.batsuev.managers.pageManager(this['content']);
this.dm = new com.batsuev.managers.dataManager();
var preloader_instance:Object = this['preloader'];
this.pm.preloader_instance = preloader_instance;
this.dm.preloader_instance = preloader_instance;
var load_list:Object = new Object();
var ths:Object = this;
load_list.onLoad = function()
{
    ths.gotoAndPlay(2);
    ths.pm.changePages(['./pages/mostokiada.swf']);
}
preloader_instance.addListener(load_list);
preloader_instance.setObject(this);
stop();

итак, попорядку:

System.useCodepage = true;
включаем использование кодовых страниц, дабы небыло проблем с подгрузкой файлов с различными кодировками (которые не UTF-8)

this.pm = new com.batsuev.managers.pageManager(this['content']);
создаем экземпляр класса pageManager, который занимается тем, что подгружает содержимое внешнего файла в клип this['content']. Почему this.pm = , а не var pm: ?
Просто если мы пропишем через var, то не сможем получить доступ к этой переменной из других клипов, а если пишем this.pm, то мы просто "пришиваем" переменную pm к мувику. В данном случае this и _root - одно и то-же.

this.dm = new com.batsuev.managers.dataManager();
то-же, что и pageManager, но для работы с данными.

var preloader_instance:Object = this['preloader'];
создаем ссылку на объект preloader. Это клип, у него выставлен as2 class com.batsuev.UI.preloader.

this.pm.preloader_instance = preloader_instance;
this.dm.preloader_instance = preloader_instance;
здесь мы указываем нашим мэнеджерам, ссылку на прелоадер.

var load_list:Object = new Object();
var ths:Object = this;
load_list.onLoad = function()
{

ths.gotoAndPlay(2);
ths.pm.changePages(['./pages/mostokiada.swf']);
}
preloader_instance.addListener(load_list);
добавляем листенер события, срабатывающего при загрузке основной swf-ки.
var ths:Object = this; - создаём ссылку на _root, дабы использовать её в событии onLoad.
После загрузки мы пререходим на 2 кадр и из-меняем содержимое клипа this['content'] на ./pages/mostokiada.swf.

preloader_instance.setObject(this);
эта функция пускает отображение загрузки основной страницы.

Итак, теперь посмотрим, что за страшные класс pageManager:
Код

/**
 * @author Alex Batsuev
 */

import com.batsuev.UI.preloader

class com.batsuev.managers.pageManager
{
    private var container_mc:MovieClip;  //переменная, содержащая ссылку на клип, в который будут подгружаться все swf
    private var _pages:Array;                  //массив подгружаемых клипов
    
    public var preloader_instance:preloader;//ссылка на preloader
    //-----------------------------------------------------------
    //-- метод, вызывающийся при получении значения pages.
    //-- возвращает массив urk-ов страниц, находящихся в container_mc
    public function get pages():Array
    {
        return this._pages;
    }
    //-----------------------------------------------------------
    //-- конструктор для класса. Срабатывает при создании экземпляра класса
    //-- на входе ему передаётся ссылка на клип-контейнер для подгрудаемых swf-ок.
    public function pageManager(container_mc:MovieClip)
    {
        this.container_mc = container_mc;
        //установка переменной класса container_mc значения передаваемой переменной
        //this указывает на то, что это переменная, относящаяся к классу
    }
    //-----------------------------------------------------------
    //-- метод, изменяющий стрраницы. То бишь удаляет всё, что есть в container_mc и подгружает новые данные.
    public function changePages(new_pages:Array):Void
    {
        this.preloader_instance.show();
        //показываем прелоадер.
        this._pages = new_pages;
        //устанавливаем значения текущих страниц
        this.removePages();
        //вызываем private - метод для удаления всего, что есть в container_mc
        this.showPages();
        //подгружаем новые страницы.
    }
    //------------------------------------------------------------
    //-- метод для удаления содержимого container_mc
    private function removePages():Void
    {
        var j:String;
        for (j in this.container_mc)
        {
            //конструкция типа for (j in smth) перебирает всё, что находится в smth.
            //метод typeOf возвращает тип переменной, если это - movieclip, то удаляем:
            if (typeof(this.container_mc[j])=='movieclip')
            {
                this.container_mc[j].removeMovieClip();
            }
        }
    }
    //--------------------------------------------------------------
    //-- метод для подгрузки новых страниц
    private function showPages():Void
    {
        var i:Number;
        var mcls:Array = new Array(); //массив для объектов MovieClipLoader
        var mcs:Array = new Array();  //массив для сслок на клипы
        var list:Object = new Object();//объет, в котором идёт обработка события onLoad
        var ths:Object = this;              //ссылка на экземпляр класса
        list.onLoad = function():Void
        {
            //этот метод срабатывает тогда, когда подгрузятся все новые клипы
            ths.preloader_instance.hide();  //скрываем preloader
            var i:Number;//пускаем все клипы.
            for (i=0;i<mcs.length;i++)
            {
                mcs[i].play();
            }
        }
        //создадим новые клипы и выставим ссылки на них в массиве mcs. Создадим объекты класса MovieClipLoader. 
        for (i=0;i<this._pages.length;i++)
        {
            mcs[i] = this.container_mc.createEmptyMovieClip('movie_'+i.toString(),this.container_mc.getNextHighestDepth());
            mcls[i] = new MovieClipLoader();
        }
        this.preloader_instance.addListener(list);
        //добавляем листенер для события onLoad.
        this.preloader_instance.setMCLArray(mcls);
        //вызываем метод, отображающий прогресс загрузки нескольких клипов.
        //загружаем клипы.
        for (i=0;i<this._pages.length;i++)
        {
            mcls[i].loadClip(this._pages[i],mcs[i]);
        }
    }
}


конечно, всё это было-бы грамотнее прописать через static, но тогда возникает проблема размера. Просто данный класс используется во всех swf. И при явном указании в них на его использование, он будет в них подгружен. Соответственно идёт увеличение размера в несколько раз. Как вариант, можно использовать eval, но всё-таки простейший способ - это прописать его не как static.

Теперь следующий класс - preloader:
Код

/**
 * @author Alex Batsuev
 */

class com.batsuev.UI.preloader extends MovieClip
{
    private var load_check_interval:Number;    
    private var obj_target:Object;
    private var total_bytes:Number;
    private var list_obj:Object;
    
    //-- конструктор класса
    public function preloader()
    {
        //пустой. Ничего нам при создании экземпляра класса не надо.
    }
    //-- метод, показывающий preloader
    public function show():Void
    {
        this._visible = true;
        //так как класс у нас наследует все методы и свойства MovieClip, то просто установи _visible в true
        this.setCurrentValue(0);
        //устанавливаем значение текощего состояния в 0.
    }
    //-- скрываем прелоадер
    public function hide():Void
    {
        this._visible = false;
        //так как класс у нас наследует все методы и свойства MovieClip, то просто установи _visible в false
        //удаляем всё, что надо:
        delete this.list_obj;
        //list_obj - ссылка на объект, ханимающийся отловом события onLoad
        delete this.total_bytes;
        //total_bytes - общее число подгружаемых байтов
        delete this.obj_target;
        //ссылка на объект, который подгружаем
        delete this.load_check_interval;
        //интервал для проверки загрузки
    }
    //-- добавление объекта, который занимается отловом события onLoad:
    public function addListener(list:Object):Void
    {
        this.list_obj = list;
    }
    //-- установка объекта для загрузки:
    public function setObject(obj:Object):Void
    {
        this.obj_target = obj;
        //устанавливаем объект
        this.load_check_interval = setInterval(this.objLoadCheck,1,this);
        //вызываем метод objLoadCheck через 1/100 секунды (или 1/1000, не помню ) и передаем ему ссылку на экземпляр класса. Зачем? просто в методе, который вызывается в setInterval обращение this будет вести в undefined. 
    }
    //-- установа массива объектов класса MovieClipLoader для загрузки:
    public function setMCLArray(mcls:Array):Void
    {
        var i:Number;
        var lists:Array = new Array();  //листенеры для событий класса MovieClipLoader
        var calls:Array = new Array();  //а вот это хер зает зачем написал.
        var ths:Object = this;              //создаем ссылку на экземпляр клипа
        this.total_bytes = new Number(); //обнуляем значение общего количества байтов
        for (i=0;i<mcls.length;i++)
        {
            lists[i] = new Object();
            lists[i]['totalSet'] = false; //установлено-ли общее количество байтов в i-ом клипе?
            lists[i]['loaded'] = false;   //загружен-ли i-й клип 
            lists[i].onLoadProgress = function(target_mc,loaded:Number,total:Number):Void
            {
                //это событие вызывается в процессе загрузки
                if ((!this['totalSet'])&&(total>0))
                {                    
                    //если не установлено общее количество ьайтов в клипе, и при этом количество байтов в клипе больше 0, то добавим к общему количеству байтов это количество и установим переменную this['totalSet'] в true.
                    ths.total_bytes += Number(total);
                    this['totalSet'] = true;
                }
                if (this['totalSet'])
                {
                    this['loadedBytes'] = Number(loaded);
                    //устанавливаем, сколько байтов мы уже загрузили
                }
            }
            lists[i].onLoadInit = function(target:Object):Void
            {
                //событие, срабатывающее при начале проигрывания подгружаемого клипа. По-хорошему надо это нахер снести и переписать всё на onLoadComplete или как его там...
                this['loaded'] = true;
                //устанавливаем, что клип загружен
            }
            mcls[i].addListener(lists[i]);
            //добавляем MovieClipLoader-у листенер на все вышеобозванные события
        }        
        this.load_check_interval = setInterval(this.MCLLoadCheck,1,this,lists);
        //устанавливаем вызов метода MCLLoadCheck через 1/хрен-знает-какую секунды и переддаём ссылку на экхемпляр клипа.
    }
    //-- check object loading
    private function objLoadCheck(ths:Object):Void
    {
        //это метод, вызываемый при подгрузке единичного объекта и методу сему передаётся ссылка на экземпляр сего грёбаного класса.
        if (ths.obj_target.getBytesTotal()>60)
        {
            //если количество байтов общее больше 60, то вот тогда можно работать. А иначе этот грёбаный flash считает, что в подгружаемом объекте 0. И событие onLoad работает странно... так-что будем предохраняться проверкой количества тотального байтов.
            if (ths.obj_target.getBytesTotal()!=ths.obj_target.getBytesLoaded())
            {
                //если всего в obj_target загруженных байтов не столько-же, сколько всего в нём байтов, то устанавливаем значение прогресса:
                ths.setCurrentValue(ths.obj_target.getBytesLoaded()/ths.obj_target.getBytesTotal());                
            }else
            {
                //а иначе убиваем наш грёбаный интервал, в котором идёт проверка, вызываем событие onLoad и устанавливаем текущее значение в 100% (1)
                clearInterval(ths.load_check_interval);
                ths.setCurrentValue(1);
                ths.list_obj.onLoad();
            }
        }
    }
    //-- метод, который надзирает над загрузкой многжественного числа объектов.... о мля задвинул... вообщем этот метод мсотрит, сколько байтов из массива клипов загрузилося, а сколько осталося
    private function MCLLoadCheck(ths:Object,lists:Array):Void
    {
        var i:Number;
        var is_loaded:Boolean = true; //всё-ли загрцжено? пусть наш метод сначала помечтает и в нём хрянится значение, что всё
        var is_total_set:Boolean = true; //ну и ессно пусть он мечтает, что flash не ключит, и установлено общее количество байтов во всех клипах
        var loaded:Number = new Number(); //а вот в этой переменной пусть будет значение, сколько всего подгружено. Ну и пусть оно будет нулевым.
        //теперь обойдём-ка мы все листенеры объектов класса MovieClipLoader из массива
        for (i=0;i<lists.length;i++)
        {
            if (!lists[i]['loaded'])
            {
                //если хоть какая-то падла не загрузилася, обломаем наш метод и выставим, что нихера не загружено
                is_loaded = false;
            }
            if (!lists[i]['totalSet'])
            {
                //если хоть какая-то падла не выставила общего количества байтов в себе (шифруется наверное сволочь), обломаем наш метод и выставим, что нихера не знаем про общее количество байтов
                is_total_set = false;
            }else
            {
                //а иначе увеличим количество загруженных байтов
                loaded += lists[i]['loadedBytes'];
            }
        }
        if (is_total_set)
        {
            //если известно, что везде установлено общее количество байтов, то установим текущее значение прогресса:
            ths.setCurrentValue(loaded/ths.total_bytes);
        }
        if (is_loaded)
        {
            //а если свершилось чудо, и всё загрузилося, то на радостях снесём нах интервал, вызовем событие листенера onLoad и установим, что значение - 100%, то бишь 1.
            clearInterval(ths.load_check_interval);
            ths.setCurrentValue(1);
            ths.list_obj.onLoad();            
        }
    }
    //установка текущего значения прогресса... от 0 до 1.
    private function setCurrentValue(v:Number):Void
    {
        this['status_field'].text = String(Math.round(v*100))+'%';
    }
}


так... меня уже помаленьку прёт... не люблю я столько комментов писать smile

итак, пока можно забыть про третий класс, который с данными работает...
Вообщем теперь вроде всё должно быть понятно... или нет? Если нет, спрашивай...

PM MAIL WWW ICQ YIM MSN   Вверх
PROCESSOR
Дата 24.8.2005, 04:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 25.5.2005

Репутация: нет
Всего: нет



Alex Batsuev

Он в начале пути, поэтому врядли поймет . ( я кстати понял всё smile и понял что буду подобное использовать толька в сааамых экстримальных моментах жизни, которые врядли у меня будут, а может и нет. ) Поэтому это гружено и для такого сайта не нужно. Я вообще-то вааааащ не представляю на каком сайте это может понадобиться. Во всяком случайе такого сайта я в своей жизни еще не видел.

И считаю если делаеш простой сайт себе, то абсолютно не надо кучи флешек. Всё в одном. Да и AS пользовать надо минимум ... простому пользователю.


PM MAIL   Вверх
AlDev
Дата 24.8.2005, 04:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный идиотъ
***


Профиль
Группа: Участник Клуба
Сообщений: 1927
Регистрация: 17.4.2005
Где: Irk, rus

Репутация: 9
Всего: 50



в такой структуре если прикрутить xml, то всё будет универсально, на уровне, что если добавить новый мост или что-то изменить, не надо копаться в коде, или вообще копаться где-ндь. Просто добавить в xml описание и новые swf.
на самом деле структура достаточно экономна в плане траффика и изменяема. Код вообще ввезде будет миниамльным. Просто вызываем из любого клипа методы классов и всё.

Цитата(PROCESSOR @ 24.8.2005, 09:39)
Он в начале пути, поэтому врядли поймет

не он, а она smile
PM MAIL WWW ICQ YIM MSN   Вверх
Caramel
Дата 24.8.2005, 09:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4190
Регистрация: 7.8.2004
Где: Дюссельдорф

Репутация: 2
Всего: 142



Цитата(PROCESSOR @ 24.8.2005, 05:39)
И считаю если делаеш простой сайт себе, то абсолютно не надо кучи флешек. Всё в одном. Да и AS пользовать надо минимум ... простому пользователю

Не скажи... А потом сидеть и долго разбираться что к чему? Хватит с меня эскизов в фотошопе. 150 слоев которые ленишься называть по человечески, а потом экстремально ищешь "вот ту полупрозрачную тонкую полосочку"


Цитата(PROCESSOR @ 24.8.2005, 05:39)
Он в начале пути

smile С каких пор карамель стала мужского рода? Даже просто слово карамель - женского.
PM MAIL WWW Skype   Вверх
PROCESSOR
Дата 24.8.2005, 15:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 238
Регистрация: 25.5.2005

Репутация: нет
Всего: нет



Caramel

Пардон...

Можно кучу элементов в одном слое держать, а группу в отдельном символе. Ну как хош.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Flash"
AlDev
SoWa
  • Если вы хотите предложить кому-либо работу, то пишите или в личку, или оставляйте сообщения в специально предназначеном для этого форуме "Объявления о найме специалистов"
  • Один вопрос - одна тема. Не надо переходов от одного вопроса к другому.
  • Если вы хотите показать какой-нибудь ваш мульт, причём показать, а не предоставить исходник, то вам сюда
  • Вопросы про программирование на ActionScript 1,2 (Flash 8 и более ранние версии) пишите в форуме ActionScript 1,2
  • Вопросы по разработке интернет-приложений на Flex и вопросы по MXML пишите в раздел Flex
  • Смотрим в будущее. ActionScript 3 обсуждается в форуме ActionScript 3
  • Новости из мира Flash.
  • New! [code=ascript][/code] - подсветка ActionScript + wikipedia help

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, AlDev, SoWa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Flash | Следующая тема »


 




[ Время генерации скрипта: 0.1082 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.