Author Archive

FlexNA Beta 1.2

Thu, January 24, 2013 Leave a comment

New version is available for download over on the FlexNA homepage.  Here are the details:

FlexNA Beta 1.2 Release Notes

– Added a FlipMode property to DrawableEntity2D class. You can specify this property to make objects be drawn flipped horizontally or vertically. This causes the drawable entity to take advantage of XNA’s SpriteEffects enumeration when drawing itself with FlexNA’s Renderer2D (which derives from XNA’s SpriteBatch).

– Extended functionality of the ScreenElement2D class. It now contains properties to set a background color, layout mode (Zoom, Stretch, etc.), and Width and Height. Use ScreenElement2D as the basis for your game or application’s GUI/HUD elements if you need to draw and update large numbers of elements in a list. ScreenElement2D objects are added to a control’s Sprites collection and hundreds of them can be drawn without severely impacting performance like a bunch of Control objects would. Control objects provide built-in input and event handling but this functionality comes at a cost to performance when trying to render many controls at once. The ScreenElement2D class is much more lightweight and simply contains built-in draw behavior, allowing you to provide custom and tailor-made input/event handling. This update simply extends the functionality of the ScreenElement2D class by making it easier to use it as a basis for list elements in your game or application’s UI.

FlexNA Beta Update

Sat, April 21, 2012 Leave a comment


FlexNA Beta Release Notes:
Maintenance and Usability Improvements Update

+ Added virtual DrawBackground() method to the Screen class. Inheritors can override this method to provide custom background rendering for their custom screen classes. Results will appear below any FlexWindow controls.

+ Added an optional transform parameter to the BeginRendering() method of Renderer2D. Can now specify a transformation matrix when using Renderer2D.

– Fixed text alignment when changing the FontScale property on Label controls.
– Fixed some text alignment issues occurring when setting properties on the Label class in different orders. Text would be mis-aligned if the Font property was set after setting the Width or Height properties.

* The Origin property of the Control class is now readonly. Use the SetOrigin() method to change the origin on a control. Previously, if you tried to set the origin on the Origin property BEFORE setting the Width or Height properties, the origin wouldn’t take affect. SetOrigin() functions properly regardless of when you use it.

– Fixed a bug in CreateBeveledFrame(). The method was not creating the top-right and bottom-left corners of the frame as intended.
– Fixed bug in rendering control frames. Frames for all controls were being rendered at 50% opacity, but this functionality was supposed to be reserved for flex windows only.

– Improved input behavior for the FlexWindow class. Hiding a FlexWindow with Hide() now registers the mouse as having left the control and all child controls, eliminating unexpected highlight/de-highlight effects from controls that use the highlight effect.

– Renamed the Render() method of the Renderer2D class to RenderTexture() to be more clear as to its purpose.

Categories: Updates Tags: , ,

FlexNA Beta Update

Thu, April 19, 2012 Leave a comment

Another minor update:

+ Added ShowAndEnable() and HideAndDisable() methods to the Screen class.  These methods are simply shortcuts for setting the Enabled and Visible properties.

+ Added a needed capability to control input handling on Screen objects.  There was an issue with displaying an existing screen on top of a current screen via mouse or keyboard events.  Basically, if you wired up a control to show a screen on top of your existing screen, on a MouseClick event for example, the newly shown screen would accept and route the same mouse click that the previous screen handled, causing problems if your mouse pointer happened to be over another control on the new screen.

– You can now set the IgnoreNextInput flag on the screen you wish to show in order to prevent it from handling the click or key press or other input you were responding to in your current screen.  The shown screen will then ignore the undesired input and automatically reset itself so that it will accept any future input.

Categories: Updates Tags: , ,

FlexNA Beta Update

Fri, April 6, 2012 Leave a comment

Just a minor fix for this update.

– Fixed a bug causing controls to not dispatch their MouseLeave events.  I had to cut out a minor performance enhancing feature in order to fix this, but the results should be negligible.

Categories: Updates

FlexNA Beta 1.0 and New Site Design

Sat, March 31, 2012 Leave a comment

FlexNA has reached a milestone release:  Beta 1.0.  You can get it over at the newly redesigned homepage:  All the information you need to know about the 1.0 release is on the website.  Go there and check it out!

Categories: Release Notifications

FlexNA Alpha 1.0

Mon, August 15, 2011 Leave a comment

After months of work, FlexNA has reached 1.0. This designation signifies that it is complete enough to be used to make fully functional XNA Framework applications. However, the “Alpha” designation means that I need your help to test the framework for any issues.

FlexNA has come a long way from version 0.1.2. A complete listing of functionality will be provided in a later post and will also be added to the FlexNA website.

To make the testing process easier, FlexNA is now available as a standalone project template for Visual Studio 2010. Simply copy the project template file to your My Documents\Visual Studio 2010\Templates\ProjectTemplates folder to see the template in the Visual Studio 2010 New Project dialog. The project template includes the 1.0 Alpha version of FlexNA.dll and the FlexNA.xml file for the built-in editor code documentation. The project should work right out of the box and includes a starting FlexNA application, ready to go. Please report any issues using the template.

Go to the FlexNA Download page to start creating FlexNA applications today!

Categories: Release Notifications Tags:

Alpha 0.1.2 Released

Fri, April 29, 2011 Leave a comment

Just a small update this week.  As always, you can get the new version over on the FlexNA download page.

  • Fixed clipping functionality for controls and their child controls. Child controls are now drawn within the client boundary of their parent control and any portion of the child control extending beyond the parent’s bounds are clipped. The clipping also works for controls that have child controls with their own child controls.
    For example:


    If ChildOfChild extends outside of ChildOfParent, it will be clipped to be inside ChildOfParent. If either ChildOfChild or ChildOfParent extend outside of ParentControl, they will be clipped to be inside ParentControl.

    I have uploaded a video demonstrating the new functionality in action, check out the new Videos tab at the top.

Categories: Release Notifications

Alpha 0.1.1 is available

Fri, April 22, 2011 Leave a comment

FlexNA Alpha 0.1.1 is now available for download at the FlexNA download page.

Here is a summary of changes from the previous release:

  • Renamed OuterBorder, Base, and InnerBorder properties of the ControlFrame class. They are now appended with the word “Part” to clarify that they are ControlFramePart objects.
  • Fixed Close Button functionality with Screen objects. When a properly constructed frame object is assigned to the Frame property of a Screen object, the frame will render around the bounds of the control, and the close button will appear at the top-right. You can handle any of the available events of the CloseButton property on a Screen object to control certain behavior. For example, you can handle the Click event to handle what happens when the user clicks the button. The close button can be customized using the various properties available for the Button class.
  • Frames are now rendered properly with their accompanying controls when the Scale property of a control is changed to values other than 1.
  • Screen objects will now close when their CloseButton is clicked.
  • Screen Class: Renamed IconMenu property to IconControl. Renamed Icon to IconTexture.

Categories: Updates

Weekly Update Schedule

Wed, April 20, 2011 Leave a comment

In an effort to ensure development of FlexNA continues and doesn’t stagnate, I’m proposing a weekly update schedule. I will be releasing updates to the FlexNA class library every Friday from now on (unless circumstances or other priorities dictate otherwise). This is more of an accountability measure for myself to ensure development continues.

User feedback and interest in the FlexNA library will help ensure its survival.

Categories: Uncategorized Tags: , , ,

FlexNA 0.1 Now Available

Sat, April 16, 2011 Leave a comment

The first preliminary release of FlexNA is available for download now.

The following is a quick summary of important classes available in this version:

  • FlexApp
  • ScreenManager
  • Screen
  • BasicScreen
  • Control
  • ContainerControl
  • ControlFrame
  • Sprite
  • FlexColor
  • FlexTexture
  • Randomizer
  • FlexMathHelper
  • SpriteTextConsole
  • SimpleCountdown
  • BloomSettings
  • FullScreenBloom
  • FullScreenEffectApplicator
  • AutoValueSlider

There are currently 50 classes available.  For a full listing, consult the Object Browser in Visual Studio once you’ve referenced the .dll.  Please note that some classes may be renamed or removed in future updates.  This preliminary release is relatively stable, but you may encounter bugs.

Since this is a volatile release, it is not recommended to become too attached to using the classes as they are, because future name changes and deletions will break any code you have relying on them.

This release is for evaluation purposes only and is not intended to be a viable tool for developing critical applications.  However, there’s nothing stopping you from using this version in any type of project you choose, but future versions will look much different from this one.

Feedback is encouraged!  Please feel free to play around with the classes and see how they work and report any bugs, issues, comments, suggestions, etc. here.