views:

351

answers:

3

Hi guys

Wondered if anybody knows how customizable Flash swf files are made, where there appears to be a template swf that the user can then input some changes (eg text or image) and receives a newly-compiled swf file with their changes.

Some examples: - http://flashfreezer.com/landingconfetti/index.html

Constraints: - user receives a single output swf file that can be played with all their changes included. ie there is no reading from an xml file, or using Flashvars.

Been trying different things for a few weeks with no luck!

A: 

I didn't check the site, but the only way I can think of is to read the requirement details through flash (this can be done through plain html also) and then generate the AS files from their templates and compile them at the server side (using mxmlc or other compilers) and give back the SWF.

Amarghosh
+1  A: 

There are a number of ways, but generally the most common is to either use a SWF generating library (like PHP's) or through server-side compiling.

Normally, this will be a custom or proprietary library which uses the same language that the serve is running (and there are open-source libraries for this in PHP, Perl, Python, Java, C++... etc). The SWF is generated and served up with the appropriate headers so that the browser knows how to re-direct it. Often this will involve a pre-defined template which is then modified slightly for the new input. Only occasionally does this involve the manipulation of pre-generated SWF directly.

The other option is to have a command line call to the Flash IDE or the Flex compiler (and, technically, this can work for CS3 and CS4, though in a very nasty and hackish way) to generate a new version of the SWF on the fly. This is often slower, but it will generally yield a more finished feel to a product.

Christopher W. Allen-Poole
A: 

I get the impression that you're looking for SwfMill. SwfMill creates a swf based on an XML file that you create/define. You could use SwfMill on the server to generate a swf based on user input.

Luke