Вам необходимо использовать функцию assignSymbol
в коде.
#!/usr/bin/ruby
require 'ming/ming'
include Ming
use_SWF_version(9)
set_scale(20.00000000)
@m = SWFMovie.new
@m.set_dimension(640, 480)
@bm = SWFBitmap.new("./common/MatrixFilter.jpg")
@m.add(@bm)
@text = SWFText.new
@font = SWFFont.new("./common/test.ttf")
@text.set_font(@font)
@text.set_color(0, 0, 0, 0xff)
@text.set_height(20)
@text.move_to(100, 100)
@text.add_string( "The quick brown fox jumps over the lazy dog. 1234567890")
@i1 = @m.add(@text)
@i1.set_depth(1)
@m.next_frame
@m.assign_symbol(@text, "mytext")
@m.assign_symbol(@bm,"mybitmap")
@m.save("assignSymbol.swf")
Затем используйте что-то подобное во Flex: (проект FlashDevelop)
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.events.Event;
/**
* ...
* @author DefaultUser (Tools -> Custom Arguments...)
*/
public class Main extends Sprite
{
[Embed(source="my_clip.swf", symbol="circle")]
private static var Circle:Class;
[Embed(source="App.swf", symbol="star")]
private static var Star:Class;
[Embed(source="App.swf", symbol="square")]
private static var Square:Class;
[Embed(source = 'assignSymbol.swf', symbol = 'mytext')]
private static var Mytext:Class;
[Embed(source='assignSymbol.swf', symbol='mybitmap')]
private static var Mybitmap:Class;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
var circle:Sprite = new Circle();
addChild(circle);
circle.x = 100;
circle.y = 100;
var star:Sprite = new Star();
addChild(star);
star.x = 200;
star.y = 100;
var square:Sprite = new Square();
addChild(square);
square.x = 300;
square.y = 100;
var mybitmap:Bitmap = new Mybitmap();
addChild(mybitmap);
mybitmap.x = 300;
mybitmap.y = 300;
var mytext:Sprite = new Mytext();
addChild(mytext);
mytext.x = 0;
mytext.y = 200;
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
}
}
}