Ginormous


Enormous :Very great in size, extent, number, or degree.
Gigantic : Relating to or suggestive of a giant.
Ginormous: The bookmarks/emails/notes I have to keep and keep losing, hence the blog.

About

Categories

  • Books
  • DHTML and Javascript
  • Flex / Air / Flash
  • Miscelaneous
  • Projects
  • Web/Tech

Recent Posts

  • Windows 7 Experiences
  • PureMVC Finite State Machine ( FSM )
  • Where oh where is the latest flex component kit for Flash
  • flex inconsistent linkage error
  • Updated the Bluetube Interactive Websites
  • Infurating Bug with Flex SDK3 and Modules solved.
  • Vendor client relationships
  • Cheerwine is LIVE!
  • Astra Flex and Flash Library from Yahoo - Time input component

Archives

  • October 2009
  • August 2009
  • July 2009
  • June 2009
  • May 2009
  • April 2009
  • March 2009
  • February 2009
  • January 2009
  • January 2008

Development books

  • Joshua Noble: Flex 3 Cookbook: Code-Recipes, Tips, and Tricks for RIA Developers (Adobe Developer Library)

    Joshua Noble: Flex 3 Cookbook: Code-Recipes, Tips, and Tricks for RIA Developers (Adobe Developer Library)

  • Marco Casario: Flex Solutions: Essential Techniques for Flex 2 and 3 Developers (Solutions)

    Marco Casario: Flex Solutions: Essential Techniques for Flex 2 and 3 Developers (Solutions)

  • Christian Bauer: Hibernate in Action (In Action series)

    Christian Bauer: Hibernate in Action (In Action series)

  • Doug Rosenberg: Agile Development with the ICONIX Process: People, Process, and Pragmatism

    Doug Rosenberg: Agile Development with the ICONIX Process: People, Process, and Pragmatism

  • Matthew MacDonald: Pro ASP.NET 1.1 in C#: From Professional to Expert

    Matthew MacDonald: Pro ASP.NET 1.1 in C#: From Professional to Expert

Add me to your TypePad People list

Friends

  • Jesse Warden
    Some of the best Flash/RIA titbits on the blogshere
  • Matt Brailsford
  • Christophe Herreman
Subscribe to this blog's feed
Blog powered by TypePad
Subscribe in a reader

Launched Defend The Dome

Bluetube Interactive is pleased to announce we launched defendthedome.com last night, a promotional site for the Atlanta Falcons and Ford, it features the first of two games, drive, where you get to drive an F150 or Flex to the Georgia Dome.  The site was built in flex with flash animation by gnoggin studios.  Design by Artistic Image and the agency who brought it to us was JWT.

It was a challenging project but a lot of fun, using pureMVC, Fabrication and the new pureMVC finite state machine.  We have heavy timelined flash animation that was pulled into flex via a swc and then our timeline managed allowed us to control and jump to labels in the flash timeline without having to re-animate the content in flex.

We'll do a case study on the project soon to explain how it all came together.

Cheers
Grant

August 29, 2009 at 11:22 AM in Flex / Air / Flash | Permalink | Comments (0) | TrackBack (0)

Digg This | Save to del.icio.us

Windows 7 Experiences

I've been running windows 7 for about a month, due to being part of MS technet, developers got the full release of windows 7 early.  I'm running Windows 7 Ultimate 64bit on an older laptop :

  • Dell E1705
  • 4 gigs ram (3.25 addressable)
  • Intel Core 2, 1.73GHZ
  • Windows rating experience : 3.7
I did a fresh install since my Vista install was a good 2 years old 32bit and I wanted to "clean out", I'll be upgrading my desktop soon that runs Vista 64 ultimate.

So far there is not a single piece of software I've been unable to run, from Visual Studio 2008, Adobe Flex 3 & 4, Directory Opus, Photoshop CS4, Adobe Flash, Filezilla, Charles, Enterprise Architect to name a few.

The only thing I could not get to work was the new sprint Franklin card that does the 3g/4g, however my business partner Paul has clear 4g card working under Windows 7 with a bit of driver version switching (not running the latest drivers).

In use, Windows 7 is what Vista should have been, its fast, responsive, I'd say at least 30% faster on lesser hardware than Vista, All the new features like live preview of application windows by rolling over the application in the start bar are nice, but truly the fact it just works, its fast and it doesn't hang like vista did is what makes it better for me.  I am especially happy with the drive upgrades/installation and how seamless it is and I don't seem to have to go downloading a driver very often, windows finds it, so their integration with vendors driver libraries has been much better.

I would highly recommend switching to Windows 7, if you're currently on the fence.

October 28, 2009 at 08:54 AM in Web/Tech | Permalink | Comments (4) | TrackBack (0)

Digg This | Save to del.icio.us

PureMVC Finite State Machine ( FSM )

We are building a couple of Defend The Dome games in flash for the  Atlanta Falcons and Ford, one is  driving game where you get to drive an F150 from Flowery Branch to the GA down avoiding ladders, sofas and the things you see on i285, and you can get power ups, avoid cars, and take shortcuts if you get qualifying power ups.  In that game I had a command that managed the "state" and managed the changes in state, but it was quite a bit of work and often felt a bit "hacky" where the command was really deciding things that mediators should decide for views.

For the 2nd game we are doing a sacking game, where you get to be John Abraham. This game is more like "dragons lair" where you watch video and then at strategic points you interact by entering a key sequence, or pounding your keyboard in a power meter.  We have 4 progressively harder downs and lots of video cut scenes.  For this I'm using the pureMVC Finite State Machine.

At first I wasn't sure it was going to help much, but after studying the stopwatch demo, and then using the FSM visualizer ( its very buggy, don't rely on it), I got a good picture of how complex the application was and how many states I'm going to need to manage.  I think the FSM has easily saved me a ton of time and complexity due to it managing the state and dispatching notifications when the states change.

Here is a rough capture of the my state machine for the sacking game from the FSM visualizer, sorry its not "great" but the print function in the visualizer doesn't work and it also doesn't allow scaling or zoom of the image.

Once I'm done I'll also publish the XML so people can see what a not trivial FSM looks like in pureMVC.



August 25, 2009 at 09:14 AM in Flex / Air / Flash | Permalink | Comments (7) | TrackBack (0)

Digg This | Save to del.icio.us

Where oh where is the latest flex component kit for Flash

UPDATE !!

JoeFlash kindly pointed me to the latest Flex component kit for flash ( 2.0.0) here :

http://opensource.adobe.com/svn/opensource/flex/sdk/trunk/frameworks/flash-integration/

I was looking for a newer version of the Flex Component Kit for flash, version 1.1.2 which Lee had on his machine, but I had 1.0.0.  I searched high and low and adobe's docs says its an mxp inside the flexsdk downloads, which it isn't.

I finally found it lurking with the Flash skins extension,

http://www.adobe.com/cfusion/entitlement/index.cfm?e=flex_skins

bottom of the page :

http://www.adobe.com/cfusion/entitlement/index.cfm?event=custom&sku=RC00531&e=flex_skins

I'm not sure why it isn't in the adobe extensions for flash and easily searchable.

August 11, 2009 at 08:39 AM | Permalink | Comments (4) | TrackBack (0)

Digg This | Save to del.icio.us

flex inconsistent linkage error

I just took a flex application that is going to be used by multiple products (its a flex based portal), and needed to move the core code into a swc, once I created my swc I kept getting this weird error :



Inconsistant linkage in D:\projects\clients\someClient\someProject\trunk\3rdPartyLibs\swc\playerglobal.swc(Object) - 'isNaN' is marked as extern, but '__AS3__.vec:Vector$int' is not.       

I did a google and found a couple of references :

http://www.mail-archive.com/flexcoders@yahoogroups.com/msg122106.html

so I went back to my application project to see if I had any special compiler settings, and remembered I had :

-target-player=10

I added that to the Additional Compiler Arguments in the Properties | Flex Library Compiler panel and its now works.

Hopefully this will save you some discovery.


July 24, 2009 at 08:24 AM in Flex / Air / Flash | Permalink | Comments (4) | TrackBack (0)

Digg This | Save to del.icio.us

Updated the Bluetube Interactive Websites

We have just done a few small updates on our site Bluetube Interactive website

  • Added Team BIOS
  • Added Our Capabilities, like Flex, Flash, pureMVC, Flex architect, cairngorm, sitecore, uml etc.
  • Added Our Clients
  • Added some new news items
  • We where awarded two microsites to do for the high museum of art in flash/flex
  • We just became a sitecore partner.

July 15, 2009 at 10:36 AM | Permalink | Comments (0) | TrackBack (0)

Digg This | Save to del.icio.us

Infurating Bug with Flex SDK3 and Modules solved.

I was having some issues with a pureMVC app I've been building with the new release of Fabrication for pureMVC.  The issue was my module wasn't being loaded properly or didn't have a router.  So I decided to write a really simple flex project to test it outside of my bigger project.

I created a FlexApplication (that uses fabrication)


<?xml version="1.0" encoding="utf-8"?>
<fab:FlexApplication
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="absolute"
    xmlns:fab="org.puremvc.as3.multicore.utilities.fabrication.components.*">

   


    <mx:Script>
        <![CDATA[
            import com.bti.sandbox.FabricationTest.control.ShellStartupCommand;

            override public function getStartupCommand():Class
            {
                return ShellStartupCommand;
            }
        ]]>
    </mx:Script>

   


</fab:FlexApplication>

The statup command is super simple just for testing.



package com.bti.sandbox.FabricationTest.control
{
    import mx.events.ModuleEvent;
    import mx.modules.IModuleInfo;
    import mx.modules.ModuleManager;
    import mx.utils.ObjectUtil;

    import org.puremvc.as3.multicore.interfaces.INotification;
    import org.puremvc.as3.multicore.utilities.fabrication.components.FlexApplication;
    import org.puremvc.as3.multicore.utilities.fabrication.components.FlexModule;
    import org.puremvc.as3.multicore.utilities.fabrication.patterns.command.SimpleFabricationCommand;

    public class ShellStartupCommand extends SimpleFabricationCommand
    {

  
       


        override public function execute(note:INotification):void
        {
            // lets test this thing by loading a module

            var module : IModuleInfo= ModuleManager.getModule("TestModule.swf");

            module.addEventListener( ModuleEvent.READY, moduleReadyListener);   
            module.addEventListener( ModuleEvent.ERROR, handleError);

            module.load();
        }

        public function moduleReadyListener( event : ModuleEvent) : void
        {

            var moduleInstance : FlexModule = event.module.factory.create() as FlexModule;

            trace("module instance is " + moduleInstance);
            moduleInstance.router = (this.fabFacade.getApplication() as FlexApplication).router;
            moduleInstance.initialize();
        }

        public function handleError( event : ModuleEvent) :void
        {
            trace("error " + ObjectUtil.toString( event));
        }

       
       


    }
}

the simple module I'm using for testing :


<?xml version="1.0" encoding="utf-8"?>
<FlexModule xmlns="org.puremvc.as3.multicore.utilities.fabrication.components.*" xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" height="100%">
    <mx:Label text="I am the test module"/>

   
   


    <mx:Script>
        <![CDATA[
            import com.bti.sandbox.TestModule.control.TestModuleStartupCommand;

            override public function getStartupCommand():Class
            {
                return TestModuleStartupCommand;
            }

           


        ]]>
    </mx:Script>

</FlexModule>

</code>


And finally the startup command for the simple module

package com.bti.sandbox.TestModule.control
{
    import org.puremvc.as3.multicore.interfaces.INotification;
    import org.puremvc.as3.multicore.utilities.fabrication.patterns.command.SimpleFabricationCommand;

    public class TestModuleStartupCommand extends SimpleFabricationCommand
    {
        override public function execute( note:INotification ):void
        {
            trace("TestModuleStartupCommand started!!!");
        }

       


    }
}

In testing the "moduleReadyListener" is never called, and the "handleError" is never called.  I tested the app with a Charles - http proxy in the browser and the module was being loaded, but the READY event was never being fired.

I was googling in frustration and found this note so I made a really small change to the applications startup command, I made the module variable a member of the class instead of local to the method and viola, it works.

package com.bti.sandbox.FabricationTest.control
{
    import mx.events.ModuleEvent;
    import mx.modules.IModuleInfo;
    import mx.modules.ModuleManager;
    import mx.utils.ObjectUtil;

    import org.puremvc.as3.multicore.interfaces.INotification;
    import org.puremvc.as3.multicore.utilities.fabrication.components.FlexApplication;
    import org.puremvc.as3.multicore.utilities.fabrication.components.FlexModule;
    import org.puremvc.as3.multicore.utilities.fabrication.patterns.command.SimpleFabricationCommand;

    public class ShellStartupCommand extends SimpleFabricationCommand
    {

        private var module : IModuleInfo;

        override public function execute(note:INotification):void
        {
            // lets test this thing by loading a module

            module = ModuleManager.getModule("TestModule.swf");

            module.addEventListener( ModuleEvent.READY, moduleReadyListener);   
            module.addEventListener( ModuleEvent.ERROR, handleError);

            module.load();
        }

        public function moduleReadyListener( event : ModuleEvent) : void
        {

            var moduleInstance : FlexModule = event.module.factory.create() as FlexModule;

            trace("module instance is " + moduleInstance);
            moduleInstance.router = (this.fabFacade.getApplication() as FlexApplication).router;
            moduleInstance.initialize();
        }

        public function handleError( event : ModuleEvent) :void
        {
            trace("error " + ObjectUtil.toString( event));
        }

       
       


    }
}

 


This type of bug is infurating, but at least I now have a fix :)

June 10, 2009 at 05:27 PM | Permalink | Comments (0) | TrackBack (0)

Digg This | Save to del.icio.us

Vendor client relationships

Our clients are very good and we don't get this type of crazyness, but I have had them in the past, and found this really funny.

Vendor client relationships

May 28, 2009 at 01:41 PM | Permalink | Comments (1) | TrackBack (0)

Digg This | Save to del.icio.us

Cheerwine is LIVE!

After 700 hrs of development, and goodness knows how many hours of creative, shooting and project management, www.itsasoftdrink.com is finally live.

Bluetube Interactive, my company did the development in Flex, Flash, pureMVC, clearspring and slideshowpro.

Awesome Incorporated did the creative, shooting and all round fantastic visuals

Kohler Audio did the sound composition, foley work, and crazy loops!

Hauser Group was the agency that directed and brought this amazing project to us.

Thanks a bunch to my whole team for working night and day on this !  Its time for me to go to sleep now :)

We'll do a case study on this soon, but when people tell you that "flex" can't look good, remember this whole site was built IN flex. We had many challenges to overcome, but it was a blast!

Cheers
Grant

April 09, 2009 at 06:10 PM | Permalink | Comments (0) | TrackBack (0)

Digg This | Save to del.icio.us

Astra Flex and Flash Library from Yahoo - Time input component

I love simple components that just do a job that we all end up having to do and think "there must be someone who's already done this".  Astra is a fairly small Flex an Flash library that has some components that make life a little easier, the time input component I particularly like since it validates the time the user puts in and won't accept an invalid time.

March 27, 2009 at 08:40 AM in Flex / Air / Flash | Permalink | Comments (2) | TrackBack (0)

Digg This | Save to del.icio.us

Flash Audio hell - How to loop audio in Flash

I have just been in flash audio hell for a few days, trying to get 14 audio files to sync properly and loop in two different fla's

I first has gaps at the end of the loops so they stumbled as they looped even though the audio file was looped correctly.  The audio file is exactly 13 seconds and my fla is set to 24fps so thats 312 frames but when you place the loop it appear to be about 1/2 a frame too long.  The end result was either gaps, skips or general failure for the loops to "loop".

The biggest thing was don't import mp3's, they have silence at the front that messes up your loop, import wav or aiff files and let flash compress the audio.  It may be possible to create looped mp3's and import them but I haven't tried it.

The other thing if you  want them to loop, don't let flash do it using the timeline, no "gotoandplay(1)" code it will never loop properly. In the layer properties, if you use "stream" or "start" one loop will stay in sync but any other loops will start to drift away from each other.

Set all audio loop layers to Sync :Event and Repeat 9999.  and if you really must, add some code that counts to 9999 and start it again, but at that "loop" it will skip :)


I also found Kenny Bewllews site VERY helpful.


March 10, 2009 at 10:18 PM | Permalink | Comments (0) | TrackBack (0)

Digg This | Save to del.icio.us

»