Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Flex > загрузить картинку gif с альфа каналом


Автор: shuttle 27.11.2010, 20:37
загружаю картинку gif с альфа каналом. 

Код

private var red:Sprite=new Sprite();
private var loaderHero:Loader=new Loader();

loaderHero.contentLoaderInfo.addEventListener(Event.COMPLETE, onHero);            
loaderHero.load(new URLRequest("2.png"));            

... 

public function onHero(e:Event):void
{
            var bitmap:BitmapData=new BitmapData(20, 20);            
                                    
            red.graphics.beginBitmapFill(bitmap);                    
            red.x=400;
            red.y=300;
            red.graphics.drawRect(-10,-10,20,20);            
            red.graphics.endFill();            
            addChild(red);                            
}


Отображается только белый прямоугольник. Как загружать картинку с альфой?

Автор: SoWa 27.11.2010, 22:10
GIF в флеше кажется альфа-канал не поддерживает. По крайней мере  меня не получилось и я на GIF забил.
PNG поддерживает. Ты PNG и грузишь, а не GIF smile

А где, собственно, добавление загруженной картинки на спрайт?
Обычно это делается так:
Код

var loader: Loader = new Loader();
loader.load(new URLRequest('2.png'));
addChild(loader);

Автор: shuttle 28.11.2010, 10:44
И gif и png пробовал. С обоими были проблемы уже разобрался оба грузятся правильно

Код

public function onHero(e:Event):void
        {                        
            var loadedImage:Bitmap=Bitmap(loaderHero.content);
            var bitmap:BitmapData=new BitmapData(loadedImage.width, loadedImage.height,true, 0x00FFFFFF);            
            bitmap.draw(loadedImage, new Matrix());
    
            var matrix:Matrix=new Matrix();
            matrix.translate(-10, -10);                                                
                                                
            red.graphics.beginBitmapFill(bitmap,matrix);                    
            red.x=400;
            red.y=300;
            red.graphics.drawRect(-10,-10,20,20);            
            red.graphics.endFill();                        
            addChild(red);                            
        }


Вот исходник, может кому и пригодится.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)