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

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

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

Регистрация: Feb 2006
Сообщений: 37
По умолчанию почему картинка BitmapData отображается черным прямоугольником?

Картинки подгружаются с сервера, их названия берутся из XML
потом под onLoadInit они отрисовываются битмапом draw и заменяются - для лучшего сглаживания

однако: на некоторых компах они оказываются невидимыми, т.е., судя по всему, целиком прозрачными.
а если убрать прозрачность, выставив ей false, то они становятся черными квадратами.

А фишка в том, что происходит это далеко не на всех компах, а только на тех, которым только что поставили новый флеш плеер, версии 9.0.45.0
а до этого они были девственны, плеера на них никакого не было.
Остальные компы все отображают нормально, причем и на прозрачность (true false) им плевать - отрисовывают свой квадратик растра так, как надо.

от чего могут быть такие черные прямоугольники вообще?

битмап делается примерно так:
Код:
//подмена изображения и удаление оригинала
function changeImg(mc:MovieClip):Void{		

//создаем прозрачный BitmapData с шириной и высотой картинки
var tmpBmp:BitmapData = new BitmapData (mc._width, mc._height, false, 0);
var _bmp:MovieClip = mc._parent.imgBmp; //находим MovieClip, куда будет вставлена картинка
tmpBmp.draw(mc); //отрисовываем MovieClip, в котором содержиться картинка
_bmp.attachBitmap(tmpBmp, 0, "auto", true); //помещаем внутрь MovieClip

mc._parent.createEmptyMovieClip("ki", 909);
mc.swapDepths(mc._parent.ki);
mc.removeMovieClip(); //удаляем оригинал

}

Старый 24.05.2007, 19:54
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 2  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Код:
(mc._width, mc._height, false, 0x00);
Вообще должно быть так, попробуйте...чесно говоря я остальной код не читал
__________________
Free-lance | Twitter | Me

Старый 24.05.2007, 20:27
Micar вне форума Посмотреть профиль Отправить личное сообщение для Micar Найти все сообщения от Micar
  № 3  
Ответить с цитированием
Micar
 
Аватар для Micar

Регистрация: Feb 2006
Сообщений: 37
Спасибо, но, увы, не помогает

а на ливДоке пишут, что BitmapData у некоторых так печтатается - черными квадратами...

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

блогер
Регистрация: Nov 2006
Адрес: Минск
Сообщений: 370
Записей в блоге: 6
Отправить сообщение для vapes с помощью ICQ Отправить сообщение для vapes с помощью Skype™
Скорей всего ты делаеш draw до того, как загрузицца картинка, если она у тебя не встроенная, а подгружаецца.

Старый 24.05.2007, 21:20
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Код:
//создаем прозрачный BitmapData с шириной и высотой картинки
var tmpBmp:BitmapData = new BitmapData (mc._width, mc._height, false, 0);
Прозрачный BitmapData делается с помощью true, а не false.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 24.05.2007, 21:48
Micar вне форума Посмотреть профиль Отправить личное сообщение для Micar Найти все сообщения от Micar
  № 6  
Ответить с цитированием
Micar
 
Аватар для Micar

Регистрация: Feb 2006
Сообщений: 37
Цитата:
Прозрачный BitmapData делается с помощью true, а не false.
да, это верно - зарапортовалась уже с этой проблемой
прошу прощения.

и все же - от чего бы bitmapData мог оборачиваться черными квадратами? да еще и не на всех машинах?

+++++

собственно проблема - если оно true (прозрачное) - то все картинки прозрачные, т.е. их не видно,
а если оно false - то картинки становятся черными квадратами.
Отчего вообще битмап может стать черным квадратом? он считает, что его залили черным? или не работает опция draw (не отрисовывается) ?

может, я неправильно экспортирую класс?

Код:
import mx.utils.Delegate;
import flash.display.BitmapData;


Последний раз редактировалось Micar; 24.05.2007 в 21:56.
Старый 24.05.2007, 21:59
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Если false сменить на true, то у меня все прозрачное
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Feb 2006
Сообщений: 37
Цитата:
Скорей всего ты делаеш draw до того, как загрузицца картинка, если она у тебя не встроенная, а подгружаецца.
спасибо!

делаю в лоадИнит
Код:
imgList.onLoadInit = Delegate.create(this, changeImg); //замена картинок
завтра попробую проверить, может, вставить туда ф-цию по-простому? - увы, тестировать можно только на одном компе, остальные видят все как миленькие

Старый 24.05.2007, 22:05
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 9  
Ответить с цитированием
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Вообще об этом несоответвии в документацией можно почитать в подписе iNils - a.

з.ы. я сейчас вожусь с переводом доков по битмап, может iNils ты к себе разместишь то что не переведенно?
__________________
Free-lance | Twitter | Me

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

Регистрация: Feb 2006
Сообщений: 37
Цитата:
Если false сменить на true, то у меня все прозрачное
ну, моя проблема в том, что они становятся прозрачными ЦЕЛИКОМ - вся фотография, т.е. ее не видно, а нажимать на нее можно и открывает она то, что надо.


а если выставить false То они целиком же черные.


а мне надо чтобы показывались сами фотографии...


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


+++++++

кстати о несоответствии прочла именно у iNils-a - за что спасибо, равно как и за перевод!

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

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

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


 


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


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