flixel v3.3.0 Release Notes

Release Date: 2014-04-24 // about 10 years ago
    • Added flash gamepad support. This either requires a swf-player-version of 11.8 to be set or FLX_NO_GAMEPAD to be defined.
      • FlxGamepad.getAxis() has been split into getXAxis() and getYAxis() for consistency across targets
      • FlxGamepad.dpadUp / Down / Left / Right don't work in flash, use getButton() in conjunction with the IDs in the button ID classes instead
    • ➕ Added "tracker" window to the debugger which creates a Watch window with the most important properties of an object
      • Use FlxG.debugger.track(Object); to create a new tracker window
      • Use FlxG.debugger.addTrackerProfile() to add a profile for classes don't have one yet or override existing ones
      • Use the "track [object]" command to open a tracker window from the console
    • FlxCamera:
      • Added static defaultCameras array which is used by FlxBasics when their cameras array has not been set - previously the use of FlxG.cameras.list / all existing cameras was hardcoded
      • Fixed a bug where following a target would prevent you from setting the coordinates of the camera
    • Added pooling for FlxPoint, FlxVector, and FlxRect. Usage: var point = FlxPoint.get(); /* do stuff with point */ point.put(); // recycle point. FlxPoint.weak() should be used instead of get() when passing points into flixel functions, that way they'll be recycled automatically.
    • 🏁 Debugger windows:
      • Fixed dragging of overlapping windows
      • Fixed the visibility of windows on native targets (now saving correctly)
      • Fixed resizing when moving the mouse to the left / above the window
    • 🛠 FlxPath: fixed a bug with drawDebug()
    • FlxG:
      • fullscreen: fixed offset in flash
      • openURL(): now adds "http://" to the URL if necessary
      • Added maxElapsed
      • Fixed some variables not being reset in resetGame()
      • added FlxG.accelerometer for mobile targets
    • FlxSound:
      • Added loadByteArray()
      • Now has a read-only variable time
      • Allow sound caching on all targets instead of only on Android
      • Added FlxG.sound.soundTrayEnabled to allow dis- and enabling the tray at runtime
      • survive -> persist
    • 👀 MouseEventManager:
      • Improved handling of visible / exists
      • Now works on FlxObjects
      • addSprite() -> add()
    • FlxPoint:
      • Added floor() and ceil()
      • Added add() and addPoint() (removed add() from FlxVector)
      • Added subtract() and subtractPoint() (removed substract() from FlxVector)
    • 🔄 Changed the default html5 backend to openfl-bitfive
      • Middle and right mouse events are now supported
      • Sounds are now supported
    • 0️⃣ FlxObject: replaced forceComplexRender by pixelPerfectRender which rounds coordinates by default (if true) for drawing (also on cpp targets, making it consistent with flash)
    • FlxText:
      • Added shadowOffset
      • Fixed the widthInc and heightInc of addFilter() which did not work at all previously
      • Separated visible and physical width by adding fieldWidth to fix a bug
      • Added autoSize that makes sure the entire text is displayed if true with wordWrap = false. Setting fieldWidth to 0 in the constructor is now allowed and activates this behaviour.
      • Fixed variation in height of empty texts
    • FlxSpriteUtil: added bound()
    • FlxSpriteGroup:
      • Added FlxTypedSpriteGroup, which can be used in the same way as FlxTypedGroup, but its type parameter is T:FlxSprite
      • Setting cameras will now set cameras on its members, add()-ing a sprite will synchronize the values
    • Abstracted rendering into FLX_RENDER_TILE and FLX_RENDER_BLIT conditionals as opposed to being hardcoded based on the target
    • FlxTween:
      • num(): added an optional tweenFunction parameter which can be used for increased performance (as MultiVarTween and SingleVarTween are fairly slow, using Reflection)
      • singleVar() and multiVar() have been replaced by tween()
      • Removed SfxFader and Fader
    • FlxKeyboard:
      • Implemented a workaround for function and numpad keys not working on native targets
      • Added FlxKey.NUMPADMULTIPLY / "NUMPADMULTIPLY"
      • Added firstPressed(), firstJustPressed() and firstJustReleased()
    • ➕ Added FlxCallbackPoint, a FlxPoint that calls a function when x, y or both are changed.
    • FlxTilemap:
      • Replaced scaleX and scaleY by a scale FlxPoint
      • Removed rayHit(), ray() provides the same functionality
    • ➕ Added FlxDestroyUtil (FlxG.safeDestroy() -> FlxDestroyUtil.destroy())
    • ⚡️ Debugger stats window: added a button to expand the window and show two more graphs (draw and update time)
    • ➕ Added buildFileReferences() macro to FlxAssets.hx (auto-completion for asset string paths)
    • FlxTilemap.computePathDistance() is now public and has a new StopOnEnd parameter
    • ➕ Added FlxColor.MAGENTA
    • ➕ Added FlxMouse.setGlobalScreenPositionUnsafe()
    • FlxTypedButton:
      • Fixed label.visible = false; not working
      • Fixed a one-frame-delay between setting the label's position and it taking effect
      • Fixed label scrollFactor being out of sync before the first update()
    • FlxButton: Added a text property as a shortcut for label.text
    • FlxSprite:
      • Added support for more texture packer formats: LibGDXData, SparrowData, TexturePackerXMLData
      • Fixed a null error crash in FlxAtlas on cpp targets with haxe 3.1.0+
      • setOriginToCenter() -> centerOrigin()
      • Fixed a "jittering"-issue between simple and complex render sprites due to rounding
      • Removed flipped as well as the "Reverse" param from loadGraphic() and loadGraphicFromTexture()
      • Added flipX, flipY and setFacingFlip() - graphics can now be flipped vertically as well
      • Fixed a bug with flipped graphics + origin on FLX_RENDER_TILE targets
    • FlxPreloader:
      • Spit up FlxPreloader into FlxPreloader and FlxPreloaderBase to make it easier to extend
      • Small fix that should prevent it from getting stuck
      • Added siteLockURLIndex to control which URL in allowedURLs is used when the site-lock triggers
      • allowedURLs now works with URLs that don't start with "http://"
    • 🛠 Fixed camera shifting after resizing with StageSizeScaleMode
    • ➕ Added flixel.util.FlxSignal and FlxG.signals
    • FlxAnimationController:
      • Added append(), appendByNames(), appendByStringIndices(), appendByIndices() and appendByPrefix()
      • addByStringIndicies() -> addByStringIndices()
      • addByIndicies() -> addByIndices()
      • Fixed a bug with callback firing every time play() was called instead of only when the frame changes
    • FlxTypedGroup: added forEachOfType() iterator
    • FlxGamepad:
      • Added anyPressed(), anyJustPressed() and anyJustReleased()
      • Added PS4ButtonID
    • 0️⃣ Traces are not being redirected to the debugger log window anymore by default
    • 🛠 Fixed mouse cursor scale at initial camera zoom levels different from 1
    • FlxState: active, visible and exists are now respected
    • FlxVector: substractNew() -> subtractNew()
    • 🛠 FlxGradient: fixed a memory leak in the overlayGradientOn()-functions
    • FlxTimer and FlxPath:
      • paused -> active
      • abort() -> cancel()
      • removed pooling due to potential issues
      • start() -> new FlxTimer() / FlxPath()
      • run() -> start()
    • 🚚 FlxTimer and FlxTween: removed userData