Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   почему картинка BitmapData отображается черным прямоугольником? (http://www.flasher.ru/forum/showthread.php?t=96164)

Micar 24.05.2007 19:52

почему картинка 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(); //удаляем оригинал

}


screamge 24.05.2007 19:54

Код:

(mc._width, mc._height, false, 0x00);
Вообще должно быть так, попробуйте...чесно говоря я остальной код не читал

Micar 24.05.2007 20:27

Спасибо, но, увы, не помогает :(

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

vapes 24.05.2007 20:58

Скорей всего ты делаеш draw до того, как загрузицца картинка, если она у тебя не встроенная, а подгружаецца.

iNils 24.05.2007 21:20

Цитата:

Код:

//создаем прозрачный BitmapData с шириной и высотой картинки
var tmpBmp:BitmapData = new BitmapData (mc._width, mc._height, false, 0);


Прозрачный BitmapData делается с помощью true, а не false.

Micar 24.05.2007 21:48

Цитата:

Прозрачный BitmapData делается с помощью true, а не false.
да, это верно - зарапортовалась уже с этой проблемой :)
прошу прощения.

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

+++++

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

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

Код:

import mx.utils.Delegate;
import flash.display.BitmapData;


iNils 24.05.2007 21:59

Если false сменить на true, то у меня все прозрачное

Micar 24.05.2007 22:01

Цитата:

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

делаю в лоадИнит
Код:

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

screamge 24.05.2007 22:05

Вообще об этом несоответвии в документацией можно почитать в подписе iNils - a.

з.ы. я сейчас вожусь с переводом доков по битмап, может iNils ты к себе разместишь то что не переведенно?

Micar 24.05.2007 22:08

Цитата:

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


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


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


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


+++++++

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


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

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