Viewing By Category : Flash /
Main
Thursday, March 10, 2011
How to deal with crossdomain policies and subfolders
I had an interesting chat with Cyril Hanquez today: he contacted me with a problem he experienced with Flash Player when he tried to load data from domain B with an SWF that lives in domain A. This is by default not allowed by the Flash Player and this has been so for many years now. It's a simple security mechanism that just says: if you want your SWF to load data from a "foreign" domain then the foreign domain has to allow this explicitly. To allow others to load data, someone at domain B has to upload a so called crossdomain policy file to the webroot of domain B and all is fine (that's the short explanation, for a lenghty discussion see here or here)
There are plenty of special cases around this and one special case is this scenario: say you have a subfolder /data on domain B and you want a SWF file from domain A access this URL. Usually, you'd have to put the crossdomain.xml file into B's webroot. Now, when you don't have write access to the webroot (e.g. because your admins don't allow you to put things there) but only to the subfolder /data then you may put the crossdomain.xml file there. You'd then only have to tell the SWF on domain A to grab the policy file from that location. This is done by calling Security.loadPolicy("http://www.domainB.com/data/crossdomain.xml") - easy as this.
I told Cyril this and to our surprise this did not work and we still got security errors from the Flash Player. Debugging the network traffic he noticed, that the Flash Player was correctly pulling the crossdomain.xml file from the subfolder in domain B (so that was ok) but in addition, the Flash Player still tried to load the crossdomain.xml file from the webroot of domain B - that was new (I remembered it worked this way without problems... so maybe it had to do with the Flash Player versions again...)
After reading the documentation again (and again) it became obvious that since Flash Player 10, crossdomain.xml files in subfolders always require an additional master policy which tells Flash Player if additional sub-policies are allowedd or not (this is critical for hosted environments for example). As Cyril cannot but anything into the webroot this seemed like a dead end road, but again - the documentation to the rescue: it's also possible to send additional, custom HTTP headers to tell Flash Player which policies are valid. This is done by setting the X-Permitted-Cross-Domain-Policies HTTP header and setting a value (e.g. "all" to allow all crossdomain.xml files in this domain and in subfolders) - Well, that finally did the trick (turned out that this behaviour has been there since Flash Player 10 btw)
Dirk.
Tuesday, March 8, 2011
Flash Player 10.3 beta with Acoustic Echo Cancelation and analytics integration
Finally, a long time wished for feature made it into the just released Flash Player 10.3 preview version: Acoustic Echo Cancelation. With this feature, it's possible to create VoIP and video chat applications with better voice quality and less audio feedback.
In addition, 10.3 comes with a new integration feature called "Media Measurement" which allows for running real-time analytics over video content (supports RTMFP, RTMP, Multicast and HTTP) and direct interaction with Adobe Site Catalyst.
Also, the Flash Player Settings dialog is now a nativ control panel with the same look & feel as the rest of the operating system and the Local Storage management ("Flash Cookies") now integrates with Firefox 4, IE 8 and future versions of Chrome and Safari.
Dirk.
Wednesday, February 2, 2011
Streaming Video Roadshow 2011
Together with Adobe we're happy to announce the "Streaming Video on the Flash Platform Roadshow 2011". Don't miss this if you want to learn more about Flash Media Server 4, video streaming, content protection (DRM), building videoplayers on top of OSMF and so much more.
The first two stops will be Cologne and Munich, more to come soon. For more information and to register follow this link
Dirk.
Wednesday, December 1, 2010
Flash Player 10.2 public beta introduces StageVideo
Adobe just released the public beta of Flash Player 10.2 which (among a few other cools things) adds cross-platform GPU based video rendering which increases video playback performance.
To compile SWFs that take advantage of the new feature you need the new Flex 4.5 "Hero" stable Build 4.5.0.18623 which was also released.
More information and a lot of sample can be found here and here.
Dirk.
Tuesday, March 24, 2009
HP releases tool to find security vulnerabilities in Flash/Flex applications
HP’s Web Security Research Group has released a tool called SWFScan. The application aims at helping developers finding and fixing security issues in compiled SWF files.
The tool first decompiles the SWF file (ActionScript 2 and 3 is supported) and then scans the generated sourcecode for a range of several security vulnerabilities like hard-coded passwords, XSS and cross-domain issues. Also, the tool checks the code against Adobe's security best practices. So in contrast to other decompiler tools this one really adds value for the developer. Worth checking out!
Dirk.
Thursday, February 26, 2009
Critical Update or Flash Player 9/10, Release and Debug versions
Adobe has released a CRITICAL update for Flash Player 9 and 10 which fixes a security hole.
IMPORTANT: you'll have to update your Debug-Players as well as the default update will only update the Release version of the installed Players! The Debug-Player downloads can be found here.
Dirk.
Friday, December 12, 2008
"Stratus" Public Beta - UDP-based P2P with RTMFP and FP10 /AIR 1.5
Wow - this was just announced by Kevin Towes:
Adobe Stratus - Developer Keys Now Available! Adobe is excited to announce that Stratus is now publicly available for use by developers as a beta service. This is the long awaited missing link that will allow developers to take advantage of the new RTMFP protocol in Flash Player 10 and AIR 1.5. Why is this important? Well with RTMFP and Stratus, data can now be sent directly client to client allowing for highly cost-effective real-time communication. We can't wait to see what our developers build! REF: http://blogs.adobe.com/ktowes/ Dirk.
Thursday, April 10, 2008
Flash Player 9,0,124 security update and Flex WebService calls
Yesterday, Adobe released Flash Player 9,0,124 (Release and Debug versions) which fixes some critical security issues concerning DNS rebinding and cross-site scripting vulnerabilities, more info here. To allow more control over the permissions a remote site can grant SWF files, the cross-domain data loading concept has changed - as well as the crossdomain.xml file syntax.
One important change in the way Flash Player 9,0,124 works is that it no longer allows you to send custom HTTP headers to a remote host. Example: a SWF from domain A wants to send custom HTTP headers in a GET/POST request to domain B. By default, starting with Flash Player 9,0,124 this won't work anymore!.
This has impact for your Flex 2/3 applications (and also 1.5 if you have one flying around still), especially if you're using the WebService classes in Flex as all SOAP messages sent by the Flex client contain custom SOAP HTTP headers (custom here really means anything that gets added to the requests HTTP header).
So if your Flex application sits on domain A and connects to a WebService endpoint on domain B and you (or your customer) uses Flash Player 9,0,124 the Flex application wil fail to load the data due to the new restrictions. Even if you already have a crossdomain.xml file in place on domain B (of course, otherwise it wouldn't have worked before), the syntax is not valid any more. Or to be more specific: domain B does not explicitely allow custom headers to be send - so you'll need to update the crossdomain.xml file on domain B.
Here are two URLs that should give you a jump start:
In summary: with the new cross-domain data loading restrictions in place you now have fine grained control over custom HTTP headers on the receiving side (i.e. the remote server that hosts the service) including who may send which headers - which is good. On the other hand, it breaks your exsiting applications (ok, the fix is pretty easy to implement). The only thing I'm wondering is why there's no single word in the
official Adobe article that mentions Flex and the implications of the update to Flex applications...
Sidenote: I'm referring to Flex and the default Flex framework classes here but actually any network API in the Flash Player (URLLoader, URLStream etc.) is restricted in the same way of course - and Flex uses those classes for networking calls anyway.
Friday, July 27, 2007
FileReference.upload() fails silently in FP 9 if the file to upload contains a script tag
This is a weird bug in the current Flash Player 9 - it took us quite some hours to isolate it (and I wonder why it's there anyway).
When you try to upload a file in FP 9 by using FileReference.upload() the upload will fail if the file contains a <script></script> sequence anywhere in the file! No matter what fileextension (does not necessarily has to be .xml it could be anything) and no matter how large the file is. Just try to upload it - it won't work.
We came across this when we tried to upload an LiveCycle XDP file from a Flex 2 application and it did not worked whereas other XDPs could be uploaded with no problems. After hours of searching we found that the script tag was causing the problem.
I reported this subtle bug already to Adobe so let's hope it gets fixed quickly.
Dirk.
Tuesday, July 18, 2006
MDM Zinc version 2.5 supports Flex 2 and AS3
Version 2.5 of MDM's Zinc (a tool to turn SWFs into standalone applications for Windows and Mac OS X while adding access to a lot of low-level system through wrapper functions) is now available. The update adds support for Flex 2 / AS3 so you can now run your Flex 2 apps on your desktop. There's also a quickstart article on how to use Flex with Zinc.
Dirk.
Thursday, June 15, 2006
Be a Panini star!
Long time, no post. Well, we're pretty swamped right now building a Flex 2/FDS/CF7 application and of course watching the 2006 FIFA Worldcup games. If you are a longtime soccer fan then you probably also sold all your pocket money when you were young for those Panini collectibles every four years when a Worldcup was celebrated (hey, some friends of mine still collect and trade them today!). Perhaps you also dreamt about becoming a soccer star and have you face printed on a sticker... well, if you're reading this right now then your fate is probably a different one.
Anyway, thanks to modern technology and the power s of Flash (to stay on topic) you're now able to get a Panini sticker with you being a soccer star! Check it out!
Dirk.
Tuesday, March 21, 2006
Activating ActiveX controls in IE
If you're running Windows XP SP2 with IE 6 and you've installed update 912945 then IE won't automatically activate ActiveX controls when using the OBJECT tag (so they're InActiveX controls). Instead, only a "still image" of the control is drawn - hovering over the control with the mouse or TAB-bing to it displays a localized message which informs the user how to activate it. This also applies to Flash content embedded with the classic OBJECT/EMBED combo.
According to MS this only applies if the control is embedded directly. If the control is created through an external script, then this limittaion does not apply (of course, this requires active scripting is turned on on the client).
We found that the easiest way to react to this new behaviour was to replace all of our "classic" OBJECT/EMBED combos with the excellent FlashObject by Geoff Stearns. It is a very easy to use JS wrapper with a huge load of configuration options. The clever thing is that if no JS is enabled it will fallback to a custom default behaviour - which could be the OBJECT/EMBED combo again.
More info about FlashObject and the IE update is available here.
Dirk.
Thursday, March 9, 2006
FAB and ACFD: the big picture
Ben Watson of Adobe kindly provided two diagrams that give a pretty good overview over the Flex/Flash Ajax Bridge and the (not yet released) Ajax Client for Flex Data Services architecture:

The extra benefit comes from integrating the Flex Data Services into the web layer (blue):

This will allow to create hybrid web applications that can also work offline (by transparently interacting with the local data store instead of a server side backend)
Dirk.
Monday, February 20, 2006
ActiveX update for IE won't automatically activate OBJECT/EMBED content
According to this MS support article "Microsoft is releasing a software update to Microsoft Internet Explorer 6 for Microsoft Windows XP Service Pack 2 and for Microsoft Windows Server 2003 Service Pack 1. This update changes the way in which Internet Explorer handles some Web pages that use ActiveX controls"
Now, what does this mean? In short, this means that ActiveX controls (such as the Flash Player Control) won't be automatically activated by default if they are embedded with the OBJECT tag. End-users have to explicitely click on the control to activate it. However, if the control is instantiated by an external script file, the control will be active automatically.
One consequence is that the "traditional" approach of embedding ActiveX controls with the OBJECT/EMBED combo won't work as before once the IE update is out in the field. The other one is that now ultimately active scripting has to be enabled in the client's IE because otherwise the external script won't be pulled in. Very annoying.
Adobe is already working on a solution, probably some sort of JavaScript library or HTML wrapper files. More info available here:
Dirk.
Tuesday, November 15, 2005
Colin Moock announces new AS 3.0 book
Wow! Colin Moock just announced Essential ActionScript 3.0 which is really great news! It's predecessor Essential ActionScript 2.0 is my all time favourite AS 2.0 book because it really gets down to the guts of AS 2.0 in a very thoroughly way. Colin doesn't mention a release date for the new book but nevertheless it's good to know he's already down with a new one!
Dirk.
Wednesday, November 2, 2005
Where are the FP 8 version penetration statistics?
Just wanted to point a client to the version penetration statistics of Flash Player 8 - but they aren't available any more. I'm pretty I've seen FP 8 statistics a while ago. Any ideas why they have been removed?
Dirk.
Monday, September 26, 2005
XPath API now officially documented
Wednesday, August 31, 2005
Flash Player 8 deep dive
via Flashguru: On his blog, Flash Player Engineer Tinic Uro gives some interesting deep dive information about Flash Player 8. A must read.
Dirk.
Tuesday, July 12, 2005
Flash Player 8 (Maelstrom) in Public Beta
If you want to check the performance improvements of Flash Player 8 compared to FP7 then make sure to install the Flash Player Public Beta:
After the very smooth installation experience Flash Player reported a version number of 8,0,0,434
The Player team did a great job to get things right: FP8 uses far less memory and comes with a better garbage collection. Also, the overall playback experience has improved - in general, almost every content you've ever created will perform better on FP8. We tested one of our bigger Flex applications with FP8 and it consumes about 30% less memory and significantly performs better in terms of screen redrawing and initialization times when using deferred instantiation.
BTW, a great tool to easily install and uninstall several versions of Flash Player is the kewbee Flash Plugin Switcher
Dirk.
Monday, June 6, 2005
Flash Platform and new features of Flash based products
Macromedia launched a new company site introducing the Flash Platform. The new term Flash Platform is meant as a genus for the different tools and technologies evolving around the core Flash technology. MM also provides a very interesting PDF that explains the present and the future of the Flash Platform.

When reading through this document, you'll find some great information about upcoming software:
- Upcoming Flash Player capabilities (Maelstrom) include a new image API for dynamic custom effects, runtime support of PNG, GIF and progressive JPG files, improved performance (graphics rendering, text scrolling, component rendering, ActionScript execution, and memory management) and finally file up- and download.
- Next version of Flash Lite, code-named Deuce: based on Flash Player 7 with ActionScript 2 support.
- Next major release of Flex, code-named Mistral, will introduce new data services to support transparent data persistence across tiers, occasionally connected clients, data synchronization, a robust data push infrastructure, and paging large datasets. The new data services will also support offline data access.
- Upcoming Flash Communication Server release, code-named Edison, will support new hi-fidelity video capability in Maelstrom, and provide integration with the Flex programming model.
Can't wait to get my hands on these things!
Update: Official press release by Macromedia
Dirk.
Thursday, June 2, 2005
Avalon Beta 1 Release Candidate introduces "Express Applications"
Microsoft announces the Avalon Beta 1 RC. Very interesting about the new release: contrary to former announcements, it will be able to run Avalon applications as "Express Applications" inside a browser:
The Avalon application model now supports two distinct modes of execution: standalone executables and "Express" applications. Standalone applications can derive from NavigationApplication or Application, have access to all privileges granted to the current user context, and are installed to a user's machine. Express applications must derive from NavigationApplication, are hosted in a browser window, run in a security-constrained partial trust sandbox, and offer a zero-footprint install model.
Obviously MS still believes in the browser and browser based applications - do they feel the impact of RIAs?
Dirk.
Wednesday, May 18, 2005
Flash Player 8 to support E4X
Some details about the upcoming Flash Player 8 unintentionally left the building and were posted on flexcoders some hours ago. As expected by many, Flash Player 8 will support E4X (ECMAScript for XML), resulting in less code to write (no more firstChild.childNodes[i].firstChild.nodeValue) and better performance. E4X comes with its own path and filtering notation - the samples shown in the posting look very nice.
Although the post refers to Flex 2.0 I believe the whole E4X feature will also apply to "normal" Flash content as it's going to be integrated into the player itself.
Dirk.
Friday, May 13, 2005
Grocery Store Wars
May the Farm be with you - a funny FLV video featuring Cuke Skywalker, Princess Lettuce, Ham Solo and other brave vegetables!
http://www.storewars.org/flash/index.html
Dirk.
Wednesday, April 27, 2005
Forrester Research on Adobe, Macromedia and Flash's Future
Forrester's take on Flash's future (free registration required):
Adobe Systems' impending purchase of Macromedia has raised questions about the future of Flash. But the acquisition makes prospects for Flash-related products even brighter than before as Macromedia gets a much-needed infusion of marketing clout along with some intriguing opportunities for tool synergies.
Dirk.
Friday, April 22, 2005
__resolve and brackets
Very interesting: I just found that Object.__resolve also fires when accessing an instance via brackets, i.e. by calling foo[42] on a class instance. This allows to build proxy objects for Arrays - for example to delay "expensive" object creation operation until they are really needed.
class TestProxy {
function __resolve(num) {
if (num == 0) {
return "Hello";
} else {
return "World!";
}
}
}
If we create now create an instance of this TestProxy class and access it by using brackets, the __resolve function fires:
var foo:TestProxy = new TestProxy();
trace(foo[0]); // traces "Hello"
trace(foo[1]); // traces "World!"
trace(foo[42]); // also traces "World!"
Ok, lame example, but you get the idea. The __resolve function can take control what to do. To the outside it still looks like an Array.
Dirk.
Monday, April 18, 2005
Merge my day...
Ok, here's a little anecdote concerning the Adobe/Macromedia acquisition:
Back in the late 80s, a small company in Richardson, Texas called Altsys developed an illustration program called FreeHand. Freehand was licensed to another company called Aldus and Aldus published and sold FreeHand for quite some time.
In September 1994 Aldus was taken over by Adobe. Altsys was afraid that Adobe would drop Freehand in favour of their own Illustrator product so Altsys filed suit against Aldus to take FreeHand back. Finally, marketing rights to FreeHand got back to Altsys. Shortly after (in 1995), Macromedia bought Altsys - and FreeHand.
Some more info:
Dirk.
Adobe aquires Macromedia for $3,4 billion
Adobe aquires Macromedia! I'd never thought of that before - and still I can't see how this fits together. Ok, Adobe and Macromedia have been competitors for years in the graphics/tools market but how do the mobile and server solutions fit in here?
So I'm gonna use Adobe ColdFusion and Adobe Flex 2.0 in a couple of months... strange. Also, what will this mean to the competing technologies FlashPaper/PDF, Flash/SVG, Dreamweaver/GoLive?
Here's some more information I found quite useful:
Dirk.
Friday, February 11, 2005
MM shop offers FlashLite 1.1 player
Via JD and Flash-MX: the MM shop now offers the FlashLite 1.1 player for about €10. Officially, it is targeted towards developers but according to the FAQ there's no reason why end customers shouldn't buy it, too.
This is quite a change in MM's distribution policy as it wasn't possible to simply purchase and download the FlashLite player until now - especially not for developers who were new to this and just wanted to get some fancy Flash content onto their cell phones with low effort.
Edit: MM just licensed FlashLite to Nokia. Nokia will ship all Series 60 devices with Flash technology.
Dirk.
Monday, November 22, 2004
More official info on Maelstrom and 8ball
Two brand-new articles about the future of the Flash Platform are available. At the DevNet, Waleed Anbar (Product Manager, Flash Player and Central) talks about the three main themes performance, expressiveness and standardization - the latter mentions the move towards full compliance with the ECMAScript Edition 4 standard.
The second article is by Mike Downey (Technical Product manager) from the Flash Team. This article adds some more specific information and about technical implementations and additionally gives some interesting hints on 8ball - the next generation of the Flash Authoring Environment.
Dirk.
Wednesday, November 3, 2004
Eclipse plugin for ActionScript 2.0
Interesting: Obviously someone started a project at sourceforge for a AS 2.0 Eclipse plugin: http://sourceforge.net/projects/aseclipseplugin/
Dirk.
Friday, October 15, 2004
Advanced RIA engineering: applications that run in the Browser and in Central
One of the most overlooked things about Central 1.5 is probably the fact that it is fully ActionScript 2.0 compatible. Combined with some best-practice design patterns it's now pretty easy to expand a Central application's field of operation into the browser - and vice versa. In one of our latest projects we went just that way: we needed to build a client software that runs in the browser and in in Central. Both versions needed to share the basic appliaction logic but have to be specific in their concrete runtime environment.
So basically we needed an application that behaves differently in different environments (Browser, Central) but still they should provide common interfaces to work on. We ended up with a the following setup:
A FlashPaper version of the above diagram is available here.
The main application ConcretePortableApp implements a comon interface PortableApp to ensure that the needed methods are available to the Client (in this context the term 'Client' refers to the part the of software that acts as a single entry point, e.g. a UIObject instance that initializes the rest of the application). The main application also defines the default behaviour of the application.
The main application is extended by two subclasses, CentralApp and BrowserApp. Both overwrite or extend the default behaviour according to their needs. For example, CentralApp also implements the mx.central.Central interface and initializes the Central environment during startup. Because both subclasses extend ConcretePortableApp they are also of type PortableApp. This means if we create instances of the sublcasses both will be compatible with our common interface.
This finally leads to the AppFactory class. The AppFactory uses logic to determine which class to instantiate according to the current runtime environment and returns an object of type PortableApp to the Client (again this is possible because of the implemented interface). That way the Client does not need to know in which runtime environment the application is running and can happily work with it.
I hope you found this article interesting - and if you have any comments or questions please do ask!
Dirk.
Tuesday, October 5, 2004
Flash Eclipse, Eclipse Flash
This product catched my eye as I walked to the supermarket's check-out yesterday. Now I wonder if the marketing person in charge for this product name was influenced by some Flash/Flex/Eclipse/whatever coding guru. Honestly, how could someone come up with such a moniker- :)
Dirk.
The Guts of a Flex SWF file
Wow, that's really an interesting article: if you ever wanted to know how Flex really bakes internally the make sure you don't miss this fine piece by Roger Gonzalez. It's a very in-depth article on the internal workings of the SWF compiler and linker with lots of information in it that may not be relevant for your daily Flex work (actually, I think they are confusing if you haven't done Flash before) - nevertheless, it may be helpful when you want to tweak your applications.
Dirk.
Wednesday, September 22, 2004
Test your knowledge of human nature: Killer or Coder (or both)?
That's a tough one - I scored 5 of 10 8-)
http://www.malevole.com/mv/misc/killerquiz/
Dirk.
Tuesday, September 21, 2004
Flash MX 2004 Trading Cards - which deck do you have?
After FedEx brought us this fine Macromedia goodie package I would now like to start trading cards. I have two series one decks (Components) of the Flash MX 2004 Collectible Card sets:

Anyone out there with a ActionScript reloaded or Using Behaviours the pro way deck?
Dirk.
Friday, September 17, 2004
Some in-depth info on Central 1.5
Now that Central 1.5 is live I would like to contribute some developer-centric information on how the new feature set helped us in a just finished project for one of our customers.Basically, they use the Central platform to support their sales men on their sales business. More concrete infos on the project soon to come. But now for some technical stuff :)
First, Central 1.5 now fully supports all Flash Player 7 features while offering some more functionality. The most interesting one - especially when it comes to developing applications that should run offline, too - is the File IO API that let's you read/write files on the user's machine while remaining the security sandbox metaphor intact. This feature enables you to write directly to XML files for example - ne need to serialize your data to Shared Objects that are not human readable anymore. But you can also open mp3 files on the user's drive if he gave the permission do to that.
Together with the very effective caching functionality the File IO features simply rock! The key idea behind the caching is simple: if Central is online and you request a remote file (no matter how: XML.load(), LoadVars.load(), MovieClip.loadMovie(), ...) Central fetches this file - nothing special about that. You can then add this URL to Central's cache by calling addToLocalInternetCache(url) - the next time you request a cached URL, e.g. myXML.load(url) Central checks its cache and returns the cached file. If it's not there, Central gets the online version - very easy and effective. Now, suppose your offline: again, calling myXML.load(url) returns the cached version - you simply have to do nothing about it, the data loading calls are checking the cache subsystem and do their stuff. Very cool!
Another killer feature of the File IO API is the upload feature. I'm sure this will cause a lot of discussion, especially arguments like: "hey, if it is in Central, why can't we have it in the Flash Player, too?" - honestly, I don't know if this feature will be added to the regular Flash Player but it would be extremely helpful.
Central 1.5 also supports AS 2.0 and the v2 component framework, making it easier to maintain look & feel. Although the Central SDK comes with an own collection of the v2 components that are optimized for Central, 90% of the standard Flash MX 2004 components work in Central 1.5, too. This is not supported by Macromedia however but it works ;). This enabled us to create an application that runs in Central 1.5 and (with a limited feature set) in the browser, too. This is done with simple AS 2.0 inheritence: the main application logic acts as an superclass for the BrowserApp and the CentralApp classes which in turn overwrite/extend the main class to their needs - effective and easy.
The development process which was awkward in Central 1.0 has been optimized and offers developers now an integrated wizard in Flash MX 2004 that helps building and deploying Central 1.5 projects. Still it is not optimal, though: Central applications have to run inside the Central shell to test them so you have to switch between Flash and Central and real debugging is not possible. Anyway, I am really looking forward to Central 2.0 and give enough user input I am pretty sure this will be optimized.
Best of all, the Central licensing has been optimized. You can choose between two flavours: either you distribute your product as a try & buy product (for US residents only at the moment) or you choose the Open Distribution program which enables you to just distribute your application at your like. The best: it's free, baby - no more per seats/per year licensing. For more information check this link.
In summary Central 1.5 is worth checking out (I think so) - stay tuned for more information on our latest project, too. Here are some official links concerning 1.5:
Dirk.
PS: oh, and there's the new AIM/ICQ integration layer, basic Flex support and other things to examine!
Thursday, September 16, 2004
Flash Player 7 for Solaris available
According to this press release Macromedia just released Flash Player 7 for Solaris. With this release, Flash Player 7 is now available in several different flavours including Windows, Mac, Linux and now also Solaris. Having the latest Flash Player on a Sun system sounds interesting :)
Dirk.
Monday, September 6, 2004
Flash video gallery spoof
Advanced Flash Video-ing: Graeme Bull wondered how MM made this "Video Gallery" banner. He made some assumptions, went creative and finally came up with a very very cool own version of the banner. Another good example that (given the right tools) Flash Video is just more than video.
So vote for yourself who's hotter: the MM model or Mr.Bull ;-)
Dirk.
Thursday, September 2, 2004
BLDoc beta announced - autogenerated JavaDoc style docs from AS classes
This just popped up on flexcoders: B-Line Express (www.blinex.com) has just opened a public beta for their BLDoc tool that (like JavaDoc) generates HTML documentation by doing introspection on your source code and special meta tags buried in comments. I be it's worth checking out!
Dirk.
Thursday, August 26, 2004
MM Technotes on Flash Player and the XP Service Pack 2
MM has posted some technotes - if you have trouble with Flash on XP SP 2 check it out:
http://www.macromedia.com/support/service/servicepack2.html
Dirk.
Tuesday, August 24, 2004
The Jabberwocky strikes again!
via JD: last week VeriVito posted something geeky on his blog - an ActionScript version of Lewis Carrolls poem "Jabberwocky". This neat and sweet thing got slashdotted quickly and all those die-hard Assembler/C/Java guys from slashdot.org went crazy (or upset?) about the fact that this cool, useless, skip-intro tool called Flash can be used to do geeky poems.
Now, VeriVito shows teeth and provides us with a new Jabberwocky interpretation... :-)
Dirk.
PS: maybe we should start an obfuscated ActionScript contest?
Thursday, August 19, 2004
New Flash Player version statistics
According to the the latest Flash Player statistics here, Flash Player 7 (7.0.19.0) is spreading more and more. Interestingly, Europe has reached a 81% ubiquity. I believe this is not due to the fact that so much Flash Player 7 content is produced in Europe but because more and more people here in Europe that haven't got Flash installed get access to broadband internet and don't mind installing the newest Flash version anymore.
Anyway, It would be cool to have a per-country statistics chart, too.
Dirk.
Friday, August 6, 2004
Customizing Flash MX 2004 components? Sure!
I have to admit that I haven't looked into skinning v2 components too much yet - mostly because our latest projects didn't required it but also because it somehow sounded awkward and difficult to me. Now, thanks to Chafic Kazoun's great DevNet article "Skinning the Flash MX 2004 Components" the concept and different approaches are much clearer. Also the official documentation has improved with the latest 7.2 update and is (as far as I can see) more complete in terms of how to customize the different components.
Dirk.
Tuesday, August 3, 2004
MM starts World Tour to see how Flash is used in the real world
The changes inside the Flash Team are bearing fruit: some of the Flash team (after visiting customers in NY) are now in Tokyo to harvest information on how is Flash and Flash related technology used "in the wild" and what needs customers have. This tour seems to be directly connected to the next release of Flash, codenamed 8ball (the fact that the codename is made public by MM itself is another hint for the new information policy).
Macromedia takes customer/developer complaints more and more serious - the result is the new update for Flash MX 2004, formerly known as Ellipsis. Mike Chambers just released a must read article on DevNet about Ellipsis: http://www.macromedia.com/devnet/mx/flash/articles/context.html
Here's a excerpt that underlines the change in attitude:
"[The] bug fixes and changes are only one step in our work to make sure that Flash (for the next full version) is a super solid tool for creating great experiences, content, and applications. One of the reasons that made Ellipsis necessary in the first place was that we had lost some touch and focus with our current customers, and as a result, the quality and direction of Flash suffered. We have made sweeping organizational changes across the teams with the goal of institutionalizing communication with users, in order to ensure that we do not make these mistakes again."
And later on regarding 8ball:
"We have been talking publicly about Ellipsis for a couple of months, and have even been discussing 8Ball, something that would have been unheard of in the past."
That being said, the next months will be interesting and the next major version of Flash hopefully will be a rock solid development platform.
Dirk.
Flash Communication Server documentation as LiveDocs
Nice! Macromedia has added the FCS documentation to the LiveDocs:
http://www.macromedia.com/livedocs/flashcom/mx2004/index.html Dirk.
Thursday, July 8, 2004
Collection and Iterator
Together with the ActionScript 2.0 Remoting components Macromedia also provides the source code. While browsing the source files, I found that they also put the mx.utils.Collection and mx.utils.Iterator code into the download. Those two interfaces and their default implementations have been in Flash MX 2004 before but they were built into a SWC making them somewhat obscure and useless.
The mx.utils.Collection interface mimics Java's Collection interface and provides you with a somewhat "smarter" way to deal with a group of data (internally it's an Array still). You can add and remove items to a Collection, you can check for the existence of an item inside the Collection and you can iterate over all the items by using an Iterator.
The mx.utils.Iterator interface again is inspired by the Java interface with the same name. It simply helps you when looping over a Collection.
Both mx.utils.Collection and mx.utils.Iterator come as an interface that developers can implement easily. Macromedia also provides two default implementations that you can instatiate directly.
Here's a simple example on how to use both implementations:
import mx.utils.*;
var myColl:Collection = new CollectionImpl();
myColl.addItem("foo bar");
myColl.addItem([1,2,3]);
myColl.addItem(new Date());
var myIterator:Iterator = myColl.getIterator();
while(myIterator.hasNext()) {
trace(myIterator.next());
}
Dirk.
Wednesday, June 30, 2004
Apple, Macromedia, Opera and Sun join for next generation plugin technology
Apple, Macromedia, Opera and Sun go hand-in-hand for the next generation of web browser plugin technology:
"In response to demand by users, plugin vendors and web developers for web browser support for an open, secure and scriptable plugin model, the Mozilla Foundation, in collaboration with Apple, Macromedia, Opera, and Sun Microsystems are working to extend the Netscape Plugin Application Program Interface (NPAPI) in a manner that allows greater interactivity with plugins such as Flash, Shockwave, QuickTime and Java, resulting in a richer, more interactive web."
Enhanced interactivity inside the browser and inter-plugin communications opens new possibilities - let's hope they get it all nice and safe.
Further reading:
Dirk.
A new blog on the block - let the information flow!
The first visual impacts on the new job positions of the Macromedians
Mike Chambers and
Mike Downey: following the blogging trend, the hard-working
Flash Team now has its own blog. They are hard-working indeed - right now the next update for Flash MX 2004 (codename "Ellipsis") is being forged in the deeper coding dungeons.
Here's a overview on the feature set.
It's good to see Macromedia moves away from their restricted information policy in terms of future software versions towards a more transparent one. In the last months the community had many chances to take a first look at still codenamed software like ColdFusion Blackstone or the Brady IDE for Flex - now with the Flash Team's blog on the stage there will be even more in-depth info available soon.
Dirk.
Tuesday, June 29, 2004
Most recent Flash Technotes
This article reflects the most recent
Flash Technotes by Macromedia. The technotes are updated regularly so make sure you check this page often.
Sorry, the links couldn't be loaded.
Friday, June 18, 2004
I'm crushing your head!
Tuesday, June 15, 2004
The possible impact of the Windows XP Service Pack 2 on your websites
There's a lot of confusion on the soon to be released service pack 2 for Windows XP but the overall conclusion is: the upcoming service pack 2 for Windows XP will have a big impact on existing web-sites. So lets check why...
A clearly stated goal for the (still beta) service pack is increased security of XP client computers. Microsoft basically wants to close all known security holes and potential issues by locking down a lot of functionality - finally it seems, they have realized that security is important even for non-business users.
The side effects though, are tremendous. Not only will the Internet Explorer by default be much more stricter in regards on how client side scripts (JavaScript, VBScript) are executed. Also the instatiation of ActiveX controls will be much more limited - a FAQ document mentions that the attempt of "A Web site navigating to a page that attempts to instantiate an ActiveX control" will be blocked by default - Flash detection scripts anyone?
Asked about the impact the new security model will have on Flash, Macromedian Christian Cantrell came up with this one:
"I can't comment on this too directly, but I can say that we are aware
of this issue, and that we are working very closely with Microsoft in
order to minimize the effects on customers. Sorry I can't be more
specific, but I'm sure we will have more information to communicate as
we get closer to the release date.
Christian"
via JD comes this link: http://www.microsoft-watch.com/article2/0,1995,1611106,00.asp
Further information straight from Microsoft:
Article on heise.de (German): http://www.heise.de/security/artikel/44462
Dirk.
Monday, June 14, 2004
XPath in Flash - there's always more than one way to go
Only few seem to know that a XPath engine is already included in Flash MX 2004 - ok, I have to admit that it not fully implements the whole XPath specification but it does a great job anyway (especially if you're tired of looping through XML structures and doing all that childNodes[n].firstChild.firstChild.nodeValue stuff).
Flash MX 2004 comes along with a slightly undocumented XPath API. Flash uses this API internally to resolve author-time data bindings. If you've ever done data binding visually in Flash then you'll probably know that there always is this "Use path expression" checkbox when the "Add Binding" dialog pops up - that's what makes me curious one day ;)
Important: the API is only availble in its compiled form and resides inside the DataBinding SWC file. This component has to be added to the library, otherwise the movie won't compile!
So - here's how to use the XPath API:
- create a new fla with Flash MX 2004
- open the "Classes" library (Window --> Other panels --> Common Libraries --> Classes)
- drag & drop the DataBindingClasses component to the stage
- delete the component instance from the stage (check your fla's library to see the component is still inside it)
- make sure to add import mx.xpath.XPathAPI;
The XPath API is implemented as a static class. Two methods of this class are the most helpful:
- XPathAPI.selectNodeList(node:XML, statement:String):Array
- XPathAPI.selectSingleNode(node:XML, statement:String):XMLNode
The first method retruns an Array consisting of XMLNode objects, the second method returns one single XMLNode. The implementation is pretty straightforward and returns results very quickly even when searching on big XML trees. The returned elements can again be searched via XPath as they are XMLNodes (and therefore valid parameters to the search methods)
The only drawback is that the API does not support the 'greater than" and 'less than' operators - in other words: you cannot perform this statement: /catalog/books[pages > 420]
I compiled a quick example here for your testing pleasure.
Same topic, just another technique: Last Actionscript Hero shows in his blog how to use XPath in Flash MX 2004 by using the XPath library by xfactorstudio.
Dirk.
Friday, June 11, 2004
ActionScript 2.0 Remoting components available
It was about time and now they are finally available: Macromedia released the Flash Remoting components for ActionScript 2.0 - the update includes
- updated API to comply with ActionScript 2.0
- new RemotingConnector component (yummy!)
- Significant improvements to the Documentation (Flex style)
Localized versions will be available soon.
Dirk.
Thursday, June 10, 2004
Vote at this year's Flash Film Festival
Only a few days left until June 28th so make sure you vote at this year's Flash Film Festival. As usual, all finalists did an outstanding job so make sure you check them out all.
Personally I like RevisionWare (desktop like application) and 5 days to Midnight (film-noir like crime game) best. Also very cool is this demo by globz - the graphics and the coding is absolutely stunning!
Dirk.
Friday, June 4, 2004
Undoc'ed DataGrid treasure: sortDirection
If you've ever dealt with custom sorting in a v2 DataGrid then you'll know that it's sometimes a real pain. The DataGrid has no official way to determine the current column's sort order - but it has a pretty cool undocumented property which I hope will make it into the documentation some day soon:
sortDirection.
DateGrid.sortDirection is of type String and either "ASC" or "DESC". Say, for example the very first column in the DataGrid displays Date objects. These data types will not be sorted correctly if you click on the column's header. Instead, you have to implement a custom sort function by using DataGrid.sortItems(customSortFunction). By checking sortDirection you also know which sortFunction to apply:
//AS snippet
function headerRelease(evt) {
// determine the new sort order
if (evt.target.sortDirection == "ASC") {
// pass the custom sortAscending function
// to the the DataGrid's sortItems() method
myDataGrid.sortItems(sortAscending);
} else {
// other way round
myDataGrid.sortItems(sortDescending);
}
}
BTW: Flex offers a nice addition to the sortItems() method. In Flex, you can pass in a second numeric parameter that is passed to your custom function as a third parameter. With this parameter you don't have to setup two different sort functions but can handle all the sorting in one centralized function.
Dirk.
Thursday, May 27, 2004
Flash Player 7 nun auch für Linux verfügbar
Hat ein bisschen länger gedauert, aber nun ist er da: Macromedia hat den Flash Player 7 (Release 7.0.25.0) nun auch für Linux x86 zur Verfügung gestellt. Laut der Pressemitteilung wird der Player mit den Distributionen von Novell, Red Hat und Turbolinux ausgeliefert, weitere Distributoren werden folgen. Sun wird außerdem den Flash Player 7 in das Sun Java Desktop System integrieren.
Zitat: "The integration of Flash Player 7 into the Sun Java Desktop System will enable our joint customers to view the rich, interactive Flash content that is so widely used on websites worldwide."
Na, und das aus dem Java Stammhaus 8-)
Dirk.
Tuesday, April 27, 2004
FLV MetaData Injector von Buraks
Buraks hat Version 1.0 des
FLV MetaData Injector zur kostenlosen Benutzung online gestellt. Mit diesem Tool ist es möglich, FLV (Flash Video) Dateien
nachträglich mit Metadaten zu versehen. Aber warum sollte man das tun?
Wir haben in letzter Zeit viele FLVs erstellt und benutzen dafür Sorenson Squeeze. Die Qualität der Videos ist spitze, nur leider ist es nicht möglich die Gesamtdauer eines FLVs mit Flash auszulesen - ziemlich lästig, wenn man dynamisch FLVs abspielen will, und vorher nicht weiss, wie lang sie überhaupt sind.
Seit Macromedia den Flash Video Exporter 1.2 veröffentlicht hat, gibt es zwar die Möglichkeit, die Länge eines FLVs zur Laufzeit zu bestimmen - Squeeze aber kann das noch nicht. In diese Bresche springt der MetaData Injector (was für ein Name) und spendiert außerdem noch ein paar weitere Meta-Tags. Zwei Daumen :-)
Dirk.
Custom CellRenderer
Die Darstellung einzelner Zeilen bzw Zellen in den listbasierten UI Komponenten wie z.B. List oder DataGrid lässt sich mit einem sogenannten CellRenderer anpassen. Auf diese Weise kann man in einem DataGrid z.B. statt textuellen Informationen auch andere Komponenten platzieren. Dazu schreibt man eine eigene Klasse, die die CellRenderer API implementiert und weist dem DataGrid diese als CellRenderer zu:
myDataGrid.getColumnAt(0).cellRenderer = "CustomCellRenderer";
Das DataGrid erstellt nun für jede Zelle (also jedes Element) in der entsprechenden Spalte eine neue Instanz des CellRenders und ruft bei der Initialisierung und jeder Änderung des dataProviders die setValue() Methode auf - über die übergebenen Parameter lässt sich dann das Aussehen der Komponente regeln. Und so sieht sowas dann aus:
Kleine Fallstricke gibt es allerdings. Benutzt man z.B. RadioButtons innerhalb eines DataGrid, so greift die Standardfunktionalität, die alle RadioButtons zu einer Gruppe zusammenfasst, leider nicht. Das liegt daran, dass jede Zelle eines DataGrid effektiv von einem MovieClip dargestellt wird. Ein RadioButton in einer Zelle "weiss" also nichts von seinen Partnern - die Auswahl eines RadioButtons schaltet also nicht alle anderen RadioButtons aus.
Als Beispiel gibt es hier eine Zip-Datei mit einem RadioButton-CellRenderer zum Download.
Dirk.
Thursday, April 22, 2004
PrimalScript 3.1
Nachtrag zum Thema
ActionScript Editor: als kommerzielles Produkt empfiehlt sich
PrimalScript 3.1. Dieser Editor kann sich schon fast IDE schimpfen und unterstützt neben AS 2.0 auch ColdFusion, Java, MXML, JS, HTML, PHP, etc.
Insgesamt macht das Produkt einen sehr reifen Eindruck und gefällt mir richtig gut. Eine 30 Tage(?) Testversion lässt sich auf der Produktseite ebenfalls beziehen.
Dirk
Thursday, April 15, 2004
SE|PY ActionScript Editor
Sephiroth hat Version 1.0 des
SE|PY ActionScript Editors veröffentlicht. Das Tool ersetzt den bekannterweise etwas blutarmen Flash IDE Code-Editor und unterstützt AS 2.0.
SE|PY ist in Python geschrieben und wartet unter anderem mit Features wie Codehinting/-coloring für eigene Klassen, einem Class Browser und Flashintegration (compile, test movie) auf. Das Ganze ist dazu auch noch Open Source (GPL).
Dirk.
Tuesday, April 13, 2004
toString() Zauberei
Es ist doch immer wieder erfreulich, kleine aber feine Helferlein zu entdecken. Am Wochenende bin ich zufällig auf die "verborgene" Funktionalität der toString() Methode gestoßen:
var foo = 42;
trace(foo.toString(2));
// Ausgabe: 101010
trace(foo.toString(16));
// Ausgabe: 2a
So lassen sich Zeichenketten und numerische Ausdrücke in einem anderen Zahlensystem darstellen.
Dirk.