as转html5工具,Flash资源转换工具

LayaFlash资源转换工具的作用是将Flash CS系列动画工具发布的swf文件经过解析转换成LayaFlash发布的H5最终能使用的素材文件。尽管经资源转换工具转换后的文件后缀也是“.swf”,但实际上已经不是原来的Flash应用程序生成的swf字节码文件了,它是LayaFlash根据原来的swf文件中的元件库包含的素材信息进行分析,重新生成的一个二进制文件。只是仍然沿用了“swf”的后缀名。

LayaFLash支持了AS3的应用域类ApplicationDomain,因而AS3原有的反射应用获取类定义功能不受影响。

下面我们一起学习怎么使用LayaFlash的资源转换工具将AS3使用的swf素材转变成能在H5游戏中使用的素材。

首先打开Flash CS6制作两个影片剪辑元件,其中一个放置在舞台上,命名为“stageAsset”,另一个影片剪辑原件添加链接类“asset.Dragon”:

f5630a35f15391aa8e4d790dba0f3b1a.png

43d23639a19806356e4380b2432db404.png

此fla源文件在示例项目目录下的“assetTransformTool”文件夹,大家可以打开源文件查看。

导出swf文件,看下项目入口类文件Main.as中的部分代码:private function loadAsset():void

{

var loader:Loader = new Loader();

loader.contentLoaderInfo.addEventListener(Event.COMPLETE,

assetLoadComplete);

loader.load(new URLRequest("assets/layaFlashAsset.swf"),

new LoaderContext(true, ApplicationDomain.currentDomain));

}

private function assetLoadComplete(event:Event):void

{

var loaderInfo:LoaderInfo = event.target as LoaderInfo;

loaderInfo.removeEventListener(Event.COMPLETE, assetLoadComplete);

var container:Sprite = new Sprite();

var content:MovieClip = loaderInfo.content as MovieClip;

var stageAsset:MovieClip = content.getChildAt(0) as MovieClip;

if (!stageAsset)

{

trace("stageAsset is null.");

return;

}

stageAsset.width = 220;

stageAsset.height = 200;

container.addChild(stageAsset);

var appDomain:ApplicationDomain = ApplicationDomain.currentDomain;

if (!appDomain || !appDomain.hasDefinition("asset.Dragon"))

{

trace("asset.Dragon is null.");

return;

}

var cls:Class = appDomain.getDefinition("asset.Dragon") as Class;

var dragon:MovieClip = new cls();

dragon.width = 240;

dragon.height = 200;

dragon.x = 300;

dragon.y = stageAsset.y;

container.addChild(dragon);

container.x = (stage.stageWidth - container.width) / 2;

container.y = (stage.stageHeight - container.height) / 2;

addChild(container);

}

代码分别使用了直接从舞台获取显示对象和通过反射应用新建一个链接类两种方式创建素材图片。swf素材所在的目录如下:

b5a466564e349adfc94473d0b56ac881.png

AS3下的运行效果:

f5a593471ef1f9e043894a1c6998df58.png

找到LayaFlash软件在计算机所在的路径,运行LayaFlash.exe,在打开的界面菜单栏依次点击“工具”、“资源转换工具”按钮,弹出资源转换工具弹窗:

a883db43765e5250dfcb46b86cecfcb4.png

将已经制作好的原版swf拖拽到弹窗中,也可以一次拖入多个,弹窗会自动显示此swf文件所在的文件路径,以及转换后的文件的存放路径。如果没有为转换后的资源设置存放路径,工具会默认在同目录下新建一个“output”文件夹存放新解析出的图片素材,我们使用默认的设置即可:

2d615d45b0d3a1e49a640952f189a273.png

点击开始转换按钮,开始转换资源:

a74f4fea326cde47d8c9f3caea90e398.png

提示转换成功界面后,点击“返回”。

打开“output”文件夹,里面包含了一个与转换前的swf文件名字相同的“swf”文件,这是开始提到的转换后产生的二进制资源文件。继续进入“output”下的一个与原版swf文件同名的目录,目录下的“image”文件夹存放了原版swf包含的所有图片资源:

46a4f650415f585a5b92a7ce5ef0fdae.png

5137afc8c5289f4c7b47418072d0bd50.png

最后我们只需将他们都复制到项目输出目录下的“h5”文件夹即可,“h5”文件夹相当于我们的H5项目的输出目录。具体复制位置与AS3项目中此素材在转换前所在的AS3输出目录里的层级对应:

7debff481dc467cde7ac52ee14a7f059.png

LayaFlash编译成H5后的运行效果:

8137ceb3ab0051de3325fbd696d6e96b.png

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Fanvas是一个把swfhtml5 canvas动画的系统,由两部分组成:Actionscript实现的解析器、js运行库。Flash做动画是最成熟最高效的方式,但由于终端基本不支持Flash播放,这给终端的动画制作带来了不少麻烦。Fanvas是Flash和Canvas的完美结合,可以把swf(包括矢量和位图)完美地化为canvas动画,让美术妹子一次制作,到处运行。。。嘿嘿~~~让美术妹子也搭上H5的快车。技术难点:兼容swf的各种格式,主要是各种矢量命令和多种多样的图片格式;实现高效的html5运行库,自主实现了位图缓存、自动脏区识别、脏区重绘等技术。优势:能swf为H5动画的工具,除了Fanvas还有大名鼎鼎的google和adobe的产品——swiffy和flashcc。 对比之下,Fanvas有如下优势:从swf文件直接化为Html5动画(google的swiffy和adobe的flashcc都不支持,两个产品都需要通过fla源文件处理);精简编排的JSON数据,使swf化后的js数据文件非常小,普遍比flashcc导出的要小20%到50%;精简的运行库,混淆后只有35k,gzip后只有10k左右。而swiffy和flashcc的运行库混淆后都超过100K;开源,可供使用者二次开发(请保留Fanvas字样或版权声明)。使用方法只需要一键导入swf化完成后一键导出canvas动画js。具体请参考bin目录的《使用说明》源代码说明exporter是as3.0实现的swf文件解析器,解析后输出json数据;runtime是js运行库,用于解析json数据,化为最终canvas动画。DEMO示例http://kenkozheng.github.io/fanvas/magicEmotion/demo1/http://kenkozheng.github.io/fanvas/magicEmotion/demo2/http://kenkozheng.github.io/fanvas/magicEmotion/demo3/http://kenkozheng.github.io/fanvas/magicEmotion/demo4/ 标签:Fanvas
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值