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

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 05.12.2007, 12:20
CrazyFlasher вне форума Посмотреть профиль Отправить личное сообщение для CrazyFlasher Найти все сообщения от CrazyFlasher
  № 21  
Ответить с цитированием
CrazyFlasher
 
Аватар для CrazyFlasher

Регистрация: May 2003
Адрес: Tallinn
Сообщений: 3,182
Ну да, согласен...всё зависит от структуры кода. Где-то удобнее так, а где-то по-другому
__________________
Flash Developer
Папа TDP4 Team Battle

Старый 07.12.2007, 21:20
Beta-tester вне форума Посмотреть профиль Отправить личное сообщение для Beta-tester Найти все сообщения от Beta-tester
  № 22  
Ответить с цитированием
Beta-tester

Регистрация: Jul 2005
Сообщений: 154
При переделывании всего под MovieClipLoader появились некоторые проблемы.

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

Код:
//floadingnum - номер загружаемой превьюхи
floadingnum = 0;
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);
this.onLoadComplete = function() {
//Скроем progressbar и покажем превьюху
	_root.b[floadingnum].bar._visible = false;
	_root.b[floadingnum].prev._visible = true;
	delete _root.b[floadingnum].bar.onEnterFrame;
//переходим к следующей превьюхе
	floadingnum++;
//Проверим, может уже нечего загружать? :)
             if (count>floadingnum) {
//Далее включаем анимацию прогрессбара для следующей загрузки
	            _root.b[floadingnum].bar.onEnterFrame = function() {
		        _root.b[floadingnum].bar._rotation -= 15;
	             };
	             _root.b[floadingnum].strelka._visible = true;
	             _root.b[floadingnum].f._visible = false;
//Ну и наконец включам следующую загрузку
	             loader.loadClip("/prev/"+prev[floadingnum], _root.b[floadingnum].prev);
}
};

//Самая первая загрузка.
_root.b[0].bar.onEnterFrame = function() {
	_root.b[0].bar._rotation -= 15;
};
_root.b[0].bar._visible = true;
_root.b[0].prev._visible = false;
loader.loadClip("/prev/"+prev[0], _root.b[0].prev);
Принцип такой. Есть например пять обьектов, куда грузятся превьюхи. В массиве b содержаться их имена(я знаю что можно сделать лучше и правильнее, просто это не успел ещё переделать. Но и так работает. По этой асти вопросов нет). Есть сколько-то страниц(всё это получается из скрипта). При переходе на следующую страницу запрашиваются у пхп инфа+имена новых превью, а затем вызывается ОнЛоад(см. самое начало), который опять вызывает загрузку превью. И вот тут появляются проблемы. Если предыдущие превью не все загрузились, то начинается страшный бред. ИМХО, при переходе на новую страничку надо убить onLoadComplete. Но вот что я только не пробовал не помогает. Прбовал в ОнЛоад(см. самое начало), который брабатывает полученную инфу из ПХП, ставить loader.removeListener(this); не помогает!!!
Как быть? Как прервать загрузку и обработку событий загрузки при переходе на новую страницу? Или ошибка не сдесь?

В старом варианте с loadmovies была немного другая оработка(использовался onEnterFrame), которая припереходе на новую страницу затиралась и всё отдично работало.

ДОЮАВЛЕНО-------------------------------------------------------------------------------------------
ИМХО, если прибить loader(var loader:MovieClipLoader = new MovieClipLoader()), то всё должно работать нормально.
Подскажите плиз как обнулить или пересоздать или убить его?


Последний раз редактировалось Beta-tester; 07.12.2007 в 21:58.
Старый 07.12.2007, 21:51
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 23  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
По всей видимости сюда вставить проверку "страницы"
Код:
if (allcount>floadingnum) {
Только что такое страница\переход на новую страницу в данном контексте не понятно.
__________________
Hell is the possibility of sanity

Старый 07.12.2007, 22:08
Beta-tester вне форума Посмотреть профиль Отправить личное сообщение для Beta-tester Найти все сообщения от Beta-tester
  № 24  
Ответить с цитированием
Beta-tester

Регистрация: Jul 2005
Сообщений: 154
Для того чтобы не сбивать с мысли исправил allcoun на count, где count - число превьющек. Скрипт выдаёт постраничную информацию. И может так случиться,то на последней будет напрмер не 5, а только 3 превьюхи. Вот в count и будет 3. Эта проверка для этого.

А сам переход на страницы сдесь не привидён(слишком весомо сюда всё вставлять). Смысл таков. Есть ф-ция ОнЛоад(о ней я в начале предыдушего поста написал), она получает от скрипта инф, обрабатывает и вызывает загрузку. Т.е. преход на новую страницу - всеголишь вызов пхп скрипта с другим параметром. Т.е. изначально вызываем пхп скрипт так чтобы он выдал первую страницу, а при переходе надругую вызываем пхп с параметром stranica=3 к примеру. Дальше обработчик онЛоад получает всю инфу и распихиват всё по полкам. Всё предельно просто.
Но имхо копать надо совсем не здесь.
Ошибка скорее всего тут:
Если не все превью загрузились и был нажат переход на новую страницу, то начатая загрузка продолжается и тут начинается новая загрузка. Неуспевает ещё загрузиться новая превью, как загружается старая(с прошлой страницы), а листнер то общий!!!
Как убить loader(var loader:MovieClipLoader = new MovieClipLoader()) или оборвать все его закачки и обработки событий, как бы сброс сделать?

Добавлено -----------------------------------------------------------------------------

Появилась идея. Если причина там, где я дуаю то можно попробовать проверять тот ли файл загрузился. Вот какой вопрос:
Вот код:
Код:
var loader:MovieClipLoader = new MovieClipLoader ();
loader.addListener (this);
this.onLoadStart = function () {
	trace ("Загрузили!");
};
loader.loadClip ("q.jpg", _root.m.mc.w);
loader.loadClip ("w.jpg", _root.m2.mc.w);
Как в onLoadStart получить имя загржуженного файла?


Последний раз редактировалось etc; 07.12.2007 в 23:34.
Старый 07.12.2007, 23:31
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 25  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код:
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);
this.onLoadStart = function(mc:MovieClip) {
	trace(mc._url);
};
loader.loadClip("http://flasher.ru/forum/image.php?u=37925&dateline=1196123285",_root.createEmptyMovieClip("clip",0));
По идее так. Только не понимаю, чем это поможет...
__________________
Hell is the possibility of sanity

Старый 07.12.2007, 23:34
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 26  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Beta-tester получает второй плюс.

Старый 08.12.2007, 00:18
Beta-tester вне форума Посмотреть профиль Отправить личное сообщение для Beta-tester Найти все сообщения от Beta-tester
  № 27  
Ответить с цитированием
Beta-tester

Регистрация: Jul 2005
Сообщений: 154
Цитата:
Сообщение от wvxvw
Код:
var loader:MovieClipLoader = new MovieClipLoader();
loader.addListener(this);
this.onLoadStart = function(mc:MovieClip) {
	trace(mc._url);
};
loader.loadClip("http://flasher.ru/forum/image.php?u=37925&dateline=1196123285",_root.createEmptyMovieClip("clip",0));
По идее так. Только не понимаю, чем это поможет...
Огромное спасибо. Убедился, что там где прогнозировал косяк есть. Завтра буду исправлять.
Как и писал выше косяк в том, что при переходе на другую страницу начатая закачка не обывается. Соответсвенно когда уже устаревшая закака завершается вызывается ОнЛоадКомплит. А в его обработчике не проверяется, какой файл загрузился и он считает, что загрузился файл на новой странице.

P.S. Возможно это не единственный косяк. Завтра буду смотреть...

Цитата:
Сообщение от __etc
Beta-tester получает второй плюс.
Как вы правильно заметили в прошлый раз я на этом форуме очень давно. И вот тогда, когда я на нём активно общался такого маразма с принудительным выставлением тега CODE не было...+на всех форумах, которые я сейчас часто посещаю никто не заставляет ставить тег CODE. Хочешь ставь хочешь не ставь. Вообще это первый встреченный мною форум где из-за такого пустяка чутли не скандал устраивают.
Вы думаете я специально игнорирую ваши замечния? Это автоматически оисходит. Если несколько лет подряд елать одно и тоже,то потом в одночасье прекратить это длать или делать подругому не получиться...привычка называется
А вообще какая разница? Неужели эта рамка делает что-то красивее? не говорю про то, что чтение ИМХО только усложняется.

Старый 08.12.2007, 00:23
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 28  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от Beta-tester
Это автоматически оисходит.
Вот и плюс тоже — автоматически. У вас было достаточно времени на исправление, не заметить косяк просто невозможно.
Нужно уважать собеседников, оформляя код. Всегда.
Продолжать полемику на эту тему я очень не рекомендую, ибо вредно.

Для тех, кому непонятно, зачем оформлять код: это необходимо для того, чтобы простыня кода не была выравнена по левому краю, не была без табуляции и не расстягивала страницу форума на два километра по вертикали и горизонтали. Про правильный моноширинный шрифт, нормальное копирование, отсутствие левых переносов я вообще промолчу.


Последний раз редактировалось etc; 08.12.2007 в 01:51.
Старый 08.12.2007, 00:41
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 29  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
И не было подобных эффектов со смайлами:
var dateata = new Date ();

Beta-tester, данный вопрос не обсуждается и что правила других форумов нас не интересует. Поэтому либо вы их соблюдаете, либо покидаете форум - раз забываете.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 08.12.2007, 09:20
Beta-tester вне форума Посмотреть профиль Отправить личное сообщение для Beta-tester Найти все сообщения от Beta-tester
  № 30  
Ответить с цитированием
Beta-tester

Регистрация: Jul 2005
Сообщений: 154
Цитата:
Сообщение от __etc
Нужно уважать собеседников, оформляя код. Всегда.
Уважать нужно.

Цитата:
Сообщение от __etc
Продолжать полемику на эту тему я очень не рекомендую, ибо вредно.
Уважаемые модераторы. Я не собирался обсуждать правила. Я обьяснил причину, очему так происходит, обьяснил, что происходит это не специально. Даже в уголовном кодексе предусмотрены смягчения за не преднамеренное совершение преступления.

P.S. Пошёл на путь исправления. Прошу мне в этом помочь и не бить больше вилами! Больно всё-таки

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

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

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


 


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


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