【问题标题】:Flash-Animated-GIF-LibraryFlash 动画 GIF 库
【发布时间】:2014-10-22 11:49:53
【问题描述】:
我正在尝试使用Flash-Animated-GIF-Library。它用于加载动画 gif。它使用 fileReference 类来完成,您必须在其中浏览文件夹,选择动画 gif,然后它将在舞台上显示。我需要在没有浏览部分的情况下显示动画 gif。无论如何都可以使用该类直接加载动画 gif,就像您使用 Loader 类加载和显示图像一样?如果是这样 - 如何?
【问题讨论】:
标签:
actionscript-3
bytearray
animated-gif
【解决方案1】:
是的,您有 2 个选项。
- 使用Loader 或URLLoader 类。 Example1, Example 2 (get bytearray)
- 嵌入图像并获取ByteArrayAsset。 Example
option1(Loader)的最小代码:
protected function handleCreationComplete(event:FlexEvent):void
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
loader.load(new URLRequest("yourgif.gif"));
}
private function loaderComplete(event:Event):void
{
var loaderInfo:LoaderInfo = LoaderInfo(event.target);
var byteArray:ByteArray = loaderInfo.bytes;
player.loadBytes(byteArray);
}
option1(URLLoader)的最小代码:
protected function handleCreationComplete(event:FlexEvent):void
{
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.BINARY;
loader.addEventListener(Event.COMPLETE, loaderComplete);
loader.load(new URLRequest("yourgif.gif"))
}
private function loaderComplete(event:Event):void
{
player.loadBytes(event.target.data);
}
对于选项 2:
[Embed(source="yourgif.gif",mimeType="application/octet-stream")]
public var YourGif:Class;
protected function handleCreationComplete(event:FlexEvent):void
{
var byteArrayAsset:ByteArrayAsset = new YourGif();
player.loadBytes(byteArrayAsset);
// should work, too
//player.loadBytes(new YourGif() as ByteArray);
}