Цитата:
Сообщение от djken
Увидел.. К этой библиотеке libwebp написано "You must include bin/libwebp.swc"..
Подключил libwebp.swc во Flash Builder - в этом проблем нет. Как теперь использовать в своем проекте? К этой библиотеке вкратце написано:
Код AS3:
package libwebp;
function DecodeWebp(webpByteArray:ByteArray):BitmapData;
function EncodeWebp(input:BitmapData, quality:Number):ByteArray;
Нужно создать отдельный as3 файл для этого пакета? Обычно я в swc сохраняю нарисованные интерфейсы, а в отдельном as3 файле наслюдуюсь и пишу уже конструкторы, методы для класса. А что тут мне нужно сделать? Пока не могу понять... Заранее спасибо за подсказку )
P.S. если просто пытаюсь обратиться к DecodeWebp, то FlashBuilder не видит этого метода
|
Нужно в as3 файле подключить это пространство имён, т.е. дописать
Код AS3:
import libwebp.*;
А затем уже использовать методы в библиотеке, т.е. скачать файл webp, прочитать из него ByteArray и передать в метод DecodeWebp, из него получить BitmapData.
Добавлено через 1 час 3 минуты
Если коротко, то примерно должно выглядеть так.
P.S. Нет под рукой рабочего флеша чтобы проверить, писал по памяти.
Код AS3:
package
{
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.events.Event;
import flash.utils.ByteArray;
import flash.net.*;
import libwebp.*;
/**
* ...
* @author Bletraut
*/
public class Main extends Sprite
{
private var loader:URLLoader;
public function Main()
{
var request:URLRequest = new URLRequest("https://www.gstatic.com/webp/gallery/1.webp");
loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.load(request);
loader.addEventListener(Event.COMPLETE, loaderCompleteHandler);
}
private function loaderCompleteHandler(event:Event):void
{
var bytes:ByteArray = loader.data;
var decodedBitmap:BitmapData = DecodeWebp(bytes);
}
}
}