n0wa
16.11.2006, 01:19
Доброго времени суток.
Продолжая свои экзерсизы с флешем наткнулся на баг не баг, фичу не фичу, даже не знаю как это обозвать ;)
Вообщем ситуация.
Задача. есть три ( в перспективе больше ) файла с кусками тела игрока.
из этих файлов в зависимости от ситуации создается мув этого самого игрока в определенной позиции. файлы - гифы, все что не нужно - прозрачно.
происходит следующее
если 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;
}
15790
Продолжая свои экзерсизы с флешем наткнулся на баг не баг, фичу не фичу, даже не знаю как это обозвать ;)
Вообщем ситуация.
Задача. есть три ( в перспективе больше ) файла с кусками тела игрока.
из этих файлов в зависимости от ситуации создается мув этого самого игрока в определенной позиции. файлы - гифы, все что не нужно - прозрачно.
происходит следующее
если 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;
}
15790