How to embed a text file in Flash

Reading some comments about the “Word Play” Flash Game Contest on this blog and on some forum threads, I noticed people can’t import a big list of words into Flash.

So here I am with a complete example :)

First, put your txt file in the same folder of your Flash project.

Then, the main file can be something like this one:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
package {
	import flash.display.Sprite;
	import flash.text.TextField;
	public class wordz extends Sprite {
		var text_field:TextField = new TextField();
		var words:embedded_text = new embedded_text();
		public function wordz() {
			addChild(text_field);
			text_field.height=400;
			text_field.width=500;
			text_field.text=words.toString();
		}
	}
}

Really nothing new except the words variable at line 6 that belongs to a class called embedded_text, that is the key class of this example.

Let me show it:

1
2
3
4
5
6
7
8
package {
	import flash.utils.ByteArray;
	[Embed(source="words.txt",mimeType="application/octet-stream")]
	public class embedded_text extends ByteArray {
		public function embedded_text() {
		}
	}
}

What? That easy?

Yes… the magic is at line 3 where I specify the path and the mime type of the file to embed. And I’ll have it ready to use into my Flash project

I can’t show you the final result because displaying thousands of words would crash the browser, but if you download the example, you can click on it and scroll the mousewheel to see all words I am using in the game I am developing to enter the contest.

Download the source code and enjoy.

Rate this post: 1 Star2 Stars3 Stars4 Stars5 Stars (4 votes, average: 5.00 out of 5)
Loading ... Loading ...
If you found this post useful, please consider a small donation.
» Flash Templates provided by Template Monster are pre-made web design products developed using Flash technology.
They can be easily customized to meet the unique requirements of your project.

13 Responses to “How to embed a text file in Flash”

  1. Hawdon on June 24th, 2009 8:39 pm

    Cheeeeers!

    Thanks a lot!

  2. HiddenSpartan on June 24th, 2009 10:02 pm

    From what I’ve heard, that only works in Flex (or else I read Essential Actionscript 3.0 wrong).

  3. Cyclonic on June 24th, 2009 10:57 pm

    Actually, HiddenSpartan, I am pretty sure the Embed metatag (used here) is supported in Flash CS3+. It does for me, anyway.

    And, you can get the Flex SDK for free at labs.adobe.com.

  4. Roland on June 25th, 2009 1:37 am

    Any chance of getting an Actionscript 2.0 example :(

  5. wirelesstaco on June 25th, 2009 2:10 am

    The Contest link at the very end of the article is broken.

  6. Mike Chambers on June 25th, 2009 4:34 am

    @HiddenSpartan


    From what I’ve heard, that only works in Flex

    Flash CS4 uses the MXMLC compiler, so you can use the meta data tags / commands.

  7. Christopher Spence on June 25th, 2009 6:07 am

    HiddenSpartan: This works in Actionscript 3 without Flex Builder though it does require installation of the free Flex SDK, and a non Flash-IDE compiler (e.g., FlashDevelop, Command Line w/ ANT). I know that Flash CS3 did not support embed directives, though I understand that CS4 supports at least Font embedding… so maybe this works in Flash CS4?

    I don’t imagine that an AS2 example exists; perhaps you could try using an include statement.

    I used something similar to this for compressing xml into a swf (it’s like a 90% savings on file size when you enter the xml directly as a string in an AS class… it’s a bit less compression using the method described above, because the class compiles with a class or two from the mx package (where flex sdk comes in)

    Anyhow, this is a cool and very under-documented trick.

  8. Idden on June 25th, 2009 12:45 pm

    Nice Work around.
    You gain speed but lose a flexibility. If you want to change the word list, you will have to compile the swf again.

    @Roland It doesn’t work in AS2 but you can try swfmill to do somthing similar: http://swfmill.org/

  9. Radi on June 28th, 2009 3:29 am

    Hey, thanks for the info. this is really what I’m looking for! ^^

  10. Nathan on July 5th, 2009 8:19 pm

    When I tried it out nothing happened

    I’m using Flash CS3

  11. Alpesh Vaghasiya on July 31st, 2009 7:41 am

    Same Here. I also try in Flash CS3 nothing is working.

Leave a Reply




Trackbacks

  1. How to use an embedded text file in Flash : Emanuele Feronato on July 24th, 2009 3:23 pm

    [...] The opportunity to win up to $7000 with “Word Play” Flash Game Contest ends in 20 days, and I already showed you how to embed a text file in Flash. [...]

  2.   How to use an embedded text file in Flash by Blam Yo! on August 5th, 2009 1:45 am

    [...] The opportunity to win up to $7000 with “Word Play” Flash Game Contest ends in 20 days, and I already showed you how to embed a text file in Flash. [...]

flash games company