The Beginner’s Guide to Away3D

March 30th, 2010

LFPUG have teamed up again with Rob Bateman to offer another training session on Away3D in May titled ‘The Beginner’s Guide to Away3D’.

This is a personal (maximum of 14 attendees), hands-on, 2 days training with an Away3D co-founder and lead developer.

The Beginner’s Guide to Away3D.

Flex 4: Navigator

March 24th, 2010

In a couple of previous posts I introduced DataNavigators and their skinable counterparts…

Spark: DataNavigators
Spark: DataNavigators – Elements instead of ItemRenderers

In the later of the 2 posts I showed how you can use a DataNavigator with IVisualElements instead of using itemRenderers so that each element can be an instance of a different class (spark.components.DataGroup & spark.components.List can be used in the same way). This achieves deferred instantiation of the elements.

To do this you had to set the itemRenderer property to null, and then add you elements to the component, but have them wrapped inside an ArrayList. The 2 steps weren’t ideal so I thought I get together a Navigator class that got around this, enabling you to use it as expected.

Read the rest of this entry »

Non-embedded Assets & Spark BitmapImage

March 22nd, 2010

Steven Shongrunden of Adobe made a post on this subject last week which I commented on, but I was unable to post the MXML code in the comments.

I thought it would be worth posting it here, to show an MXML only version.

Read the rest of this entry »

London Flash Platform User Group March 2010

March 19th, 2010

Massive thanks to Mathieu Gosselin for his session last month. As usual you can find the videos, presentations and source files in the presentations section (apologies I forgot to press record for my presentation).

First up this month, all the way from Stockholm, Bartek Drozdz will be doing a session on ‘Flash & Unity3D’, and following him keeping a 3D theme will be regular Rob Bateman with a session on the Away3D library.

London Flash Platform User Group 25th March 2010 (25/05/2010)

Sponsored by friends of ED.

Spark: Alert

March 18th, 2010

Spark doesn’t include an s:Alert control and I’d put one together previously as a bit of test so I thought I’d push it out there.

It differs in its use from the mx:Alert in that you can add whatever buttons you want instead of being limited to a single set of predetermined flags (you can create you own predetermined flags as constants in a class as used in the example).

The component supports the following SkinParts (all are optional)

  • messageDisplay : TextBase
    - defines the appearance of the message text
  • buttonGroup : Group
    - defines the appearance of the button area
  • iconGroup : Group
    - defines the appearance of the icon display
  • and the following inherited from spark.components.Panel…

  • controlBarGroup : Group
    - defines the appearance of the control bar area
  • titleDisplay : TextBase
    - defines the appearance of the title text
  • The inherits the styles from Panel and adds the following:

  • buttonStyleName
  • messageStyleName
  • titleStyleName
  • On clicking a button the Alert removed itself and dipatches a CloseEvent specifying the index of the button click in CloseEvent.detail.

    Read the rest of this entry »

    Spark: DataNavigators – Elements instead of ItemRenderers

    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 »

    Spark: DataNavigators

    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 »

    London Flash Platform User Group February 2010

    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!

    AlertTabNavigator

    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 »

    London Flash Platform User Group January 2010

    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.