`

Flint Particle粒子入门教程(五):关于Initializer

阅读更多
在Flint Particle粒子中,Initializer是初始化器,它在粒子开始构建的时候用到。
package org.flintparticles.common.initializers
{
	import org.flintparticles.common.emitters.Emitter;
	import org.flintparticles.common.particles.Particle;	
	public interface Initializer
	{
		function getDefaultPriority():Number;
		function addedToEmitter( emitter:Emitter ):void;
		function removedFromEmitter( emitter:Emitter ):void;
		function initialize( emitter:Emitter, particle:Particle ):void;
	}
}

它是建立粒子和播放器的时候用的,比较前面的Action类接口,他们的形式很类似。

getDefaultPriority():Number;
addedToEmitter( emitter:Emitter ):void;
removedFromEmitter( emitter:Emitter ):void;
initialize( emitter:Emitter, particle:Particle ):void;

Action类接口:
getDefaultPriority():Number;
addedToEmitter( emitter:Emitter ):void;
removedFromEmitter( emitter:Emitter ):void;
update( emitter:Emitter, particle:Particle, time:Number ):void;

《获得默认的优先级;
《加到发射器;
《从发射器移除;
《刷新(发射器、粒子和事件作为参数);

initialize类接口:
		getDefaultPriority():Number;
		addedToEmitter( emitter:Emitter ):void;
		removedFromEmitter( emitter:Emitter ):void;
		initialize( emitter:Emitter, particle:Particle ):void;

《获得默认的优先级;
《加到发射器;
《从发射器移除;
《初始化(发射器、粒子和事件作为参数);

InitializerBase implements Initializer
InitializerBase 实现了Initializer接口。
package org.flintparticles.common.initializers
{
	import org.flintparticles.common.emitters.Emitter;
	import org.flintparticles.common.particles.Particle;	
	public class InitializerBase implements Initializer
	{
		public function InitializerBase()
		{
		}
		public function getDefaultPriority():Number
		{
			return 0;
		}
		public function addedToEmitter( emitter:Emitter ):void
		{
		}
		public function removedFromEmitter( emitter:Emitter ):void
		{
		}
		public function initialize( emitter:Emitter, particle:Particle ):void
		{
		}
	}
}

下面我们以SharedImage这个初始化器作为说明。
package org.flintparticles.common.initializers 
{
	import flash.display.DisplayObject;
	
	import org.flintparticles.common.emitters.Emitter;
	import org.flintparticles.common.particles.Particle;	
	public class SharedImage extends InitializerBase
	{
		private var _image:DisplayObject;
		public function SharedImage( image:DisplayObject )
		{
			_image = image;
		}
		public function get image():DisplayObject
		{
			return _image;
		}
		public function set image( value:DisplayObject ):void
		{
			_image = value;
		}
		override public function initialize( emitter:Emitter, particle:Particle ):void
		{
			particle.image = _image;
		}
	}
}

我们分析一下。
public class SharedImage extends InitializerBase

这里我们用了继承类,也就是很多的代码和函数我们用了继承,默认的情况下,所有的函数都从InitializerBase继承过来了,有些我们需要重写的就重写一下就行。
private var _image:DisplayObject;

这里增加了一个类里唯一的私有变量_image,它是DisplayObject类型的。
我们注意到在Particle类中,image的类型是待定的(也就是任意类型)
public var image:* = null;

* 该对象用于显示图像。在一个二维粒子,这通常是DisplayObject 。
* 在三维粒子,这可能是一个DisplayObject ,显示牌上的或相似的,
* 或者一个三维物体的形式提供给渲染系统使用。
好了,基本上就到这里。

分享到:
评论

相关推荐

    flint粒子系统-飞翔的乌鸦flash 3d

    《飞翔的乌鸦》——基于Flint粒子系统的Flash 3D技术详解 在数字艺术与游戏开发领域,粒子系统已经成为创建动态效果、如火焰、烟雾、水波、星光等不可或缺的工具。其中,Flint粒子系统是一款强大的开源粒子编辑器,...

    BornGrass-flint粒子系统-完美的草丛flash 3d

    《BornGrass-flint粒子系统:打造极致真实的Flash 3D草丛效果》 在数字艺术与游戏开发领域,粒子系统是一种重要的技术手段,用于创建动态的、视觉上吸引人的效果,如火焰、烟雾、水流、草动等。本文将深入探讨...

    Flint_2_1_3_source.zip_Flint_2_1_3_source_flex

    《Flint 2.1.3:Flex中的3D粒子系统库详解》 Flint 2.1.3 是一款专为Adobe Flex开发者设计的3D粒子系统库,它的核心功能在于提供强大的工具来创建令人惊叹的视觉效果,如火焰、烟雾、雪花、星光等。这款开源库为...

    flint:前端入门套件

    **Flint前端入门套件** 是一款专为初学者设计的工具包,旨在简化前端开发的初始阶段。它特别强调了CSS预处理的功能,帮助开发者更高效地编写样式代码。预处理器如Sass、Less或Stylus允许开发者使用变量、嵌套规则、...

    数论库flint手册

    - **性能调优**:提供了关于如何针对特定应用场景调整FLINT性能的指导。 - **配置选项**:列举了一些重要的配置选项及其作用。 - **基准测试**:介绍了如何使用基准测试来评估不同配置的效果。 #### 十四、示例程序...

    Flint: Making Sparks (and Sharks!)

    在某个峰会上,他深入探讨了Flint的相关知识,特别是其架构和安装流程。Flint项目的目标是将大数据分析服务(Big Data Analytics Service,简称BDAS)带入亚马逊网络服务(Amazon Web Services,简称AWS)的大众市场...

    FLINT Jul 2012.pdf

    FLINT(FLEXIBLE INTERCEPTOR A REALISTIC MISSILE SIMULATION SOFTWARE)是一款针对商品游戏(commodity games)的现实主义导弹模拟软件。它能在不需要复杂引擎支持的情况下,为游戏提供相当真实的导弹和火箭弹道的...

    flint-web-sdk:JavaScript 中的 Flint Web SDK

    script src =" //openflint.github.io/flint-web-sdk/out/flint_receiver_sdk.js " > </ script > < script src =" //openflint.github.io/flint-web-sdk/out/libs/mediaplayer.js " > </ ...

    flint:用于智能合约的Flint编程语言

    int石编程语言 Flint是一种新型的类型安全,面向合同的编程语言,专门用于在以太坊上编写健壮的智能合同。 Flint仍处于alpha开发阶段,尚未准备好用于生产中。 中型文章: 和编程2018! 论文:当前工作文件: 在苏珊...

    flint8.5 on linux特效合成系统.pdf

    flint8.5 on linux特效合成系统.pdf

    flint_加密方法_C++语言库

    标题中的“flint”可能是指该库的项目名,它可能来源于英文单词“flint”,意为燧石,象征着点燃知识的火花。这个库很可能提供了核心的加密和解密功能,包括但不限于对称加密、非对称加密、哈希函数和消息认证码等。...

    flint-receiver-sdk:弃用的项目

    script src =" //openflint.github.io/flint-receiver-sdk/v1/receiver.js " > </ script >< script src =" //openflint.github.io/flint-receiver-sdk/v1/receiver_wrapper.js " > </ script &...

    Flint:Flint框架,用于使用功能驱动开发在Apple平台上构建应用程序

    Flint是一个框架,可使用Swift的功能根据功能和操作为Apple平台构建应用程序。 应用的功能是根据运行时限制启用的; 系统权限,操作系统版本或应用内购买。 它需要您的操作,并提供增强的日志记录,自动分析事件,...

    前端开源库-flint-babylon

    3. **预设组件**:`flint-babylon`可能包含了预设的3D对象和组件,如相机、粒子系统、UI元素等,方便开发者快速搭建3D场景。 4. **性能优化**:通过针对前端应用场景的优化,`flint-babylon`可能提高了Babylon.js在...

    基于Flint的师生互动实证研究论文.pdf

    "基于Flint的师生互动实证研究论文" 本文是基于Flint的师生互动实证研究论文,主要探讨基于Flint的师生互动实证研究。Flint是 Foreign Language Interaction System 的缩写,是一种互动分析系统,用于分析课堂师生...

    flint-web-sender-sdk:弃用的项目

    Flint 是一个跨平台的消息传递框架,而 `flint-web-sender-sdk` 是该框架的一个组成部分,专门设计用于Web应用程序的发送端SDK。这个SDK允许Web应用与Flint服务器进行交互,实现消息发送、接收或其他相关功能。然而...

    monkey自动化测试入门

    monkey测试入门基础操作: 1.准备 2.基本命令格式 基本语法 命令参数介绍:1) 参数: -p 2) 参数: -v 3)参数: -s 4) 参数: --throttle 毫秒> 5) 参数: --ignore-crashes 6) 参数: --ignore-...

    数论库FLINT

    强大的数论库

    flint-browser-extension:弃用的项目

    火石浏览器扩展 适用于 Chrome \ Firefox \ Safari 的 OpenFlint 浏览器扩展 1.如何构建 1.1 Chrome ./grunt ./forge-extension build chrome 1.2 火狐 ./grunt ./forge-extension build firefox

Global site tag (gtag.js) - Google Analytics