Some things for component developers in Flash 2004

Some of the little things that will make life easier for component developers in Flash 2004

  • Auto Live-Preview: As long as your component knows how to redraw itself, converting a component to an swc will give it a live preview automatically.
  • Meta tags: Using special Meta-tags in your class file of your component, Flash can automatically pick up the parameters rather than you needing to specify it in the component inspector (example: [Inspectable(name="Title Position",enumeration="top,bottom",defaultValue="top")])
  • Easy event dispatching: The component framework has built-in support for broadcasting events. All that you would have to do to is “dispatchEvent({type:”click”});” and the rest is taken care of for you. No more AsBroadcaster.initialize(this)

I’ll try to post some more when i get the chance.

How is a CFC called from a template that itself is never called?

I ran into an interesting problem while developing two custom debug templates. The CFMX debugger provides information on all the templates executed in a request, including the execution time for the template and the “parent” or caller for each template.

Interestingly, there is one situation with ColdFusion Components where the parent template itself will never appear in the template list, seemingly to indicate it’s called from a template that is not executed within the request.

Continue reading

Macromedia announces Flash MX 2004!

Macromedia announced Flash MX 2004, its latest upgrade to their Flash development environment. With this release Macromedia has also announced Flash MX Professional 2004, a version of Flash specifically targeted towards professional.

Rather than re-hash everything you are going to see out today about the new product, I will highlight a few of the new additions…
Continue reading

Why is a list loop faster than an array loop?

I’ve always assumed that working with lists was far slower than working with Arrays. It just seems obvious since with an array you have a series of values that are indexed sequentially, whereas with a list you have a string that has to be parsed every time you want to work with it.

I was therefore very surprised to learn that looping over a list is much faster in ColdFusion MX than looping over an array. On average, looping through a 500 item list took one quarter the time required to loop over an array containing the same 500 items. This is certainly counterintuitive and besides, didn’t everyone always say string operations were slow in Java?

After reading the generated Java code I found that when you loop over a list by specifying the list attribute of a cfloop statement, ColdFusion optimizes the code by tokenizing the list only at the outset. If you were to use an indexed loop and listGetAt() each element, then ColdFusion would retokenize the list on each call and you’d start to get serious performance degradation.

So what’s the conclusion? Looping over lists is good, but list operations whenever you’re making more than one call to the list function is bad. At least that my new opinion, subject to change without notice. :-)