Version 4.0.1 released
There was a critical bug in version 4.0.0 so here’s a quick update to fix that bug.
Bugs fixed
- Fix error where the first particle is only updated on alternate update cycles.
- Fix error in TurnAwayFromMouse action.
New feature
- TweenToCurrentPosition 2d Action for creating a tween from a random start points to predefined end points.
The full list of commit notes is on Github.
All examples on this site have been updated to the new version.
Projects that work with version 4.0.0 of Flint will need no modifications to work with this version.
Get the new version from the source code page and let me know of any bugs or comments on the forum. If you want to contribute to the next version of Flint, fork the project on Github.
Posted on 17 October 2011
Version 4.0.0 released
Earlier this week I released version 4.0.0 of Flint. This release is to support the new crop of 3d engines that are using Stage3d for rendering. As part of this it was necessary to alter a couple of APIs, hence the major release number incrementing to 4. The core architecture of Flint remains unchanged.
New features
- Support for Away3d version 4
- Support for Flare3d version 2
- Support for Alternativa3d version 8
Big thank you to Michael Ivanov for his work on these new integrations.
Significant changes
- A new package structure means the Away3d version 3 and Papervision3d integration code has moved into the integration package.
- The ImageClass initializer now takes a class and an array of parameters in the constructor, rather than using a class and …(rest) parameters. This serves two purposes
- The class can be extended and the parameters passed through to the superclass constructor
- The class now takes additional parameters for object pooling, which can be strongly typed and optional
- The ImageClass initializer and its derivatives can optionally be configured to reuse images from particles when they die, to improve the performance. This is done by setting the usePool property to true, via the constructor or the property itself.
- The documentation has been restructured to enable browsing of just the documentation for a selected render method – 2d, 3d, Away3d, Flare3d, etc.
Bugs fixed
- getArea of DiscSectorZone doesn’t seem to take min/max angle into account
- Error in value of PARTICLE_REMOVED event type constant.
- Removing particle during update causess a null reference error.
- Strange behaviour with 2d collide and bounding box actions.
The full list of commit notes is on Github.
All examples on this site have been updated to the new version. I also added a new example specifically for the 3d engines, using a textured sphere for each particle.
If you have existing Flint projects, most code from version 3.x.x will continue to work unaltered. Code that uses the ImageClass initializer or the Away3d or Papervision3d integration will require minor alterations as described above.
Get the new version from the source code page and let me know of any bugs or comments on the forum. If you want to contribute to the next version of Flint, fork the project on Github.
Posted on 16 October 2011
Flint and Molehill
We’ve been doing a lot of work recently on adding molehill (aka Flash 11) support to Flint. Rather than integrate molehill support directly in to Flint, I decided that the best way, at least for now, to bring the power of molehill to Flint is to integrate with the 3D rendering libraries that are themselves integrating with molehill. So we’ve been adding support for the molehill compatible versions of Away3D, Flare3D and Alternativa3D.
When I say we, I mostly mean Michael Ivanov. Michael started contributing to Flint when he sent me some improvements to the Away3D 3 integration in Flint. Later, when he suggested adding support for Away3D 4, I encouraged and helped him while he did most of the work. He followed this up with the Flare3D and Alternativa3D integrations and so we are now ready with support for all these libraries within Flint.
The source code is in a branch in Github, and is still subject to change as the underlying projects change or as we discover improvements, but it all works so far so please, if you’re interested in support for these libraries in Flint, do check out the code and take it for a spin. Any feedback you can give will be greatly appreciated.
The documentation is also online, and there are a few examples in the molehill branch of the Flint_Examples project.
I have received some suggestions of other ways that Flint can take advantage of the power in molehill, including support for the M2D rendering engine for 2D graphics, creating native molehill renderers inside Flint, and using AGAL to speed up generic calculations inside Flint. All good ideas, and all ideas I’ll not have time to explore myself. So if anyone else would like to explore these or other ideas with Flint please follow Michael’s lead, fork the code and let me know what you’re up to and how I can help. I can’t promise to write lots of code for you, but I will answer questions and help you as much as I can.
Have fun
Richard
Posted on 28 July 2011
Version 3.0.1 released
Today I released version 3.0.1 of Flint. This is a minor bugfix release. There are no API changes so it should be fine for all users of version 3.0.0 to update immediately. Fixes and changes are…
- Fix error in particles property getter.
- Modify Quaternion class to improve performance
- Fix bug with Random counter not running
- Modify TweenToZone to ensure it restarts every time
That’s all. As ever, you can get the new version from the source code page and please let me know of any bugs or comments on the forum. If you want to contribute to the next version of Flint, fork the project on Github.
Posted on 27 February 2011
Version 3.0.0 released
Today I released version 3.0.0 of Flint. The core architecture of Flint remains unchanged but a number of details have changed. In particular many APIs have changed, which is why the major version number has changed.
The driver for this change was switching the 3D libraries to use Flash’s native 3D geometry classes and the consequential dropping of support for Flash Player 9.
The main changes are
- Flint no longer supports Flash Player 9. The minimum requirement for Flint is now Flash Player 10.
- All three-d geometry uses Flash’s native Vector3D and Matrix3D classes, where previously Flint had its own custom Point3D, Vector3D and Matrix3D classes.
- The coordinate system for Flint’s own 3D renderers was altered to a right-hand coordinate system, and an initial camera position with with x-axis to the right, y-axis down and z-axis into the screen to match the coordinate system used by the Flash Player. This doesn’t affect renderers that use Away3D or Papervision3D.
- Internally, Flint uses Vectors rather than Arrays in a number of places. This affects many methods including the particle utils methods createPixelParticlesFromBitmapData and createRectangleParticlesFromBitmapData and the actions, initializers and activities properties of the Emitter class.
- The Emitter’s addExistingParticles method was replaced with addParticles, and supplemented with removeParticles, addParticle and removeParticle.
- The Emitter’s particles property no longer returns the actual particles array used internally by the Emitter. Instead it returns a vector containing all the particles. This frees the Emitter to use a different internal representation of the particles collection. If behaviours need the Emitter’s space-sorted array of particles they should use the new read-only particlesArray property.
- The energyEasing classes are no longer required. All easing functionality in Flint uses standard easing classes, as included in Flint’s easing package and in Adobe’s mx.effects.easing package.
- The WrapAroundBox action was added. This causes particles to re-enter on the opposite side when they leave the defined area.
- The Ring display object was added (contributed by Adrian Stutz).
- A new Stats tool was added for displaying frame-rate, memory use and the number of particles in use.
The full list of commit notes is on Github.
All examples on this site have been updated to the new version.
If you have existing Flint projects, some code from version 2.x.x will continue to work unaltered (this is more likely with 2D particle effects than 3D effects). Other code will require minor changes.
Get the new version from the source code page and let me know of any bugs or comments on the forum. If you want to contribute to the next version of Flint, fork the project on Github.
Posted on 20 January 2011
Version 3.0.0 beta
A couple of months ago I started work on a version of Flint that used Flash’s native Vector3D and Matrix3D classes. That Flint has it’s own 3D geometry classes causes confusion for a number of users and since Flash10 is now pretty-much ubiquitous it’s about time for Flint to make the switch over to these native classes.
Aside from avoiding confusion, I also hoped that using the native 3D geometry classes might provide two other benefits
- Improve performance
- Make the jump to Molehill easier
The first didn’t happen. In fact, initially using the native classes was a lot slower, but after much optimization I have the performance back to, and a little past, where it was before.
For the second benefit, we’ll have to wait and see when Molehill appears.
Switching to the native classes means a lot of API changes. So I’m taking the opportunity to make some other useful alterations. Nothing major, just a few Vectors in place of Arrays and a tweak here and there. Some effects will work unaltered with the new version while others will need small adjustments.
I also altered Flint’s native 3D renderers to use the same right-hand coordinate system that Flash uses for it’s native 3D. The coordinate system only affects the renderers – the rest of Flint is agnostic to the coordinate system used. So if you use the Away3D renderers then you’ll still get Away3D’s left-hand coordinate system.
Anyway, the new version, which due to the significant API changes will be called version 3.0, should be out early in the new year. Most of it is done, the only remaining elements are updating the examples and the documentation and a bunch more testing.
If anyone wants to try the new version (I’m already using it in a project) it’s in the Github repository. I’d appreciate any feedback you can provide.
Thank you all.
Richard
Posted on 24 December 2010
Version 2.2.1 released
Today I released version 2.2.1 of Flint. This includes changes to support version 3.6 of Away3D. If you are using an earlier version of Away3D you should stick with version 2.2.0 of Flint.
- Add support for version 3.6 of Away3D
- Fixed createPixelParticlesFromBitmapData() to ignore transparent pixels – see discussion
That’s all. It’s a small release but I wanted to get the update for Away3D out sooner rather than later.
A big thank you to Michael Ivanov for his help with the Away3D stuff. As ever, you can get the new version from GitHub, Google code or downloads and use the forum to let me know of any bugs you find.
Posted on 12 November 2010
Flint on GitHub
I’ve moved the development of Flint from GoogleCode to GitHub. I will continue to maintain the GoogleCode repository for those that are used to using it, but active development will now take place on the GitHub repository, with updates to the GoogleCode repository when a new version is released.
The GitHub repository is in two parts. The core, at http://github.com/richardlord/Flint, contains the source code for Flint. The second repository, at http://github.com/richardlord/Flint-examples, contains the examples. Documentation and compiled swcs are no longer in the repository but are available as downloads.
If you want to use SVN but want to access the GitHub repository, this is possible although the repository can’t be browsed so your SVN software will likely throw errors when doing anything other than check-out. The URLs for SVN access are http://svn.github.com/richardlord/Flint.git and http://svn.github.com/richardlord/Flint-examples.git.
Posted on 31 August 2010
Version 2.2.0 Released
Today I released version 2.2 of Flint. This version includes a significant addition with the introduction of collisions between particles and zones in 2D effects, plus various small bug fixes and improvements.
- Collisions between particles were introduced in an earlier release. With this release, I am introducing collisions between particles and zones. This means that any zone can be used to define a shape that particles will bounce off. Zones can be defined to approximate shapes for graphics so the particles appear to collide with the other graphics in the swf. In this version, these collisions are implemented for 2D zones only. 3D zones will have this feature in a later release.
- The Zone2D interface now includes a collideParticle method, used to test for and resolve collisions between particles and zones. Any custom 2D Zones will need to have this method added for compatibility. All 2D Zones in Flint have this method.
Also in this release
- Updated Away3D compatibility to version 3.5.
- Added DictionaryInitializer for copying a set of properties into the particles’ dictionary object. Contributed by Richard Clark.
- Added Ellipse display object contributed by Adrian Stutz.
- Fixed bug in TimePeriod counter where it occasionally failed to dispatch the counterComplete event on completion. (Bug report)
- Fixed bug in Steady counter where changing the rate when the counter was running would sometimes fail. (Bug report)
- Fixed bug in Emitter where running remained true after the Emitter had stopped. (Bug report)
- Fixed bug in DeathSpeed where it didn’t work with minimum speeds. (Bug report)
- Fixed bug in BitmapLineRenderer where coordinates were sometimes incorrectly mapped to the renderer. (Bug report)
- Fixed bug in A3DDisplayObjectClass where a brief glitch would appear when the Emitter was started. Thanks to desunit for the fix. (Bug report)
- Added new Pachinko and Rain examples to demonstrate the new collision effects.
Get the new version from GitHub, Google code or downloads and use the forum to let me know of any bugs you find.
Posted on 25 August 2010
Version 2.1.4 released
This morning I released version 2.1.4 of Flint. This is primarily a maintenance release, with a few bug fixes and couple of new behaviours. These are the changes…
- ParticleEvent.BOUNDING_BOX_COLLISION is now dispatched from the emitter when a collision occurs between a particle and the box in a BoundingBox action.
- Particle.revive() may be used to revive a particle at the moment of its death (i.e. in a ParticleEvent.PARTICLE_DEAD event handler). This makes it easier to rescue dying particles befor transfering them to another emitter. The LogoTween example was updated to reflect this change.
- FollowDisplayObject is a new activity to make the emitter track the position of a DisplayObject.
and the bug fixes
- Fixed a bug in the 2D RotationalFriction action that caused it to only work in one direction. (bug report)
- Fixed a bug in the 2D and 3D AntiGravity & MouseAntiGravity actions where the power was incorrect if assigned through the constructor (bug report)
- Fixed a bug in the bounds for the DisplayObjectZone that occured when the root MovieClip is resized (bug report)
- Fixed a bug in the 3D RotateVelocity initializer where it failed if the values where assigned through the constructor.
- Fixed a bug in the Quaternion class which sometimes affected 3D rendering when the camera was not on the x-axis (bug report)
Get the new version from SVN or downloads and use the forum to let me know of any bugs you find.
Posted on 16 April 2010
