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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 24.10.2004, 02:59
Visor вне форума Посмотреть профиль Отправить личное сообщение для Visor Найти все сообщения от Visor
  № 1  
Visor
[+1.3 25.09.06]

Регистрация: Aug 2002
Сообщений: 42
По умолчанию Путешествие под 3 соснами

Есть у меня маааленькая проблема. Провозился уже большое количество времени, но ответа так и не нашел. Постановка задачки следующая: работаю с БД, отсылаю-собираю данные и прочее. Ну и решил картинки (фоты на людей из БД) рисовать при запросе на полные данные. Ну, дурное дело не хитрое - картинки Из БД повыковырял. Осталось дело за малым отображать. Что есть проще? Вроде бы делаешь loadMovie и все ОК. Все это хорошо, но физиономии есть не на всех человеков, поэтому когда нужного файлика нет нужно вместо фоты выводить картинку-дефолт. Значит в чем собственно проблема. Механизм определения наличия файла я высосал из пальца (но он работает). Но если файла из БД на человека нет, то дефолтовская картинка не рисуется (просто черный квадрат). Отдельно дефолт рисуется нормально, а совместно с фотками из БД нифига. Что за лажа?

По поводу кода, есть вводная: Face - псевдоклип, созданный
createEmptyMovieClip("Face",0);
filename-это относительный путь файла (фотка создается на основе Фамилии клиента).
потом загружаем данные (someClip - просто пустой клип, мы его используем чтобы проверить "всасываемость" файла).
Если if выполняется, то картинка из БД есть (уже в виде файла) и я ее благополучно всасываю. Вопрос в следующем, почему если !(if), то не отображается дефолтовская (путь точно правильный). Самое странное, что даже если то что в "else" поставить БЕЗ условия на строчку выше перед IF, то результат абсолютно не меняется? Если сменить IF на !IF (т.е. сделать от противного), то таже петрушка.


...
var filename="images/"+index.Фамилия+".jpg";
loadVariables (filename, "someClip");
var i=0;
if(_root.someClip)Face.loadMovie(filename);
else Face.loadMovie("images/face.jpg");

Старый 24.10.2004, 03:30
Visor вне форума Посмотреть профиль Отправить личное сообщение для Visor Найти все сообщения от Visor
  № 2  
Visor
[+1.3 25.09.06]

Регистрация: Aug 2002
Сообщений: 42
Никому я не скажу почему я торможу....блин, понял в чем косяк. Да только вопрос все равно остается открытым: как из flash узнать загрузился ролик (файл есть) или нет? А то я тут разбирал пару "левых" способов. С одним из которых еще и малость протормозил...

Старый 24.10.2004, 04:57
Antares вне форума Посмотреть профиль Найти все сообщения от Antares
  № 3  
Antares
Banned
[+1 16.05.2006]
[++1 16.05.2006]
[+ 1 21.05.06]
[++ за хамство]
[+1 21.05.2006]
 
Аватар для Antares

Регистрация: Dec 2003
Сообщений: 3,925
Сверять его getBytesLoaded с getBytesTotal... вернее не его, а мувика, в который грузишь

Старый 24.10.2004, 21:03
Visor вне форума Посмотреть профиль Отправить личное сообщение для Visor Найти все сообщения от Visor
  № 4  
Visor
[+1.3 25.09.06]

Регистрация: Aug 2002
Сообщений: 42
Угу, интересное предположение. Если ролик есть, то получаем getBytesLoaded=10Кб, getBytesTotal=10Кб, а если не загружен, то getBytesLoaded=0, getBytesTotal=0 . Впрочем идея неплохая, если известно что image>1Кб, то все что меньше, есть "отсутствие изображения". Ок, спасибо за наводку - щаз проверю.

Старый 24.10.2004, 21:38
Visor вне форума Посмотреть профиль Отправить личное сообщение для Visor Найти все сообщения от Visor
  № 5  
Visor
[+1.3 25.09.06]

Регистрация: Aug 2002
Сообщений: 42
Как и ожидалось, с точки зрения логики нелохо, а сточки зрения практики не очень. Имеем следующее:

function ShowData(a){

if(Face.getBytesTotal()==0)Face.loadMovie("images/face.jpg");

gotoAndPlay(xxx);

}


Face.loadMovie(filename);
Face.OnLoad=ShowData(this);

В итоге должны получить следующее: если BytesTotal!=0 (т.е. картинка есть), то катим на ххх. В жизни имеет место то, что хотя Movie.OnLoad (то есть загружено), его TotalBytes==0, почему? Мне тоже интересно почему. Дело в том что если картинки нет, то getTotalBytes может быть сколько? Можно написать <2048 (2Кб). А если загружена, то ТОЧНО больше (все images>4000 байтов). Но мы все равно вместо "filename" почему-то имеем "face.jpg".

Короче вот такие вот пироги...
P.S. Кстати мне казалось, что OnLoad срабатывает только после того, как весь мувик закачивается. С точки зрения этого примера это явно не так. Не успевает судя по всему и байта закачаться, из-за чего вместо нужной фотки имеем дефолтовсую и катим дальше по gotoAndPlay.

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

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

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


 


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


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