Here`s a little class to build a swf file at runtime with 2 images. Just an example :

Here you could find the swfassist framework. Unfortunately its not documented very well.
Just check out the svn for some examples.

JPGEncoder click here

I made a swf file with 20 frames, each frame the shown bitmap is switched. The swf could be saved locally on your Pc.

  |  copy |? 
001
002
/**
003
 * Copyright 31.08.2009 Christian Sobolewski
004
 * 
005
 * usage : 
006
 * 
007
 * Parameters:
008
 * 
009
 * Version:
010
 * 
011
 * History:
012
 * 
013
 * SwfWrite
014
 * @author Christian Sobolewski
015
 */
016
package {
017
	import com.adobe.images.JPGEncoder;
018
 
019
	import org.libspark.swfassist.io.ByteArrayOutputStream;
020
	import org.libspark.swfassist.swf.io.SWFWriter;
021
	import org.libspark.swfassist.swf.io.WritingContext;
022
	import org.libspark.swfassist.swf.structures.FillStyle;
023
	import org.libspark.swfassist.swf.structures.FillStyleTypeConstants;
024
	import org.libspark.swfassist.swf.structures.SWF;
025
	import org.libspark.swfassist.swf.structures.ShapeWithStyle;
026
	import org.libspark.swfassist.swf.structures.StraightEdgeRecord;
027
	import org.libspark.swfassist.swf.structures.StyleChangeRecord;
028
	import org.libspark.swfassist.swf.tags.DefineBitsJPEG2;
029
	import org.libspark.swfassist.swf.tags.DefineShape;
030
	import org.libspark.swfassist.swf.tags.PlaceObject2;
031
	import org.libspark.swfassist.swf.tags.RemoveObject2;
032
	import org.libspark.swfassist.swf.tags.SetBackgroundColor;
033
	import org.libspark.swfassist.swf.tags.ShowFrame;
034
 
035
	import flash.display.BitmapData;
036
	import flash.display.DisplayObject;
037
	import flash.display.Sprite;
038
	import flash.geom.Rectangle;
039
	import flash.net.FileReference;
040
	import flash.utils.ByteArray;
041
 
042
	/**
043
	 * @author Christian Sobolewski
044
	 */
045
	public class SwfWrite extends Sprite {
046
 
047
		private var _swf : SWF;
048
 
049
		[Embed(source="test.jpg")] 
050
		public var imgCls : Class;
051
 
052
		[Embed(source="logo.jpg")] 
053
		public var imgCls2 : Class;
054
 
055
		private var _pixels : ByteArray;
056
		private var _pixelsOne : ByteArray;
057
		private var _data : Array;
058
		private var _maxLength : uint;
059
 
060
		public function SwfWrite() {
061
 
062
			_maxLength = 20;
063
 
064
			var imgCls : DisplayObject = new imgCls();
065
			var imgCls2 : DisplayObject = new imgCls2();
066
 
067
			_swf = new SWF();
068
			_swf.header.version = 9;
069
			_swf.header.frameSize.xMax = 1024;
070
			_swf.header.frameSize.yMax = 768;
071
			_swf.header.frameRate = 2;
072
			_swf.header.numFrames = 1;
073
 
074
			var bgColor : SetBackgroundColor = new SetBackgroundColor();
075
			bgColor.backgroundColor.fromUint(0x000066);
076
			_swf.tags.addTag(bgColor);
077
 
078
			var bmd : BitmapData = new BitmapData(640, 480, false);
079
			bmd.draw(imgCls);
080
 
081
			_pixelsOne = new JPGEncoder(50).encode(bmd);
082
 
083
			var bmd2: BitmapData= new BitmapData(640, 480, false);
084
			bmd2.draw(imgCls2);
085
 
086
			_pixels = new JPGEncoder(50).encode(bmd2);
087
			_data = [];
088
			var q : Number;
089
			for (var i : int = 0;i < _maxLength;i++) {
090
				q = i % 2;
091
				if (q == 0) {
092
					_data.push(_pixelsOne);
093
				} else {
094
					_data.push(_pixels);
095
				}
096
			}
097
 
098
			test();
099
 
100
 
101
			var bytes : ByteArray = new ByteArray();
102
			var wc : WritingContext = new WritingContext();
103
			wc.length = 5000;
104
 
105
			var write : SWFWriter = new SWFWriter();
106
			write.writeSWF(new ByteArrayOutputStream(bytes), wc, _swf);
107
 
108
			var fileRef : FileReference = new FileReference();
109
			fileRef.save(bytes, "writen" + Math.random() + 100 + ".swf");
110
		}
111
 
112
		private function test() : void {
113
			for (var i : uint = 0;i < _maxLength;++i) {
114
				//				var file:File = File(files[i]);
115
 
116
				var defineJPEG : DefineBitsJPEG2 = new DefineBitsJPEG2();
117
				defineJPEG.characterId = (i * 2) + 1;
118
 
119
				//				var fileStream:FileStream = new FileStream();
120
				//				fileStream.open(file, FileMode.READ);
121
				//				fileStream.readBytes(defineJPEG.jpegData);
122
				//				fileStream.close();
123
				//				fileStream = null;
124
 
125
				defineJPEG.jpegData = _data[i];
126
 
127
				_swf.tags.addTag(defineJPEG);
128
 
129
				var defineShape : DefineShape = new DefineShape();
130
				defineShape.shapeId = (i * 2 + 1) + 1;
131
				defineShape.shapeBounds.xMax = 500;
132
				defineShape.shapeBounds.yMax = 375;
133
				var fillStyle : FillStyle = new FillStyle();
134
				fillStyle.fillStyleType = FillStyleTypeConstants.CLIPPED_BITMAP_FILL;
135
				fillStyle.bitmapId = (i * 2) + 1;
136
				fillStyle.bitmapMatrix.hasScale = true;
137
				fillStyle.bitmapMatrix.scaleX = 20;
138
				fillStyle.bitmapMatrix.scaleY = 20;
139
				var shape : ShapeWithStyle = defineShape.shapes;
140
				shape.fillStyles.fillStyles.push(fillStyle);
141
				var r1 : StyleChangeRecord = new StyleChangeRecord();
142
				r1.fillStyle0 = 1;
143
				r1.moveDeltaX = 50;
144
				r1.moveDeltaY = 50;
145
				r1.stateFillStyle0 = true;
146
				r1.stateMoveTo = true;
147
				var r2 : StraightEdgeRecord = new StraightEdgeRecord();
148
				r2.verticalLine = true;
149
				r2.deltaY = 375;
150
				var r3 : StraightEdgeRecord = new StraightEdgeRecord();
151
				r3.horizontalLine = true;
152
				r3.deltaX = 500;
153
				var r4 : StraightEdgeRecord = new StraightEdgeRecord();
154
				r4.verticalLine = true;
155
				r4.deltaY = -375;
156
				var r5 : StraightEdgeRecord = new StraightEdgeRecord();
157
				r5.horizontalLine = true;
158
				r5.deltaX = -500;
159
				shape.shapeRecords.push(r1, r2, r3, r4, r5);
160
 
161
				_swf.tags.addTag(defineShape);
162
 
163
				var placeObject : PlaceObject2 = new PlaceObject2();
164
				placeObject.characterId = (i * 2 + 1) + 1;
165
				placeObject.depth = i + 1;
166
				placeObject.hasCharacter = true;
167
 
168
				_swf.tags.addTag(placeObject);
169
				_swf.tags.addTag(new ShowFrame());
170
				_swf.header.numFrames++;
171
 
172
//				for (var fadeIn:uint = 0; fadeIn < 20; ++fadeIn) {
173
//					var fadeObject : PlaceObject2 = new PlaceObject2();
174
//					fadeObject.depth = i + 1;
175
//					fadeObject.isMove = true;
176
//					fadeObject.hasColorTransform = true;
177
//					fadeObject.colorTransform.hasMultiplication = true;
178
//					fadeObject.colorTransform.redMultiplication = 256;
179
//					fadeObject.colorTransform.greenMultiplication = 256;
180
//					fadeObject.colorTransform.blueMultiplication = 256;
181
//					fadeObject.colorTransform.alphaMultiplication = (((1.0 / 20) * 20) * 256);
182
//					_swf.tags.addTag(fadeObject);
183
//					_swf.tags.addTag(new ShowFrame());
184
//					_swf.header.numFrames++;
185
//				}
186
//
187
//				if (i > 0) {
188
//					var removeObject : RemoveObject2 = new RemoveObject2();
189
//					removeObject.depth = (i - 1) + 1;
190
//					_swf.tags.addTag(removeObject);
191
//				}
192
 
193
//				for (var n:uint = 0; n < len; ++n) {
194
//					_swf.tags.addTag(new ShowFrame());
195
//					_swf.header.numFrames++;
196
//				}
197
			}
198
		}
199
	}
200
}
201

http://privatefunction.net/wp-content/plugins/sociofluid/images/digg_32.png http://privatefunction.net/wp-content/plugins/sociofluid/images/delicious_32.png http://privatefunction.net/wp-content/plugins/sociofluid/images/technorati_32.png http://privatefunction.net/wp-content/plugins/sociofluid/images/google_32.png http://privatefunction.net/wp-content/plugins/sociofluid/images/facebook_32.png http://privatefunction.net/wp-content/plugins/sociofluid/images/mixx_32.png http://privatefunction.net/wp-content/plugins/sociofluid/images/twitter_32.png