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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 20.07.2002, 01:57
Nob вне форума Посмотреть профиль Отправить личное сообщение для Nob Найти все сообщения от Nob
  № 1  
Nob

Регистрация: Aug 2001
Адрес: St Petersburg
Сообщений: 65
По умолчанию getBytesTotal()?

Всем привет!

В продолжение разговора(?)о внешних загружаемых мувах.
Скажем, на кнопку подвшена загрузка мува в клип-контейнер на level0: _root.mh

on(release) {
loadMovie("my.swf","_root.mh");
...
//define file size
with (_root.mh) {
total=getBytesTotal();
}
}

Однако вызов getBytesTotal() как в скрипте подвешенном на кнопку (см. выше), так и в обработчике контейнера _root.mh, куда фильма грузится, показывает не реальный размер, а какое-то малое число, например 12. Связано ли это с тем, что реально в момент вызова загрузка еще не началась? Если дело в этом, то как отловить факт начала загрузки?
Сразу оговорюсь, что
1. ресурс качается с сервера;
2. в основной сцене все лежит в одном кадре (так нужно - просто все написано на AS в стиле системы с диспетчеризацией событий и с-ма крутится в цикле в 1 кадре).
Знакомая проблема?

Старый 20.07.2002, 02:42
NeX вне форума Посмотреть профиль Отправить личное сообщение для NeX Найти все сообщения от NeX
  № 2  
NeX

Регистрация: Jun 2002
Адрес: Argentine
Сообщений: 217
А ты у чего, собственно говоря, измеряешь getBytesTotal()?.. У кнопки?..

Старый 20.07.2002, 03:02
Nob вне форума Посмотреть профиль Отправить личное сообщение для Nob Найти все сообщения от Nob
  № 3  
Nob

Регистрация: Aug 2001
Адрес: St Petersburg
Сообщений: 65
Да, нет же, конечно не у кнопки, а у клипа-контейнера -root.mh, куда мой внешний мув грузится (см. код в первом письме). Однако, почитал я найденное в поиске и ... ясно, что та еще функция getBytesTotal. Кстати, может проблема в том, что swf, который я гружу всего из 1 кадра
(просто растр). Сейчас проверю что-нибудь еще.

Старый 20.07.2002, 03:11
NeX вне форума Посмотреть профиль Отправить личное сообщение для NeX Найти все сообщения от NeX
  № 4  
NeX

Регистрация: Jun 2002
Адрес: Argentine
Сообщений: 217
Упс... да, это я как всегда невнимательно смотрю... а вообще в 1 строчке with использовать не в тему... А чтобы легче тебе было помогать, дай исходник, там и посмотрим...

Старый 20.07.2002, 04:02
Nob вне форума Посмотреть профиль Отправить личное сообщение для Nob Найти все сообщения от Nob
  № 5  
Nob

Регистрация: Aug 2001
Адрес: St Petersburg
Сообщений: 65
Спасибо за участие.
Вот собственно фрагмент кода-болванки (пришлось слепить на ходу выдрав из системы) - фактически просто комбинация клипа-контейнера и прелоадера с тестовыми полями. Похоже, что все замечательно работает, я имею ввиду getBytesTotal, когда вызов стоит в самом муве (см. многочисленные исходники прелоадеров на форуме).
Что до with, то тут просто дельфийско-паскалевская привычка экономного письма.
Вложения
Тип файла: zip loader_.zip (3.5 Кб, 88 просмотров)

Старый 20.07.2002, 04:55
NeX вне форума Посмотреть профиль Отправить личное сообщение для NeX Найти все сообщения от NeX
  № 6  
NeX

Регистрация: Jun 2002
Адрес: Argentine
Сообщений: 217
Ну ты и написал.... У меня аж перегрев случился...

На самом деле, че тебе надо то?.. Я сначала думал, что понимаю, а когда пример посмотрел, то стал сомневаться...

Я понял так - при нажатии на кнопку тебе надо начать грузить мув в мув и при этом выводить статистику по загрузке, так?..

Старый 20.07.2002, 05:16
NeX вне форума Посмотреть профиль Отправить личное сообщение для NeX Найти все сообщения от NeX
  № 7  
NeX

Регистрация: Jun 2002
Адрес: Argentine
Сообщений: 217
Все, короче, просек я твою фишку... Блин, голова совсем под вечер не варит... Еще на диско идти... Кошмар...

Ладно, к делу:

Ты не можешь перехватывать инфу про подгружаемый мув из мува, в который он грузится... Почему он не перехватывается кнопкой - точно не знаю, но могу предположить, что в одном событии он (флэш) не реагирует на подгружаемые данные (так же как, нельзя написать на кнопку загрузить текстовую переменную и тут же чему-нибудь присвоить ее значение ...).

Посему, решение такое - стирай все, что ты там написал , и _root.mh.getBytesTotal(); пихай на _root.onEnterFrame в первый кадр (собственно, единственный)... туда же пихай всякие там процентов рассчет и т.п. Так все работает...

Кстати, ты че мне сказал, что мув - это растр... я с трудом услышал это пищани... Только благодаря тому, что бук у меня на коленях... Так сказать, внутренним ухом уловил...

Если не работает (хотя этого не может быть), или че-то не подходит, дай знать...

Старый 20.07.2002, 15:35
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 8  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
все правильно... на то, чтобы получить сведения о размере файла тоже нужно время...
но я не понимаю зачем тебе вообще засекать размер в самом начале... никто не мешает опрашивать getBytesTotal каждый кадр - это несколько избыточно, но затраты времени на эту операцию ничтожны...

зы: встретились как-то Nob, Nex и Nox :)))))

Старый 20.07.2002, 15:56
Nox Noctis вне форума Посмотреть профиль Отправить личное сообщение для Nox Noctis Посетить домашнюю страницу Nox Noctis Найти все сообщения от Nox Noctis
  № 9  
Nox Noctis
don't panic!
 
Аватар для Nox Noctis

Регистрация: Aug 2001
Сообщений: 4,121
+ фишка еще в том, что гетБайтсЛоадед\Тотал можно опрашивать и у обычных клипов в которые ничего не грузится... поэтому если у тебя клип, в который ты грузишь не был пустым, то сначала и тотал и лоадед не будут равны нулю !..

Старый 20.07.2002, 17:15
Nob вне форума Посмотреть профиль Отправить личное сообщение для Nob Найти все сообщения от Nob
  № 10  
Nob

Регистрация: Aug 2001
Адрес: St Petersburg
Сообщений: 65
> Nex

Ты прав - в корне все работает, однако не менее прекрасно оно работает если повторять опрос постоянно, при этом неважно куда подвешен код - на контейнер, куда грузим, на индикатор или хотя бы прямо в корень (_root).

Конечно на опрос функции требуется время, однако
можно проверять результат, возвращаемый getByteTotal() (звучит абсурдно, но вот статистика опроса - -1; 0; реальный размер), см. код далее, подвешенный на контейнер:

onClipEvent (load) {
this.total=0;
this._NAN_total=-1;
_root.t=total;
}

onClipEvent (enterFrame) {
// Это, если лениво каждый раз опрашивать размер
if ((total <> NAN_total) || (total = 0)) {
NAN_total=total;
total=getBytesTotal();
_root.t="total is "+total
};
// Опрос в каждом frame'е
// total=getBytesTotal();
// _root.t="total is "+total

_loaded=getBytesLoaded();
this.pt=_loaded;
}

Фильма с растром была из 1 кадра, вот я и положил sound, что под руками было.

P.S. Это ты хорошо заметил, насчет внутреннего уха...

> Nox Noctis

1. С фишкой все ясно - any clip все равно ведь грузился, вне зависимости, обрабатывал ты событие load или нет.

2. Опрашивать "каждый раз" можно и все конечно будет работать, но ...
2.1. Существует алгоритмическое программирование
2.2. Когда суммарный AS тянет на 40-50 Kb, слоев и клипов на сцене немерено и диспетчер все это шарит... вопрос вызова может стать критичным. Хотя, кто знает?
(Сейчас обвинят в sNobизме. Шутка.)

Так что, все работает в клипе и вне его. Спасибо ребята. Топику конец. Надеюсь, что не знакомству.
Закончу, кину link, если интересно.

Удачи всем!

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

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

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


 


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


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