Month: April 2010

In the midst of Toronto FITC. As usual, sessions are hit or miss. So far, only one has kept my attention throughout the full hour. Last year was very good, but I fear this year is following the lines of 2008's quality.

So far, the underlying theme that I'm noticing is that there finally is a real drive towards mobile apps. Even though everyone here seems to be pushing the "other mobile platforms" so you can develop with Flash ... I'm starting to realize that I'm going to have to start learning Objective C.

I was also able to talk to a couple of the FDT Developers today - specifically Michael Plank - and I brought up my problems with FDT not being able to change the format of the method params to include a $, and also that whenever I close and re-open my class folders in the Explorer, all the sub folders that were open become closed. He seemed genuinely surprised at that one, so hopefully will be able to fix it in a future release.

For the first time in 15 years, I am considering buying a Windows machine. Apple is becoming like Microsoft was in 1990. Not letting third party developer API's to develop for the iPhone is just pure crap. I truly hope they realize how many people they are pissing off - not just Flash developers - and re-write the new iPhone 4.0 SDK agreement.

Flash aside, any developer should be posting their disagreement with this. To quote the Facebook "I'm with Adobe" group - "Apple has proven themselves to be anti-competition, anti-developer, and anti-consumer".

When doing a banner ad, I tend to code things different ways, depending on the situation. Sometimes laying out items on the timeline, sometimes adding items dynamically.

But no matter what, there is always an invisible clickTag button above it all allowing for the user to click through to the desired website.

However, a lot of the time, items below this invisible button require some sort of user interaction, such as a button which does something besides go to the website. If the invisible clickTag button is over this item, it will not register any mouse events.

This is fine if the items were added dynamically - we can just swap how they are layered on the display list so the clickTag button is below it. But if the underlying button is on the timeline, it becomes more problematic - A button under a button, or two buttons at the same time are a pain.

So I came up with a class which dynamically creates an invisible clickTag button, and allows you to add or remove items underneath it to look out for, and allow them to have user interaction.

This will set up an invisible clickTag button which calls the clickHandler() method on click.
Nothing else is needed besides the event handler itself, for example:

function clickHandler($event:Event):void {
trace(_clickTag)
}

When you have a button or object below the clickTag button that needs to have MouseEvent access, type:

bClickTag.addButton( myUnderlyingItem );

And to remove, type:

bClickTag.removeButton( myUnderlyingItem );

Once started, an ENTER_FRAME event runs and looks through the added buttons to see if there is anything the mouse is over that needs any MouseEvents. If so, it disables the clickTag while that button is below, re-enabling it once the mouse is not over that item anymore.

Feedback is encouraged. If someone can come up with another way to do it that does not require an ENTER_FRAME, I would be interested to hear what you think.

The Pointroll Ad Server requires an MXP extension on Flash in order to give it access to the Pointroll API. This makes things work great when working directly from Flash, but when working from FDT, it does not give access to the custom class files and methods. It also makes FDT think that calls to these methods are errors.

I was recently doing a banner ad using Pointroll, and all the so-called errors were annoying me. So I did a little research, and found where Pointroll (and, as it turns out, a bunch of other extensions) store their classes.