How can I load library assets from a separate project at runtime? - html

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.

Related

Trying to get a flash game onto my webpage

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.

How to combine an external preloader with actual SWF file?

I have an external preloader that loads my swf file. How can I combine these two to upload them on the internet? I cannot add the preloader in the first frame of my original swf and move the layers to the second layer as this tampers with my file.
You should have the preloader as a different file so do not try to combine them. Just upload both of the files to the webserver and to your html file include only the preloader.swf. Make sure that your preloader is calling the correct file in its Loader.load() method.

Embed jpeg into SWF at compile (without fla file)

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...

Web application that compiles to swf

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.

How to automatically include a number of images in the SWF file?

i'm trying to include a number of images in my SWF file not by loading them but by embedding them in the SWF itself. I found the following instruction to do that:
[Embed(source="../graphics/images/ss0.png")]
private var SS0:Class;
Basically, i want to embed a different number of images each time. Is there a way to do that automatically (let's say inside a for loop) or do i have to type manually this instruction for each image i want to include?
You could store all your PNG files in a single ZIP file, then use the FZip class to extract them. See the example of this on their site.