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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 09.11.2007, 21:46
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 1  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
Attention проблема с BitmapData.draw()

Есть два абсолютно идентичных сайта kalacheevsky.ru и kmkmeat.basdesign.ru. На этих идентичных сайта есть идентичные флэшки (вверху страницы). В эти флэшки грузится картинка, преобразуется в BitmapData, масштабируется и отображается. Ничего сложного. Но вот только на kmkmeat все и всегда работает, а на kalackeevsky.ru работает ровно половина. Т.е. на половине компов работает, а на половине нет. Причем если на компе все работает правильно, то это работает во всех бразуерах и на всех версиях плэера.
Теперь поконкретнее. Загрузка картинки проходит нормально, создание экземпляра проходит нормально и присоединение его к MovieClip и отображение тоже проходит нормально. Не работает (мне кажется что именно не работает) функция draw.
Теперь немного кода:
Грузим клип:
Код:
myListener = new Object();
var mcLoader:MovieClipLoader = new MovieClipLoader();
image_loaded = -1;

myListener.onLoadComplete = function (target_mc) {
	//image_loaded = 1;
	trace("my movie clip loaded to "+target_mc);
}
myListener.onLoadInit = function (target_mc) {
	image_loaded = 1;
}

myListener.onLoadError = function (target_mc, errorCode) {
	image_loaded = -1;
	removeMovieClip(target_mc);
	trace("ERROR CODE = " + errorCode);
	trace("Your load failed on movie clip = " + target_mc + "\n");
}
mcLoader.addListener(myListener);

function loadImg(obj:Object) {
	image_loaded = 0;
	trace(obj.attributes['img']);
	this.createEmptyMovieClip("temp_mc", _root.getNextHighestDepth());
	temp_mc._alpha = 0;
	this["bg"]._alpha = 0;
	mcLoader.loadClip(obj.attributes['img'], temp_mc);
}
Потом идет прелоэдер, его код я не буду показывать... далее просто создаем bitmapData:
Код:
import flash.display.BitmapData;
mcLoader.removeListener(myListener);
delete mcLoader;
delete myListener;
if (temp_mc!=undefined && image_loaded==1) {
	_root.createEmptyMovieClip("bg", bg.getDepth());
	var tmpBmp:BitmapData = new BitmapData (temp_mc._width, temp_mc._height, false, 0/*color*/);
	var _bmp:MovieClip = bg; //находим MovieClip, куда будет вставлена картинка
	temp_mc._alpha = 50;
	tmpBmp.draw(temp_mc); //отрисовываем MovieClip, в котором содержиться картинка
	_bmp.attachBitmap(tmpBmp, 0, "always", true); //помещаем внутрь MovieClip
	_bmp.cacheAsBitmap = true;
	_bmp._x = 0;
	_bmp._y = 0;
}
На выходе получаем полупрозрачную каринку поверх чёрного фона! В чем проблема???

Старый 09.11.2007, 22:09
Mnilionic вне форума Посмотреть профиль Отправить личное сообщение для Mnilionic Найти все сообщения от Mnilionic
  № 2  
Ответить с цитированием
Mnilionic
 
Аватар для Mnilionic

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
вы создаёте клип bg и помещаете его на уовень этово же bg, которого ещё не существует. Может в этом гвоздь?
Код:
var _bmp = _root.createEmptyMovieClip("bg", _root.getNextHighestDepth());

Старый 09.11.2007, 22:28
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 3  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
эту строку я добавил в ходе тестирования и она никакой смысловой нагрузки не несёт и, к сожалению, не является причиной ошибки.
раньше на её месте было: _root.createEmptyMovieClip("bg", bg.getDepth());
а ещё раньше этой строки вообще не было. Но ни в одном из этих вариантов ничего не работало.
Да, и ещё раз хочу отметить - флэшки на обоих сайтах абсолютно одинаковые, т.е. это вообще один и тот же файл. Но на одном сайте работает, а на другом - нет

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

Регистрация: Apr 2007
Сообщений: 1,369
Возможно тут косяк:
Код:
var tmpBmp:BitmapData = new BitmapData (temp_mc._width, temp_mc._height, false, 0/*color*/);
temp_mc._width и temp_mc._height Вы же получаете от MovieClipLoader при onLoadInit, так или нет?

Хотя, если там где-то работает, то в принципе, не тут косяк.
Может сервер отдает криво, от куда Вы получаете УРЛ картинки?
--------------
На kalacheevsky.ru не смог зайти, что бы лицезреть глюк, может не у всех 8-й плеер стоит?
------------------
Парень, лежащий в травке с ноутом и колбасой, однако


Последний раз редактировалось Molecula; 09.11.2007 в 23:33.
Старый 09.11.2007, 23:29
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 5  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Проверьте зависимость от наличия www в адресе, draw может не работать из-за этого, т к домен с www и без www по умолчанию разные, и вступают в игру политики междоменной безопасности
__________________
4am is time to rock

Старый 10.11.2007, 01:22
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 6  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
Molecula, вряд ли ошибка в этом. Дело в том, что если бы ошибка была в размерах, то картинка создавалась бы неправильного размера, а у неё размер правильны... да и получаю я картинку после onLoadInit...
Код:
myListener.onLoadInit = function (target_mc) {image_loaded = 1;}
...
if (temp_mc!=undefined && image_loaded==1) {...}
а почему не смог зайти на kalacheevsky?
DarkLight, а как связано draw и наличие/отсутствие www? картинка загружается нормально, она просто не обрисовывается почему-то...


Последний раз редактировалось Dr.OH; 10.11.2007 в 01:25.
Старый 10.11.2007, 01:23
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 7  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
на всякий случай проверил - и там и там нет www. Т.е. грузятся картинки одинаковым образом.

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

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Цитата:
Сообщение от Dr.OH
DarkLight, а как связано draw и наличие/отсутствие www? картинка загружается нормально, она просто не обрисовывается почему-то...
У загрузки и draw() разные политики безопасности, у draw() жестче. Сам сталкивался с такой проблемой дважды (грузится, draw не работает), решилась когда прописал allowInsecureDomain и crossdomain.xml кинул.
__________________
4am is time to rock

Старый 10.11.2007, 02:38
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 9  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Цитата:
Сообщение от Dr.OH
Но вот только на kmkmeat все и всегда работает, а на kalackeevsky.ru работает ровно половина. Т.е. на половине компов работает, а на половине нет.
У меня и там, и там работает одинаково и, видимо, неправильно: отображается картинка и, слоем выше, такая же, но масштабированная и полупрозрачная.

Если набираю еще и www, то на обоих сайтах между слоями с картинкой отображается черный прямоугольник.
__________________
Дело не в тебе

Старый 10.11.2007, 04:38
Molecula вне форума Посмотреть профиль Отправить личное сообщение для Molecula Найти все сообщения от Molecula
  № 10  
Ответить с цитированием
Molecula
 
Аватар для Molecula

Регистрация: Apr 2007
Сообщений: 1,369
Кстати да, но не просто черный прямоугольник, а полупрозрачный черный прямоугольник как бы, поверх картинки. Вторая, которая уменьшенная дожны быть - не появляется. Похоже, на сервере чёт нахимичили.

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

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

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


 


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


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