Показать сообщение отдельно
Старый 16.11.2006, 01:19
n0wa вне форума Посмотреть профиль Отправить личное сообщение для n0wa Найти все сообщения от n0wa
  № 1  
Ответить с цитированием
n0wa

Регистрация: Oct 2006
Сообщений: 13
По умолчанию copyPixels. поиск юзан, хелп читан.

Доброго времени суток.

Продолжая свои экзерсизы с флешем наткнулся на баг не баг, фичу не фичу, даже не знаю как это обозвать

Вообщем ситуация.

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

происходит следующее

если bit создавать без прозрачности (false) то все ок (всмысле картинка собирается как надо, но он не прозрачный =(). а вот если прозрачным, то в битмапе остается только последний скопированый кусочек т.е. рука.

эффект не понятен. почему так? по идее должно быть наоборот. если прозрачность есть то она должна учитываться, если - то нет.

код ниже.
Код:
function CreatePlayer(posx,posy,hands,legs,torso,weapon,pos,sit,sex)
{
var mc:MovieClip = new MovieClip;
var bit:BitmapData = new BitmapData(32, 40);//, true, 0x000000);
var up:Number = 0;
if(pos >= 8)
	return 0;
if(sit){
	sit = 1;up = 3}
if(sex)
	sex  = 1;

mc = createEmptyMovieClip(mc, this.getNextHighestDepth());

if(pos < 4)
	bit.copyPixels(hands,new Rectangle(32*pos,0,32,40),new Point(0,up));
else
	bit.copyPixels(hands,new Rectangle(256 + 32*pos,0,32,40),new Point(0,up));

bit.copyPixels(torso,new Rectangle(32*pos + 256*sex,0,32,40),new Point(0,up));
bit.copyPixels(legs,new Rectangle(32*pos + 256*sit,0,32,40),new Point(0,0));

if(pos >= 4)
	bit.copyPixels(hands,new Rectangle(32*pos,0,32,40),new Point(0,up));
else
	bit.copyPixels(hands,new Rectangle(256+32*pos,0,32,40),new Point(0,up));

mc.attachBitmap(bit,10);//,"auto",true);

return mc; 
}
mytest.zip


Последний раз редактировалось iNils; 16.11.2006 в 02:05.