I have a swf template that can be used with different data input such as colors, texts etc. however i don't want to use the ordinary way of binding data to it such as xml. I would like the application to be able to produce a compiled swf with all the data in it.
Is it possible to inject the data in the compilation time?
Thanks
it should be, but depends on how much you want to mess around with the code of the template.
You can embed resources in flash, so you can just embed the XML with the information you want.
Then all you need to do if find the place in the code where it loads the XML file, and give it your own embedded XML file instead.
Yes it is possible, but only if you have access to the the source .fla file, so that you can generate a new .swf file from it.
If you simply want to change a few colors or other looks of some of the objects in the .fla file you should be able to do that without having to mess with xml, simply open the library items in Flash and edit their colors.
If you want to put your external assets within the actual .swf you can do that too, but if you already have it to pull external assets I would recommend keeping it that way.
For the XML, in ActionScirpt you can actually declare the XML within the actual Actionscript code. Open up the XML file and copy the the XML contents over to your code where it is parsing it.
For images you can simply drag image files directly on the stage or into the library.
Related
I'd like to set up a project so that there are two HTML5 createjs projects, with one loading assets from the other at runtime.
This is so that I can have part of my project that's shared across lots of files, and can be updated separately.
Ideally, I'd load these from a separate source, like how swf files can load assets from other swf files. Still within the same domain.
How can I set that up with createjs? I know I can easily load bitmaps and text files like you'd load any file in javascript, but I'd like to load vector graphics created using Animate and be able to render them on the stage.
The HTML5 exports are the resulting js files, along with some other additional assets, like images or sounds. Therefore, all you need to do is export both .fla files and load both of the resulting js files in the HTML document at the same time.
<script src="js/export.js"></script>
<script src="js/export2.js"></script>
After all that is loaded, you will be able to use vector graphics from both files, as long as they are properly referenced.
Some of the gnome applications on linux use a help browser called yelp. For example, the gnome-calculator, gcalctool, has its help files located in /usr/share/gnome/help/gcalctool
The folders there are then sorted by language. These help files essentially consist of an xml file and some accompanying png figures.
What I'm trying to do is convert this xml and its accompanying png figures into static HTML because I want to be able to properly view and navigate the document from a different browser (firefox). If you want to see what I'm talking about and you are on Linux, just run gcalctool and open the help menu.
Unfortunately, opening the xml directly with firefox is not successful because there are no stylesheets and thus firefox doesn't know how to format it. I have read that gnome applications make use of a library called libxslt (http://xmlsoft.org/libxslt/) for applying stylesheets. I am not familiar with xslt at all. Are the stylesheets saved elsewhere, or embedded in the source when it is compiled?
I guess what I'm wondering is if it's possible to somehow use libxslt by itself or another tool to convert the xml and figures into static HTML, preferably in the same manner yelp does this when it executes, or in a manner that results in an exact/very similar output to what yelp displays.
Thanks
gcalctool uses docbook. Yelp brings everything to display this xml format. You will find some projects to convert this docbook document to html on http://wiki.docbook.org/DocBookToXhtml.
best regards
Majo
Depending on how old your gcalctool is, its help files might be in DocBook or Mallard. If it's Mallard, you'll see a bunch of .page files. Otherwise, it's DocBook. Either way, you can use yelp-build to create HTML files. It's part of the yelp-tools package, and uses the same transformations as Yelp. For DocBook, pass the top-level XML file:
yelp-build html -o /path/for/output/ /path/to/gcalctool.xml
For Mallard, pass the directory containing the .page files:
yelp-build html -o /path/for/output/ /path/to/gcalctool/
yelp-build will build the HTML, copy the images and other media files, and take care of the CSS and JavaScript.
I created a game in as3 in FlashDevelop IDE. I have my own webspace, but I'm a rookie in the sense I've never put a game on it before. I currently have a .as3proj file and a bunch of .as and .png files. What steps would I take here? I know it will involve embedding it in html, but I have no idea what to embed or how/what that entails.
When you compile your project in Flash Develop, you have a bin folder containing a html file and a swf file. You need to transfert the content of the bin folder and every assets loaded at runtime (images, xml, mp3, ... ).
Can you post your directory structure for more help?
At the bare minimum, there should be a swf file in there that you need to deploy. This is the equivalent of an exe. Do not deploy .as files, as3proj files, or anything else like that. As for pngs, only do so if you do not have them embedded directly into the swf (this would at least generally involve the Embed tag being placed above non-local variable declarations). Make sure the path the swf is using to access the pngs, mp3s, and whatever else will still be valid once you deploy it and those files.
If you use code like:
[Embed(source = "plane.png")]
private const PLAYER:Class;
for every picture, you're embedding them, so you don't need to deploy them. If you weren't embedding them though, you'd just be linking to them. If you're linking over the Internet, just use a public URL to access those pngs, not a private, internal IP or localhost or anything like that. If you own the pngs and can copy them onsite, you would probably want to use a relative path. If the path to your pngs when running out of your IDE is assets/images/<png file>, go ahead and use that relative path, then wherever your swf is located on the server, make sure the pngs are in <swf's folder>/assets/images.
You do not necessarily have to embed the swf; it can act as its own webpage. This is not smart though, in many situations. The main reason is cache-busting. Also you may wish to use JavaScript to do things like detect whether the person has an enabled, valid Flash Player.
There are two open-source js files that help with embedding your swf: AC_OETags.js and functions.js. Use them. As a matter of fact, I believe Flex/Flash builder will build an HTML or ASP file that embeds the swf, with the help of these files. Just remember to put cache-busting meta tags into that file, so that you can immediately change the swf later.
Users upload images and select a template AS3 file, which would be used together with the images to compile into a SWF and be downloaded by the user.
Basically, use my own custom animations with the user's resource files in order to compile a new SWF at run-time.
I found a tool called "swftools", which can convert images into a slideshow, so I know something like this is partly feasible, I just don't know enough about AS3 to know how to load resources dynamically, without creating a FLA file manually.
EDIT: To clarify, I do not want to dynamically load an image from a URL or file at run-time. I want to embed the image into the SWF, but the image data is decided at compile-time.
Same problem here, and I found some great tuts that show how it's done, but (unfortunately) in AS2 (not AS3):
loading images
The code to convert:
loadMovie("photo.jpeg",photo.empty);
loading text
The code to convert:
myData = new LoadVars();
myData.onLoad = function () {
myText_txt.text = this.myVariable;
};
myData.load("myText1.txt");
AS2 to AS3 is very poorly documented, even for small scripts…
If you have a solution I'd like to know it ;-)
Use Flex and compc compiler.
http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7fd2.html
You can modify as3 sources on server and embed your images with [Embed(source='path/file.ext')] directive, run compc and get final swf...
I have a .swf file inside a website I've been asked to modify. Will this file contain normal html files and if so how do I get to them, there are no .fla file on the machine that created the site.
Thanks
Ross
.swf file is a flash element which is "playable" by your flash player. .swf is normally created used action script. In other words, the .swf file is the compiled version of the .fla file, and you can therefore not edit the .swf file.
Although Roskvist is completely right, there IS a way to convert .swf files back to actionscript code (and possibly .fla). This won't get you the original source code, but an 'estimated' code (with different variable names etc) that would give you pretty much the same .swf upon rendering. This can be done by software called a 'flash decompiler'.
A word of warning though: It's not okay to use this for stealing flash code from others' flash creations, you must have the rights to use any source code.