May 2004 Archives

KineticFusion > me

| 2 Comments

So yeah, finally an update about the compiler I started...

I've been working on and off for a few months now on an ActionScript compiler. Ideally, I wanted to be able to run the compiler against an ActionScript file and generate a resulting .swf file. I didn't have ActionScript 2 support in mind right away - just supporting the first version is a large enough task for just myself given the amount of time that I have available.

I've made pretty good progress though, and eventually got to a stable enough point to say that I have a "working" syntax checker for ActionScript 1. It's not without it bugs, but it's been working pretty well for me. However, right around the time I was planning to release it, I got wind from Alex Bradley that a new beta of KineticFusion was ready to be released.

Here's the original announcement:

Many of you have looked at KineticFusion 1.0.5 in the past and the feedback has been really useful. KineticFusion 2.0 Beta has just been released and I'd really appreciate any comment or feedback you may have. This is intended as a commercial Flash development tool and includes the following:

  • Supports full AS2.0 classes
  • Full semantic analysis of classes and scripts with configurable error warnings
  • Support for additional class metadata and constraints for representing abstract class members, final class members and multiple method signatures
  • Support for AS2.0 extensions in AS1.0 ( e.g. casts, interfaces)
  • Code generation optimizations mainly compliant with those by Macromedia.

The main changes are with AS2 and the biggest question is probably: what are the features that make it better than the Macromedia Flash compiler?

  • Can compile from the command line
  • Intelligent caching and dependency checking of AS2.0 classes
  • Many more semantic checks and better error configuration
  • Supports metadata for specifying additional OO constraints that can't be explicitly represented in AS 2.0
  • Compiles and generates SWF movies faster than Flash when using the KineticFusion GUI.
  • Multi-platform, so you can offload compilation to server boxes.

With AS2.0 inclusion the biggest drawback of KineticFusion, the XML representation, is hopefully peripheral. Since most scripting is now carried out in external class files, the Flash application can be used to create the application outline and converted to RVML. Coding and compilation can then be carried out either using the Flash application or KineticFusion, with both applications pulling in required class files on compilation.

This is pretty awesome news, I think. Alex has been working for over 2 years on KineticFusion. I've tested the beta he made available to me, and must say that it works really well. It's much more advanced than I could ever think about making my compiler right now - I just don't have enough free time as there's a million and 1 other things I want to build. Also, I don't want to compete with Alex. The new version KineticFusion is just plain awesome, and I hope that you give it a chance once it's officially released.

For those that have never heard of KineticFusion, it's a program that abstracts .swf files as XML. It can deconstruct (decompile) .swfs into it's XML format (dubbed RVML - Rich Vector Markup Language). You can then make changes to the resulting RVML and then re-compile the RVML into a new .swf file. This allows you to build .swf movies without the Flash IDE, and with the new beta you can even code in ActionScript 2. This is a huge win for the Flash community.

Granted, the product will most likely not be free, but if you find a tool useful it helps to support the authors if you want more and better features, continued support, etc.

Personally, I'm driven by a passion for Flash and everything I experiment with is usually in hopes of benefiting the community somehow. I love open source as much as the next guy, but unfortunately, that doesn't pay the bills (for me, at least). I'm sure I could find more time for projects if I was being paid for them, but I need to get the paying work out of the way before thinking about my personal side-projects. Alex has been doing this for over 2 years, and the level of commitment he has shown to KineticFusion should be rewarded by those that find the program useful...

Anyway, as a result of Alex's work, my plans for my compiler have been pushed aside. I really should finish up the syntax checker that I have though, or at least release it on sourceforge in case anyone else wants to pick up development. I think what I have done could come in handy for 3rd party editors like SE|PY, and it's pretty solid as it is. I'm not sure about the timeframe anymore.. hopefully sooner rather than later as my interest is already fading since I'm moving on to my XUL+Flash experimentation.

When KineticFusion 2.0 is officially released "sometime this summer" I'll be sure to post a link to it. The new version of KineticFusion is well worth the wait. Like I said, I think it's something that will benefit a lot of Flash developer's. I'll also post when I release my code/binaries for my syntax checker.. hopefully I can grab a sourceforge project. At this point, it might be easier to build a "projects" section on my site here and just host it myself.. I've been thinking about that for awhile, and this is a good of reason as any..

Sorry if I got any of your hopes thinking about a release of my own, but there's no need to be disappointed.. something better is coming down the road, and sooner than I could ever deliver it! Keep your ears/eyes open...

My two favorite Sydney pictures

| 9 Comments

So one of these days I'll get around to posting the 587 pictures I took while I was in Sydney this year to speak at MXDU. Today isn't the day, but for your viewing pleasure I thought I'd pick out my 2 favorite images to share with you.

after_storm_th.jpg The week that I was down there saw mostly overcast weather with lots of rain and thunder. This first image was taken right after a heavy downpour when the sun was starting to poke through some clouds. This is looking across Darling Harbour from the Novotel Hotel, and is probably one of the best pictures I've ever taken..


tongue_th.jpgWhile the conference was only 2 days, I decided to take some vacation from work and spend as much time in Sydney as possible. One of the stops in my sightseeing adventures was the Toronga Zoo. Apparently they don't feed their giraffes enough there.. You'll need to see the enlarged image to see what I mean.


If you want the high res version of any of these images, just shoot me an email. I'll be happy to send them to you. Please do not steal or reproduce these images without my permission. Chances are I'll give you permission to use them, but you need to ask me first.

Hey Darron, what ever happened to that compiler you were talking about?

After I get back from Washington DC this weekend with my fiance Jen (to celebrate finishing up her junior semester in college), I'll post about progress and what's in store for the near future. I think everyone will be pleasantly surprised.

XUL + Flash = Cross Platform Projectors

| 27 Comments | 3 TrackBacks

The aspect of Flash development that has intrigued me the most is without a doubt 3rd party projectors. Programs like SWF Studio and Screenweaver inspired me, and I set off to see if I could create that kind of functionality on my own. Thus, SharpFlash was born.

However, I started losing interest in SharpFlash. The "Windows-only" aspect of it really bothered me, and I didn't want to continue to devote time to something that left out a large portion of the Flash population. As much as I enjoy coding in C#, I hated to leave my Mac friends behind.

It seems that all 3rd party projectors rely on the Flash Active-X control to embed Flash content into a native Windows container. Because of the reliance on the Active-X control, our target audience is limited to Windows right from the start. I thought I'd have better luck with a Java solution (and SWT Flash), but I encountered the same Windows only fate. Java is cross platform; the Flash Active-X control is not.

That got me thinking.... How does Mozilla do it? Mozilla browsers have a Flash plugin that works on all platforms. Why hasn't there been a solution yet that piggybacks off of this functionality? Finally, there is.

Enter XUL.

You've probably heard a lot about XUL lately. I'll spare you the details about what XUL is, that's what google is for.

With XUL, we have the ability to embed HTML into applications that run on top of the Gecko Runtime Environment (GRE). The GRE is similar to the Java Virtual Machine in that you can write code once, and run it on any platform. .NET comes close, but there is no .NET framework that will run on a Mac or Linux (however, the mono project released beta 1 not too long ago).

So, what does this have to do with Flash and cross platform projectors?

By leveraging the GRE (and specifically, XPCOM), we can use the Mozilla Flash plug-in and run Flash applications cross platform.

To illustrate this concept, I've created a simple Flash text editor. You launch the application, click "read" to open a file, make some changes, and click "save" to commit those changes to disk. To see that the save actually works, clear out the text area, then read in the file again and watch it bring the saved contents in.

You can download the example here.

In order to run the application, you need a Mozilla-based browser installed. To run the application, just launch the .xul file with either Mozilla or FireFox. I tried launching the .xul file with FireFox but got a "c is not a registered protocol" error. The workaround for me was to open FireFox, then drag the .xul from Windows explorer onto the browser window.

NOTE: I want to stress that I'm still very early in the research project for this. This example is just a proof of concept, showing that something like this actually is possible. In the future I'll be trying to explore all of the possibilities. I'd like to add in an ActionScript API, and some way to bundle everything as an executable, but before I do I need to make sure that following this road is going to be worthwhile. I know you can launch the applicatiuon by creating a .bat file that launches the .xul application right from Mozilla via command line arguments, but I'm not sure about creating a standalone .exe that has everything bundled into it yet.

Also, I have to admit that I didn't actually test this on a Mac, or on Linux. I'm just assuming that it will work, and if it doesn't then I blame Mozilla for false advertising. :-P

Now, I'm going to attempt to anticipate some questions, and provide answers for them before hand. Read on for those...

Announcing FlashBelt conference

| 1 Comment

I see Oscar beat me to the punch, but I promised Dave that I would announce the conference for him, and I always try to stay true to my word.

FlashBelt is starting up this year on June 24th in Minneapolis Minnesota. There are Flash presentations that will be held on Thursday June 24th, with workshops available the following Friday. Note that seating will be limited for the workshops and the registration is separate from the conference registration.

Head on over to the conference site to check out the details. If this year's conference is a success, you can be sure that next year will be even better.. so it's important to come out this summer and show your support.

Flex.org - The Directory for Flex

Archives