[Flash/Flex] Starling之资源管理类

转自:http://bbs.9ria.com/thread-175613-1-1.html

概述

每个游戏或应用都必须有若干的资源——无论是纹理,声音,位图文字,或其它各种对象。这些资源可以是嵌入的(可以理解为所有资源都在一个文件的浏览器游戏)或随游戏进行的(适用于手机游戏保存RAM需要嵌入对象)。
在如何引入资源以不同的方式访问它们有许多选择。AssetManager帮助你做到这些。它是允许你以各种方式添加资源,并且很轻易地调用它们的类。
目前,AssetManager支持下列类型的资源:
·纹理
·纹理图集
·声音
·位图文字

加载资源
比方说你要从硬盘加载一些资源,并从嵌入类加载其它资源。这里是如何通过AssetManager来加载它们。
首先,创建一个具有嵌入声明的类。
  1. public class EmbeddedAssets
  2. {
  3.     // 纹理
  4.     [Embed(source="/textures/bird.png")]
  5.     public static const bird:Class;

  6.     // 声音
  7.     [Embed(source="/audio/explosion.mp3")]
  8.     public static const explosion:Class;
  9. }
复制代码


对于嵌入资源,遵循这些命名规范:
·嵌入图片的类名必须与文件名完全相同,不含扩展名。这是必须的以便从(图集,位图文字的)XMLs引用不会中断。
·图集和文字XML文件可以使用任意名字,因为它们永远不会通过文件名来引用。
然后让AssetManager实例化资源:
  1. var assets:AssetManager = new AssetManager();
  2. assets.verbose = true;

  3. // 对 "bird"纹理和"explosion"声音进行排队
  4. assets.enqueue(EmbeddedAssets);

  5. // 对来自特定地址的文件进行排队
  6. assets.enqueue("http://gamua.com/img/home/starling-flying.jpg");

  7. // 对来自硬盘的文件进行排队(仅AIR)
  8. var appDir:File = File.applicationDirectory;
  9. assets.enqueue(appDir.resolvePath("music.mp3"));

  10. // 对一个目录所有的内容进行递归排队(仅AIR)
  11. assets.enqueue(appDir.resolvePath("textures"));

  12. // ->现在加载所有的队列中的资源。当“ratio”等于1时,完成加载.
  13. assets.loadQueue(function(ratio:Number):void
  14. {
  15.     trace("Loading assets, progress:", ratio);

  16.     if (ratio == 1.0)
  17.          startGame();
  18. });
复制代码


你可以用相同的方式来添加纹理图集和位图文字:只要把XML文件和它们引用的纹理加到队列中,它们将会被加载。位图文字将被马上在TextField类中注册。你不能通过AssetManager来访问它们。

调用资源
要调用资源,只要使用类的不同方法。每次资源通过资源不带扩展名的名称或嵌入对象的类名来引用。
  1. // 这将首先搜索命名的纹理,然后再搜索图集
  2. var texture:Texture = assets.getTexture("bird");

  3. // 这将查看所有命名的纹理和图集
  4. var textures:Vector.<Texture> = assets.getTextures("animation");

  5. // 播放声音以及接收控制它的SoundChannel
  6. var explosion:SoundChannel = assets.playSound("explosion");
复制代码

注意
这个类已经用在Starling下载包中的“Demo”和“Scaffold”项目中。查看这些项目来看看在真实项目中是如何使用的。

译后言:好久没在天地会翻译了,不过学习在依旧,有些是译在自己的博客了 ,有时间才会翻译了,现在工作都很忙

原文链接:http://wiki.starling-framework.org/manual/asset_management

翻译词数:480

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
资源包括 PDF文档 文档中对STARLING以及相关框架的介绍以及代码实例 内容包括AS3 项目源文件两个 包含PDF中提到的例子 以及运行效果SWF10个 在Stage3D出现之前,Flash3D引擎( Papervision3D, Away3D,…)都是软解 CPU是通用处理器,没有为渲染三角形而优化过 Stage3D是一个新的Flash API。它专门用于实时3D渲染。用Stage3D,你可以让Flash充分利用用户计算机的GPU硬件加速能力。 GPU渲染过程比软件渲染模式快多了。GPU被设计用来干专门的工作:计算顶点和渲染三角形,如此而已。因为GPU硬件被用来处理专门的工作,所以硬件加速3D渲染就非常高效! Stage3D的API相对仍较为繁琐 • 比如绘制一个图形,在传统Stage中使用绘图API可能只需要几行代码,而Stage3D实现同样的图形显示却需要几十行或上百行代码 Starling的英文原意是叫做“八哥”的小鸟。 不过在Flash领域,Starling是一个ActionScript库,它模仿了传统的 Flash显示列表。然而,和传统的显示对象不同,Starling对象完全存在于Stage3D环境。这意味着,所有的显示对象都直接由GPU渲染,这 会带来非常明显的性能提升。 Starling并不是直接1:1的复制Flash API。所有的都针对GPU模式进行了精简和优化。Starling向开发者隐藏了Stage3D的内部细节,但如果您想创建自定义显示对象,也可以很容易访问到它们。 StarlingMVC是一个为使用Starling来开发游戏的MVC框架。这个框架的特性方面,很像Swiz和RobotLegs。特性列表如下: • 依赖注入(DI)/控制反转(IOC) • 视图代理(View Mediation) • 事件捕获(Event Handling) • 非侵入性框架 • 配置简单 • 容易扩展 • 包含了很多对您的游戏有帮助的工具 StarlingMVC 框架是基于 Apache License 2.0协议开源的. 以上为部分PDF内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值