March 12th, 2010
In the previous post I gave an example of our DataNavigators in action as you would expect them to be used, with a dataProvider and ItemRenderer but you may well be asking…
I want navigators where all the elements can be different, not driven by data all using the same ItemRenderer.
This is the obvious usage of navigators as we know them (ViewStack, TabNavigator).
Well DataGroup has a sneaky little secret. It isn’t just capable or reusing ItemRenderers, its also capable of achieving deferred instantiation on elements defined inside it (thanks to Ryan Frishberg for this info).
To do this you set the itemRenderer property to null, the add your elements inside an ArrayList. Using this method its only when the element is required to be displayed that it is created.
Unfortunately this isn’t a complete solution as it isn’t capable of handling FXG as an element, it has to be wrapped inside another container.
I developed a DeferredGroup class to get over this limitation, but its success is dependent on changes to the SDK. I have 2 items in the Flex Bugbase referring to this, so if you would like to DeferredGroup (a Group that supports deferred instantiation and FXG), please go and vote on them…
Make it easier to extend Group
Don’t not hard code GraphicElement to Group
The components used in the following example are the same as the example in the previous post, but instead of using an ItemRenderer and setting a dataProvider the elements that need to be displayed are specified (check the numElements count, compared to the previous examples numRenderers count):
Read the rest of this entry »
Posted in Flex 4.0 | No Comments »
March 9th, 2010
At the last LFPUG I did a presentation on Flex 4 where I went through what I thought were the fundamental changes, and they showed some custom stuff I’d been working on. The plan was to then do a post on each slide explaining in a little more detail (which is still the plan), but there’s a few posts that talk about Navigators in Flex 4, and for anyone who visits this blog often you’ll be well aware of how much I use navigators.
With this in mind I thought I start posting some examples and open sourcing the code I’ve been working on, so today I thought I’d start with DataNavigators.
There are 3 components to talk about here. They all support virtualLayouts as long as the layout supports it. In building these I’ve ask a lot or questions of what others expected and try to implement the re-usability that is inherent in the spark framework.
—————————————————————-
DataNavigator
You can think of this to much like a DataGroup with 2 exceptions…
the layout must implement INavigatorLayout (a custom interface I’ll cover another day).
it implements ISelectableList
—————————————————————-
SkinnableDataNavigator
You can think of this much like a SkinnableDataGroup, with 3 exceptions…
the layout must implement INavigatorLayout (a custom interface I’ll cover another day).
it implements ISelectableList
the SkinPart it uses for displaying content has to be a DataNavigator
—————————————————————-
BorderDataNavigator
BorderDataNavigator extends SkinnableDataNavigator adding a border, in the same way as BorderContainer extends SkinnableContainer.
—————————————————————-
Here’s an example of the 3 of them in action using itemRenderers:
Read the rest of this entry »
Posted in Flex 4.0 | 3 Comments »
February 16th, 2010
Massive thanks to Dennis Ippel and Adam Chappell for their presentations last month. As usual you can find the videos, presentations and source files in the presentations section.
First up this month will be Mathieu Gosselin with a session on ‘Efficient Programming Practices’, and following him will be me with some examples of the new features in Flex 4.
London Flash Platform User Group 25th February 2010 (25/02/2010)
Sponsored by flash scope.
Also don’t forget Richard Lord will doing presentation about frameworks presenting down at FLUG tonight, and Iain Lobb will be doing a session on “Creating Successful Flash Games” at London Flash Developers and Designers Meetup Group this Thursday.
Spoilt for choice!
Posted in Personal | No Comments »
February 8th, 2010
We built this component some time ago for use on a gaming/gambling site.
We required a way to alert the user that something important was going on in one of their games, but we didn’t want to use a popup, blocking the user from their current interaction. This was because the user may have been in the process of doing something important or timed.
Each game sat inside its own view component, and these were then housed in the AlertTabNavigator. It enabled use to show when a view required attention, without getting in the way.
Here’s a couple of examples. The first shows how dispatching an event from one of the children on the AlertTabNavigator updates the tab to show its alert styles, or resort back to its standard non alert styles. Selecting an alerted tab, always dismisses the alert.
Read the rest of this entry »
Posted in Personal | 1 Comment »
January 14th, 2010
The start of 2010 sees LFPUG continuing with the same format, 2 one hour presentations on the last Thursday of each month.
First session of the year will be presented by Dennis Ippel with a session on 3D workflows for Flash. Following Dennis will be Adam Chappell with a session on SEO for Flash.
London Flash Platform User Group 28th January 2010 (28/01/2010)
Sponsored by (and huge thanks to) friends of ED.
Posted in Events | No Comments »
January 11th, 2010
A couple of days ago Corey Lucier posted a couple of nice examples of the new Flex 4 AnimateTransitionShader.
Like Flex 3, the new effects don’t handle being interrupted well. They jump abruptly to the end of the current IEffectInstance, then start a new one. The abruptness is what your trying to get away from when you decide implement an effect, opting for a smooth transition.
With a bit of tweaking about it was fairly easy to hack around this. Here’s what i changed
When an effect instance is interrupted it takes a snapshot of the view, and passes this a a bit of other info to the effect factory.
The effect instance then stops the final value being applied.
When creating an effect instance the effect factory looks inside itself for any interrupted effects that have the same target. If it finds one it passes the data through to the instance.
The effect instance then uses the snapshot to transition from.
In the examples below I’ve added a couple of more states and a ButtonBar to navigate. I’ve also removed the easing to make it a little simpler to see. If you click around a bit you should see the difference.
Read the rest of this entry »
Posted in ActionScript 3.0, Flex 4.0 | 5 Comments »
January 5th, 2010
Here’s a little component I knocked out over the holiday period for use in a current project.
Its basically a rip of ComboBox (extends ComboBase due to private methods in ComboBox), that will filter the dataProvider depending on what the user enters into the TextInput, and select the text to show you where a match is found (can only select the first match in FP9). You can also set it to be case sensitive (false by default).
There’s a few other components out there with the same functionality (some you have to pay for some you don’t), most of which can be found doing a search for ‘AutoCompleteComboBox Flex’.
They either didn’t quite do what we wanted or were too complex for our needs.
Read the rest of this entry »
Posted in ActionScript 3.0, Flex 3.0 | 47 Comments »
December 30th, 2009
I love mx Navigators (ViewStack, TabNavigator etc.) yet when adding spark containers to them you get the error…
The children of Halo navigators must implement INavigatorContent.
If you want to use the new spark containers you need to wrap them in, or just use spark.components.NavigatorContent (not easily found unless your using design view). NavigatorContent itself extends spark.components.SkinnableContainer so you can use it much like a Group and set a custom layout.
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<mx:ViewStack id="vs" width="400" height="200">
<s:NavigatorContent width="100%" height="100%" backgroundColor="0xFF0000">
<s:layout>
<s:VerticalLayout/>
</s:layout>
<s:Button label="vertical button 1"/>
<s:Button label="vertical button 2"/>
<s:Button label="vertical button 3"/>
</s:NavigatorContent>
<s:NavigatorContent width="100%" height="100%" backgroundColor="0x0000FF">
<s:layout>
<s:HorizontalLayout/>
</s:layout>
<s:Button label="horizontal button 1"/>
<s:Button label="horizontal button 2"/>
<s:Button label="horizontal button 3"/>
</s:NavigatorContent>
</mx:ViewStack>
<mx:ToggleButtonBar dataProvider="{vs}"/>
</s:Application>
Posted in Flex 4.0 | 1 Comment »
December 9th, 2009
As usual I’ll start this LFPUG post with massive thanks to Trevor Burton and James Alliban for their presentations last month. As usual you can find the videos, presentations and source files in the presentations section.
This month due to the season of good will we’ll be meeting up a couple of weeks earlier than usual and there will be no presentations. Instead we’ll be meeting up for chinese food and booze.
That said we’ll still be having the raffle, and this month we have a full conference pass to FITC Amsterdam to give away!
London Flash Platform User Group 17th December 2009 (17/12/2009)
Sponsored by FITC.
Posted in Events | No Comments »
November 19th, 2009
Recently good friend Adam Robertson spent some time upgrading all my WordPress blogs to try and help combat the masses of spam and crap that were being hidden in the pages.
Many thanks Adam!
Posted in Personal | 1 Comment »