Noteworthy changes in official releases of Feathers.
- New Beta Component: NumericStepper. Add and subtract from a numeric value with buttons. Optional text editing.
- New Beta Component: TextArea. A multiline text input. Recommended for desktop only. Not recommended for mobile.
- New Beta Component: Panel. A new container subclassing ScrollContainer that adds a header and an optional footer.
- New Beta Component: PanelScreen. An IScreen implementation (similar to Screen) based on Panel.
- New Beta Layout: AnchorLayout. Added to support fluid layouts and relative positioning. Can position relative to parent container and also to other children of the parent container.
- Added FocusManager for keyboard navigation and interaction. Not intended for mobile. Use a desktop theme or set
FocusManager.isEnabled = true
. TextInput cannot use StageTextTextEditor when focus management is enabled. TextFieldTextEditor is recommended. - All Components: sub-components are created from factories and can receive custom names for theming.
- Added ILayoutObject interface to support extra data for layouts to use, like includeInLayout property.
- List: support for optional multiple selection.
- TextInput: supports prompt/hint
- TextInput/StageTextTextEditor: supports multiline on mobile.
- PickerList: supports prompt when no item is selected.
- Slider: measurement now includes thumb dimensions and a new property called trackScaleMode has been added.
- Callout: disposal is more consistent. Set combination of disposeOnSelfClose and disposeContent.
- Callout: doesn't close when origin is touched. origin should now separately determine correct behavior.
- Callout: added origin and supportedDirections properties to make Callout capable of switching origins after creation.
- Item Renderers: properly handle accessory resizing if accessory is a FeathersControl.
- Item Renderers: fixes for a number of layout order, gap, and alignment combinations.
- PickerList: doesn't close when touching scroll bar. only item renderer touch will trigger a close.
- PopUpManager: Supports custom root to place pop-ups somewhere other than the stage.
- PopUpManager: modal pop-ups receive a different focus manager.
- ScreenNavigator: added hasScreen(), getScreen(), and getScreenIDs().
- ScreenNavigator: added autoSizeMode property to select between sizing to fit stage or to fit content.
- ScreenNavigator: fix for broken transition if showScreen() is calleed before transition begins but after new screen is added to stage.
- ScrollContainer, List, GroupedList: better auto-sizing with a background skin.
- TextInput: exposed isEditable, maxChars, restrict, and displayAsPassword properties.
- BitmapFontTextRenderer, Scale3Image, Scale9Image: option to turn off the use of a separate QuadBatch.
- TextFieldTextEditor: better selection on mobile.
- TextFieldTextEditor: properly dispatches FeathersEventType.ENTER.
- Text Renderers and Editors: better snapshot disposal.
- TiledRowsLayout, TiledColumnsLayout: supports separate horizontal and vertical gaps.
- TiledRowsLayout, TiledColumnsLayout: more stable virtualized item renderer count to improve performance.
- ButtonGroup: supports isEnabled as a property in the data provider.
- ImageLoader: added delayTextureCreation flag to avoid creating textures while scrolling (or during any action that requires best performance).
- Scroller: adds an invisible overlay during scrolling to block touch events on children.
- Scroller: exposes horizontal and vertical page count properties.
- Scroller: added FeathersEventType.SCROLL_START event.
- Scroller: scroll bars are hidden when stopScrolling() is called.
- Button: better detection of click to avoid other display objects moving on top of button before TouchPhase.ENDED.
- Button: new styles for themes, including back, forward, call-to-action, quiet, and danger.
- List: if items are added or removed, selected indices are adjusted.
- List, GroupedList, ScrollContainer, and ScrollText all extend Scroller, instead of using it as a sub-component. The scrollerProperties property on each of these is now deprecated because all public properties of Scroller are now direct public properties of these components.
- FeathersControl: setSizeInternal() is now stricter. It can never receive a NaN value for width or height. This is a common source of bugs, and throwing an error here will help make it easier to find those bugs.
- IVariableVirtualLayout: added function addToVariableVirtualCacheAtIndex() for more specific control over the cache of item dimensions. The following implementation can be added to existing classes to simulate the old behavior:
public addToVariableVirtualCacheAtIndex(index:int, item:DisplayObject = null):void
{
this.resetVariableVirtualCache();
}
- IVariableVirtualLayout: added function removeFromVariableVirtualCacheAtIndex() for more specific control over the cache of item dimensions. The following implementation can be added to existing classes to simulate the old behavior:
public removeFromVariableVirtualCacheAtIndex(index:int, item:DisplayObject = null):void
{
this.resetVariableVirtualCache();
}
- ScrollText: now properly handles visible and alpha properties.
- ListCollection: added removeAll(), addAll(), addAllAt() and contains().
- Scroller: scrolling animates for mouse wheel.
- List, VerticalLayout, HorizontalLayout: optimized case where useVirtualLayout is true and hasVariableItemDimensions is false.
- HorizontalLayout, VerticalLayout, TiledRowsLayout, TiledColumnsLayout: added manageVisibility property to set items to false when not in view. Set to true to improve performance.
- Screen: default value of originalDPI is DeviceCapabilities.dpi. It used to be 168. Can still be changed.
- MetalWorksMobileTheme and MinimalMobileTheme: major overhaul with improved skins and new alternate skins.
- AeonDesktopTheme: added some missing skins, like TabBar.
- AeonDesktopTheme: uses FocusManager.
- AzureMobileTheme: removed this example theme. Please feel free to continue using the old version, if desired.
- ComponentsExplorer: better button screen to show off various styles of buttons.
- All Examples: Use PanelScreen instead of Screen and Header where appropriate.
- All Examples: Use AnchorLayout where appropriate.
- All Examples: Uses NumericStepper instead of Slider where appropriate.
- Added 96x96 icons to examples for Android xhdpi. Requires AIR 3.7.
- Extended API documentation and Wiki tutorials.
- Now built with ASC 2.0.
This release includes a number of bug fixes.
- Scroller: FeathersEventType.SCROLL_COMPLETE always dispatched after last Event.SCROLL.
- ScrollBar, SimpleScrollBar: thumb position properly accounts for padding.
- Scroller: mouse wheel detection properly accounts for contentScaleFactor.
- ScreenNavigator: calling clearScreen() during a transition no longer causes a stack overflow.
- ScrollBar, SimpleScrollBar: can drag to minimum and maximum if they aren't a multiple of the step.
- Header: Fix for runtime error when rightItems aren't IFeathersDisplayObjects
- TextInput: better selection/cursor recovery when changing text programmatically.
- TextInput: Moved fontSize contentScaleFactor multiplication into StageTextTextEditor.
- FeathersControl: requires isInitialized to be true before it can validate.
- FeathersControl: clipRect properly accounts for scale.
- GroupedList: added missing documentation for setSelectedLocation().
- ImageLoader: does a better job keeping aspect ratio when only one dimension is explicit.
- ImageLoader: properly scales content when dimensions are explicit.
- ImageLoader: no runtime errors if content loads after dispose.
- ScrollContainer, List, GroupedList, ScrollText: fix for detecting changes in scrollToPageIndex().
No major API changes since 1.0.0 BETA. Mostly bug fixes and minor improvements.
- Fix for memory leaks in List, GroupedList, and ImageLoader
- PageIndicator properly handles ImageLoader or other IFeathersControl as symbol
- IGroupedListHeaderOrFooterRenderer extends IFeathersControl
- Header: fix for "middle" vertical alignment
- Updated for Starling Framework 1.3
Initial release. The following major changes happened in the last month or two leading to the beta.
- GTween library removed as a dependency. All animations switched to the Starling
Tween
class. - as3-signals library removed as a dependency. Switched to Starling events.
TextInput
: supports swappable text editors, similar to the text renderers used for uneditable text. The defaultStageTextTextEditor
usesStageText
to allow text input, which is ideal for mobile. TheTextFieldTextEditor
uses aTextField
ofTextFieldType.INPUT
instead, and it may be a better choice for desktop. A static function,defaultTextEditorFactory
, has been added toFeathersControl
.TextInput
: now has events for focus in and out.- Item renderers: Switched to
ImageLoader
for icon and accessory textures, which has asource
property that supportsTexture
instances orString
URLs to load textures from the web. Properties likeiconTextureField
andaccessoryTextureFunction
now have new names likeiconSourceField
andaccessorySourceFunction
because values other than textures are now allowed. Similarly,iconImageFactory
andaccessoryImageFactory
have been renamed toiconLoaderFactory
andaccessoryLoaderFactory
. - Item renderers: accessory may be positioned. See
layoutOrder
andaccessoryPosition
properties. - Added
dispose()
method toAddedWatcher
so that theme resources like textures be disposed. - Added
ScrollText
component to display text in an overlay on the native display list. Useful for long passages of text that may be too large to convert to a texture. ScreenNavigator
: added events for transition start and complete.ToggleSwitch
:TRACK_LAYOUT_MODE_STRETCH
is nowTRACK_LAYOUT_MODE_ON_OFF
.Slider
:TRACK_LAYOUT_MODE_STRETCH
is nowTRACK_LAYOUT_MODE_MIN_MAX
.ScrollBar
:TRACK_LAYOUT_MODE_STRETCH
is nowTRACK_LAYOUT_MODE_MIN_MAX
.