For those of you that are developing Flash Lite applications and games you will be well aware of the issues of Memory leaks in the Flash lite player. One area where this can occur is in the creation of “crossed references”. These result in objects that are effectively locked as far as Garbage Collection is concerned, and so result in memory ‘leaking’ over time.
Today on Adobe.com I noticed the news that Adobe have released the source code for the ActionScript Virtual Machine to Mozilla Foundation.
The release, which is dated 7th November 2006 can be found here and provides more information. From the release it sound like the code is to be included into future releases of the fire fox browser.
Does this mean an end to the Flash Plug-in for future Mozilla based Browsers? How will this impact XUL runner and its capabilities in comparison to Adobes much talked about Apollo?
As Mike over at Flashgen.com and also Aral Balkan reports it seems someone is looking to contest the ridiculous Balthaser RIA patent that was reported a while ago by a number of Flash developers. I have also been contacted by Oliver Lorenz with regard to providing more information and certainly urge anyone that wants to beable to continue RIA development without the potential of infringing on this patent.
The issue I have with the patent is its broad and sweeping coverage of very common interface and application GUI design systems. As an example reading one portion of the “Summary of The Invention”.
When editing a component, the user may modify a number of features associated with a component including, but not limited to, the volume of an acoustic component, the link between a menu entry and an associated component, the font, font size, color, or effect of a text field, or the layout, size, transparency, rotation, color, position, or level of any graphical rich-media component. The user may modify these components by means of a slider bar or a textual input field. In addition, the user may modify the volume of a sound component by means of up and down volume buttons. The user may undo modifications made to a component’s parameters. The user may also modify the position of a graphical rich-media component by a graphical input field, by clicking and dragging said component, or by text fields. When the user modifies the position of a graphical rich-media component by means of clicking and dragging said component, said component may align itself to a grid point or a guide line. The user may also modify the style and the Uniform Resource Locator (URL) of a component linked to a menu entry.
Unless I am mistaken the recently posted link to Netvibes would actually infringe on this part of the patent. In that the user can select ‘panes’ or ‘graphical rich-media components’ of the netvibes application and alter there position within the application by clicking and dragging them to a new position.
In this example, because there is no specific technology linked to the patent claim, any RIA in any technology, Flash, Ajax, Appolo, XUL Runner, HaXe, Sparkle, add any other future technology here….. These systems would all be in break of the patent claim.
And this is just ONE of the EIGHTY THREE different claims in this patent.
Very worrying I think any developer would agree. Everyone involved in Internet application development, in my opinion, should take a serious look at this patent. Think about ANY work they have done or seen in past. The work they are doing today. Then consider the possible implications of future networked development. If you know of anything that has been posted, exhibited or shown publicly that can bring this patent down, it is in every ones interest to make it known to strengthen the Magix reexamination.
And remember we are not just talking about flash applications or work here. If you remember or are aware of ANY online application, in any technology, be it DHTML, Director, Java or anything else. If it used any, all or even one of these systems to allow user interation then it may well be enough to show that Mr Neil Balthaser did not invent these systems, and certainly has not right to lay claim to doing so as he has in his patent application.
Wunderman Interactive have just launched the second phase to the Land Rover Go Beyond site. The site offers user generated input to the content base and utilises a lot of Flash 8 features, with the back end being controlled through Flash Remoting. The challenges on such a flexible project are immense, it was a pleasure to be involved. Congratulations to everyone who touched the project. I imagine there have been a number of late nights in Camden recently 😀
I have had a number of emails, messenger texts, and commentâ€™s on my blog, asking for further information from my presentation notes on localizing flash. Localizing flash has such a wide scope of information, when I prepared my presentation I did take the â€˜data blastâ€™ approach of delivery.
I had a good idea the area(s) that people might like more in depth information, but I also wanted to take into account some broader work flow and process issues that I feel really need to be discussed. In this post I would like to present some more detailed information regarding one of the slides I used at the LFPUG presentation that, as expected, has generated a lot of feed back.
Managing Text & Fonts
So itâ€™s the day after my presentation on Flash Localization. I was quite happy with how things panned out, given I had been a presentation virgin prior to last night. The presentation didn’t hurt nearly as much as I was afraid of. At least it didn’t hurt me :D.
Thanks to AKQA for the venue, support, beer and pizza, very nice it was to. Thanks also to Tink for the opportunity to break my cherry, so to speak. And finally thanks to every one that came along to listen to me gibbering on. It must be said this is a subject I have come to build a love-hate relationship with over the many years I have spent in the field. I love the challenge of working to localise the content. I hate the fact that Flash makes even some of the most mundane solutions or Ideas a HUGE Challenge. It would seem I am not alone in this.
In addition to nattering on myself, I also received some useful information as well, which was great. So thanks for correcting my terminology of Polish as a Cyrillic based Language. Apparently it’s an Extended European language, which would account for me having issues with that one. 😀
Something I didn’t do last night was to show any code. This was due to operating on a Mac (thanks again Tink) and not being confident enough in my app switching on the alien technology. Below are some snippets I made reference to.
As myself and Mike (flashgen.com) have mentioned previously we were heavily involved in Flash ‘way back in the day’. During the time we were cutting our teeth in flash’s infancy we were involved in some (IOHO) pretty slick projects. Now if you want those to be seen EVER again we need to get some release forms signed from 2 very specific companies in the UK.
If you can help us, or you know some one who might be able too PLEASE leave a comment. Let me know if you want it made public or not and I will abide your wishes. What is important is that myself or Mike (flashgen.com) can contact you some how to follow it up.
If you lead to the project going like I will personally buy you a BIG beers or six, and give you a great big hug (kisses optional).
The companies and or departments required are.
BBC Education Department — need to be able to sign release for Medicine Through Time Website. (circa 1998, Flash 3).
British Telecoms Education Department — need to be able to sign release for BT Time Trek Game. (circa 1998, Flash 3).
Remember this may be the only opportunity to see these historical examples of what us oldskoolers ‘bled our eyes on’.
Please spread the word if you are able.
It all started at university. Microsoft or MSN Australia I think it was, that was the first ‘flash’ movie I saw. And it changed everything I had seen on the web until then. Of course unlike everything else on the web at that time there was no way to see how they had done it. Or at least you would think 😉 . A few moments in a hex editor to remove those pesky 10th and 11th bytes, if memory serves, that was the ‘copy protection’ and we were off and de-compiling, perhaps the first flash de-compiler was actually UltraEdit? 😀
As you will have seen Mike Jones (FlashGen.com) and I are meeting to take notes, share war stories and generally reminisce the ‘Good OldSkool Days’. To find out what files we still have, and even which URLs are still live (Flash 3 (alpha) circa 1997/8 btw JD produced by Spooky & the Bandit – you may remember them :p)
Keep your eyes peal for more news as events unfold….
Following on from Aral’s post regarding the amount of spam currently clogging the arteries of the Internet its nice to find a site that is doing something worthwhile with it all. The concept is to re-cycle Spam into computer generated Art. It also just happens to be a cool way of showing off some of the new tricks Flash 8 can do :D.
The London Flash User Group site has now been updated. I will be giving my first ever public flash presentation. My chosen specialist subject will be localisation techniques for flash. This is something I have been banging my head against for some time, and as a result like to think I may be able to offer some nuggets of knowledge to someone out there in order to save them the same pain I have endured.
So if either of those sounds like they might float your boat, then why not pop along. I would just ask you check heavy throwing objects at the door :p.
Dave ‘I’m not shitting it much I always walk like this’ At BitTube Dot Com
Previously I have mentioned concerns with regard to compatibility of Flash Player 9, ActionScript 3, Flex 2, and the recently released Flash 9 Preview. After digging around last night for information on how to get cracking on some Action Script 3 development I found this information on LiveDocs regarding the compatibility of the various flash SWF formats and ActionScript versions.
- A single SWF file cannot combine ActionScript 1.0 or 2.0 code with ActionScript 3.0 code.
- ActionScript 3.0 code can load a SWF file written in ActionScript 1.0 or 2.0, but it cannot access the SWF file’s variables and functions.
- SWF files written in ActionScript 1.0 or 2.0 cannot load SWF files written in ActionScript 3.0. This means that SWF files authored in Flash 8 or Flex Builder 1.5 or earlier versions cannot load ActionScript 3.0 SWF files.
The only exception to this rule is that an ActionScript 2.0 SWF file can replace itself with an ActionScript 3.0 SWF file, as long as the ActionScript 2.0 SWF file hasn’t previously loaded anything into any of its levels. An ActionScript 2.0 SWF file can do this through a call to loadMovieNum(), passing a value of 0 to the level parameter.
- In general, SWF files written in ActionScript 1.0 or 2.0 must be migrated if they are to work together with SWF files written in ActionScript 3.0. For example, say you created a media player using ActionScript 2.0. The media player loads various content that was also created using ActionScript 2.0. You cannot create new content in ActionScript 3.0 and load it in the media player. You must migrate the video player to ActionScript 3.0.
If, however, you create a media player in ActionScript 3.0, that media player can perform simple loads of your ActionScript 2.0 content.
The full information can be found here:
I’ve personally been using the XPathApi in flash for a little while. I don’t remember how I came across it initially, but I do know that I use it in almost every project I have worked on lately. However it has been bought to my attention by a colleague that not everyone has fallen across this most handy of classes. Below is information and links to help you get the most out of the XPathApi class in flash.
I noted on this post at Mixmedia that others are having trouble loading Images with the ‘best’ quality in flash 8. For those unsure what this means, the ‘best’ quality setting provides anti aliasing to pretty much all objects in a flash movie, all the time regardless of frame rate loss. This includes Bitmaps. So when you scale or rotate a Bitmap you donï¿½t get nasty jaggies on them.
A full explanation of the different quality settings in flash can be found here
Some time ago as Flash 8 was released Tinic Uro posted an explanation of the lack of support for bitmap anti aliasing in flash 8 and also a workaround for it.
The post is on his archives here
I have included this workaround in the Flash 8 gallery I posted, and have incorporated it into an Image loader class I am using in a project currently the only note of caution I would have is that this work around really boosts the CPU usage of a movie if you are moving around lots of images.
As a side note the ‘best’ quality setting was almost lost during the flash 3 alphas as it was thought to be identical in effect as the ‘high’ quality.
After a brief break to test my new surf board I arrived back in London to trawl the in box of its usual detritus of spam and try and find the emails that I actually need. In amongst them was the news that a project I have had the great pleasure to be involved in had gone live.
This is the first phase of a flash 8 project that will be pushing some serious technology about. At the moment I cant say much about what will be happening in the future but it should be fun, both for us developers and also the users as the project expands.
It was during my time on this acorn of a site that I encountered the Text Wrapping ‘issue’ described here.
On top of those things I finally had an opportunity to make proper use of CSS in flash for something other than my own mundane CV. Even though this is a small taste of the main application the foundations are certainly strong.
Congratulation to everyone else involved.
Yesterday i posted regarding an issue i stumbled uppon regarding the new saffron text engine in FP8. you can find the details of the issue here
After the comments from Richard Leggett I have produced this working alteration to the code posted previously.
The results while fixing the font adjustments as text is scaled, it causes re-wrapping in my example once the scale operation is complete. Given more time i will try to find a more robust solution to this issue.
more code after the split.
This week while working on another multilingual flash site, this time in Flash 8 I came across this interesting feature/bug with the new Flash 8 text anti aliasing. Let me explain the move below.
The top section of the movie uses text fields with the anti-aliasing setting set to “anti-alias for readability” which is placed inside a movie clip symbol. This clip is then placed on the main stage of the movie. The button at the top simple scales the movie clip that contains these fields from 100% to 200%.
The bottom section of the movie uses script to create a movie clip, and then create 2 text fields into the new movie clip. This time we use embedded fonts and text formatting to get the text to appear the same way as the top fields. The button then does the same scale operation on this newly created clip.
if the movie is missing below view it here for now
As you can see the flash 8 text does some very strange wrapping of the text as the parent clip is scaled. This effect was displayed in the project I was working on, and as you can imagine the client was not so pleased with this funky text effect.
The only fix I could come up with was to create and display the text as per the bottom section of the movie. I hope that all makes sense and is of use to someone.
Code from the movie is after the split, I apologise for the state of it, its is for example only.
I have added a small update to the Flash 8 photo gallery I produced. This allows me to specify the XML data source i wish the gallery to load from.
In addition I have done a small amount of tidying up on the server in the build up to categorising some of my photographs, and adding ‘album’ style functionality to the photo gallery application.
And finally in the sorting out, I also uploaded a few new images I found. Its slow progress but I gots to work you know.
Remember the Photo Gallery is a flash 8 file.
For those that missed my previous post, the source code for the photo gallery is here
Over on theflashblog.com they have very simple example of an undocumented function in Flash 8. The setTimeout() function seems to be a nice succinct replacement for the rather cumbersome (IMHO) setInterval().
How this setTimeout() operates in comparison to setInterval() remains to be seen, information regarding return types if there are any. Also the function by all accounts seems to be a global, which may be a little problematic for those creating components or classes.
See the full example here.
There is a nice post on Quasimondo that talks about using the Flash 8 BitmapData class as a tool to minimise the file size over head of using external transparent image assets.
To view the full post it can be found Here
I had been considering the uses of the BitmapData class in a related manner. Basically I wanted a method of watermarking external image assets and then removing the watermark when displayed in flash.
The photo gallery I produced in flash 8 is a simple experiment in flash AS 2 classes, inheritance and event modelling. The current gallery loads its information from an XML file, this XML file is currently rather large as it contains extraneous information intended for other presentation files.
The XML parsing is handled using the AS 2 XPath API Classes.
This implementation uses only the flash 8 filters really but the plan is to actually hop, skip, and jump the future development straight into the AS3 frame work and class structure.
The code below is the AS classes that control the presentation as it currently stands, please excuse the lack of commenting these files are provided ‘As Is’.
the example presentation can be seen here
I haven’t finished reading this article yet, but it seems to start off in an area I can understand well. Also given that I know some developers (no.1, no.2) that are wrestling with flash in a RIA development; I thought it was quite relevant.
It’s amazing that some companies just don’t listen to the developers that are trying to build there products.
The Fist thing was to transfer my early light site (bittube.com) into Flash 8. The site was originally produced using 90% code with a few classes and obviously the Bitmaps.
Using the new Bitmap capabilities in Flash 8 and some of the filters i was able to drop the processing requirements of the site and also the file size. Not to mention that now the whole Shebang is Code generated, with the exception of the loaded bitmaps of course.
bittube.com Flash 8 version
The next job was to provide a photo gallery that would show the loaded background images from the site in a more user friendly format, (thanks to Sean for the prompt). Again the whole lot is Code generated, so nice and small on the file size and driven by XML, so easy to update.
Once I have tidied up the source i will post the classes.