Starling做移动开发,会用到大量的纹理和图片素材、XML配置等文件,需要频繁使用AssetManager类加载和使用他们,有时如果获取素材时报错,不知道AssetManager类的调用顺序就会对调试造成困难。因为工作需要对AssetManager的内部加载流程做了一次跟踪调试,这里做一次记录和整理,以备他用。
AssetManager中,在调用enqueue方法向加载队列添加要加载的素材后,需要在最后调用loadQueue方法,所以也是从这里开始探索AssetManager的加载流程。因为期间使用了大量的函数变量,为了简便说明,将会根据各个函数的大写缩写给他们命名。
一、用到的方法
1、loadQueue方法(LQ)
方法中的几个函数变量构成整个流程所需的步骤,他们分别是:
loadQueueElement(LQE)
loadNextQueueElement(LNQE)
processXmls(PXS)
finish(F)
2、processRawAsset方法(PRA)
包含的函数变量:
process(P)
3、loadRawAsset方法(LRA)
包含的函数变量:
onUrlLoaderComplete(OULC)
onLoaderComplete(OLC)
complete(C)
4、addTextureAtlas(ATA)
5、addTexture(AT)
6、addXml(AX)
7、removeTexture(RT)
二、加载流程
1、加载纹理
LQ -> LQE -> PRA -> LRA -> OULC -> OLC -> C -> P -> AT -> LNQE -> PRA(next)
2、加载纹理XML配置
LQ -> LQE -> PRA -> LRA -> QULC -> C -> P(xmls.push) -> LNQE -> PRA(next)
3、加载其他文件
LQ -> LQE -> PRA -> LRA -> QULC -> C -> P -> P -> AX -> LNQE -> PRA(next)
加载其他文件的时候,在 P 方法中会因为传入的是二进制数据类型而调用 P 两次。
分享到:
相关推荐
- Starling使用AssetManager管理资源加载。在Web环境中,确保正确配置预加载策略,以防止资源未完全加载就启动应用,导致错误或性能下降。 5. **帧率波动**: - Web环境中的帧率可能受到浏览器内其他进程的影响。...
你可以加载图片文件作为纹理,或者使用BitmapData创建自定义纹理。 4. **QuadBatch** 和 **BatchNode**:Starling使用批次渲染技术提高性能。QuadBatch是基本的渲染批次,用于渲染矩形图元;BatchNode则是一个容器...
- **纹理**:在Starling中,`Texture`类用于表示图像数据,通常是从图像文件加载而来。纹理可以应用于任何显示对象,用于绘制复杂的图形效果。 - **Image**:`Image`类提供了一种简单的方式来显示静态图像。它可以被...
- **加载流程**:支持异步加载和缓存机制,提高加载效率。 ##### 4.12 屏幕尺寸适应 - **自动调整**:Starling提供了工具来自动适应不同屏幕尺寸的变化。 - **布局策略**:根据设备屏幕尺寸动态调整布局。 ##### ...
在Gamua-Starling-Framework-def24cc这个压缩包子文件的文件名称中,我们可以推测它包含了Starling框架的一个特定提交版本(def24cc可能是Git或其他版本控制系统的提交哈希)。这通常意味着你将得到一个稳定且经过...
2. **资源管理**:利用AssetManager管理游戏中的图片、音频、字体等资源。 3. **场景设计**:创建多个Scene,每个Scene代表游戏的不同阶段或界面。 4. **对象建模**:使用DisplayObject和DisplayObjectContainer...
Starling提供了一套简化的API,使得Flash和Flex的开发人员可以较为容易地在他们的项目中使用GPU加速功能。Starling主要面向游戏开发,但也可以应用于其他需要高性能2D图形的场景,如创建UI组件。 Starling框架的...
- **Texture和Image**:纹理和图像的处理是Starling中的一大重点,正确管理纹理资源可以极大提升渲染效率。 - **碰撞检测**:Starling提供了简单的碰撞检测机制,适用于大多数2D游戏开发需求。 - **绘图API**:...
4. **纹理 atlases**:Starling支持纹理 atlases,这是一种优化资源加载和管理的方法,可以将多个小图像打包到单个大纹理中,减少内存占用和加载时间。 5. **粒子系统**:内置的ParticleSystem类使得创建复杂的粒子...
- **轻量级**:**Starling** 的代码库不大(大约 **80K** 左右),这使得它加载速度快,不会给应用程序增加过多负担。 - **免费开源**:遵循 **Simplified BSD License**,可以在个人和商业项目中免费使用,并且可以...
本篇文章将深入探讨如何在Starling中实现图片旋转,并讨论如何消除旋转过程中可能出现的锯齿现象,特别是在桌面应用中。 首先,我们需要理解Starling中的基本概念。Starling的核心是`DisplayObject`类,它是所有可...
在`demo`文件中,可能包含了这样的资源文件,用于展示如何加载和使用。 ```actionscript var atlas:TextureAtlas = TextureAtlas.load("resources/atlas.png", "resources/atlas.xml"); var texture:Texture = ...
其次,Starling框架中的Texture Atlas技术是优化资源加载和渲染的关键。开发者可能将所有的星星图像和其他图形资源放入一个或多个纹理 atlas中,这样可以减少纹理切换的开销,提高游戏性能。在"PerishStar"中,这些...
1. "library.swf" - 这是Starling框架的运行时库,包含了所有必要的类和资源,当SWC文件被导入到项目中时,这个SWF文件会被链接到项目中,使得Starling的功能可以在运行时被调用。 2. "catalog.xml" - 这是SWC文件的...
在微信飞机大战的源码中,我们可以看到如何使用Starling创建游戏场景、加载资源、管理对象生命周期以及实现游戏循环等关键功能。 “Flash”是Starling所依赖的基础平台,虽然现在Flash在网页端的应用逐渐减少,但在...
Starling 任意形状遮罩是一种在AS3(ActionScript 3)环境中,使用Starling框架实现的高级图形处理技术。Starling是一个针对Adobe Flash Player和Adobe AIR的2D游戏开发框架,它允许开发者利用硬件加速来提升游戏...
例如,`hegdemahesh-hanuman-2f2a2a5`这个文件名可能是某个基于Starling框架开发的游戏项目,可能包含了源代码、资源文件和其他相关素材。 通过阅读`hegdemahesh-hanuman-2f2a2a5`中的源码,我们可以学习到如何组织...
Starling9宫格类库是针对Adobe ...为了充分利用这个类库,你需要解压并研究这些文件,理解其工作原理,并将其集成到你的Starling项目中。通过实践和调试,你将能够熟练掌握如何在自己的应用中使用9宫格缩放技术。
资源包括 PDF文档 文档中对STARLING以及相关框架的介绍以及代码实例 内容包括AS3 项目源文件两个 包含PDF中提到的例子 以及运行效果SWF10个 在Stage3D出现之前,Flash3D引擎( Papervision3D, Away3D,…)都是软解 ...
`swc` 文件是编译后的库文件,可以直接导入到Flash Builder或IntelliJ IDEA等IDE中使用。`examples` 文件夹包含了各种使用Feathers组件的示例项目,通过这些实例可以学习如何在实际项目中应用组件。`documentation` ...