Загрузка и управление удаленной флешки.

Изготовление флешки, которая бедет загружаться.

И нарисовался кот или собака... Так хорошо получилось, что даже непонятно, зато на флеше.

Десятикадровый кот готов уже давным-давно, и долго искался и нашелся все-таки, шизанутая тварь. У него есть еще хвост, который прикрепляется к попе, естественно. Хвост двигается, это отдельный мови клип, однако если к нему приделать rotation программно, он перестает чето делать смещения x и y во время тазодвижения кота, поэтому хвосто-движения (х, y) перед вращением заносятся в массив и от-туда уже применяются после ротации к хвосту. Во flash cs3 нарисовал, сделал swc и документ класс с public методами во flash develop. Десятикадровая анимация достигнув конца проигрывается в обратную сторону, для этого есть методы play и stop, хвост управляется отдельно fl.transitions.Tween для этого есть методы stopTail и playTail.
package  
{
	import fl.transitions.*;
	import flash.display.*;
	import flash.events.*;
	import flash.geom.Point;
	import flash.text.*;
	
	import fl.transitions.easing.*;
	

	/**
	 * ...
	 * @author Alex Lexcuk http://www.murmadillo.tut.su
	 */
	public class CatDoc extends Sprite
	{
		private var cat:CatSwf;
		private var revTr:Boolean;
		private var framCount:int;
		private var tailTween:Tween;
		
		private var txt:TextField;
		private var arrTailXY:Array = [];
		
		public function CatDoc() 
		{
			var i:int;
			addChild(cat = new CatSwf());
			cat.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
			trace(cat.totalFrames);
			for (i = 0; i < cat.totalFrames; i++) {
				cat.nextFrame();
				arrTailXY.push(new Point(cat.tail.x, cat.tail.y));
			}
			
			tailTween = new Tween({i:0}, "i",  Elastic.easeIn, 120, 0, 2, true);
			tailTween.stop();
			tailTween.looping = true;
			tailTween.addEventListener(TweenEvent.MOTION_CHANGE, tailTweenMotionChange);
			
		}

		public function playTail():void {
			tailTween.start();
		}

		public function stopTail():void {
			tailTween.stop();
		}

		private function tailTweenMotionChange(evt:TweenEvent):void {
			cat.tail.rotation = tailTween.obj.i;
		}

		private function enterFrameHandler(evt:Event):void {
			if (revTr == true) framCount++; else  framCount--;
			if (framCount > cat.totalFrames) {
				revTr = false;
				framCount-=2;
			}
			if (framCount <= 0) {
				revTr = true;
				framCount+=2;
			}
			cat.gotoAndStop(framCount);
			cat.tail.x = arrTailXY[framCount-1].x;
			cat.tail.y = arrTailXY[framCount-1].y;
		}

		public function stop():void {
			if (cat.hasEventListener(Event.ENTER_FRAME)) cat.removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
		}

		public function play():void {
			if (!cat.hasEventListener(Event.ENTER_FRAME)) cat.addEventListener(Event.ENTER_FRAME, enterFrameHandler);
		}


	}

}


Вот такой зверушка.

Изготовление флешки загрузщика

Флешка загрузщик будет работать с того-же домена, что и загружаемая флешка, поэтому ничего с crossdomain мутиться не будет. TextField cо ссылками будет использоваться как навигатор методов загружаемой флешки
package  
{
	import flash.display.*;
	import flash.events.*;
	
	import flash.text.*;
	import flash.net.*;
	/**
	 * ...
	 * @author Alex Lexcuk http://www.murmadillo.tut.su
	 */
	public class DocLoaderSwf extends Sprite
	{

		private var loader:Loader;
		private var urlReq:URLRequest;
		private var cat:Object;
		private var txt:TextField;


		public function DocLoaderSwf() 
		{
			loader = new Loader();
			urlReq = new URLRequest("http://www.murmadillo.tut.su/as3/load-swf-metod/catSwf.swf");
			loader.load(urlReq);
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete);
			addChild(loader);
			txt = new TextField();
			txt.y = 80;
			txt.htmlText = "<a href=\'event:Стой собачка\'><u>Стой котик</a>\n"+
			"<a href=\'event:Беги собачка\'>Беги собачка</a>\n" +
			"<a href=\'event:Виляй\'>Виляй</a>\n" +
			"<a href=\'event:Не виляй\'>Не виляй</a>\n";
			txt.autoSize = TextFieldAutoSize.LEFT;
			addChild(txt);//добавить на рабочее поле
		}

		private function loadComplete(evt:Event):void {
			trace('loaderComplete');
			cat = loader.content;
			txt.addEventListener(TextEvent.LINK, txtLinkFunc);
		}

		private function txtLinkFunc(evt:TextEvent):void {
			if (evt.text == 'Стой собачка') {
				cat.stop();
			}
			if (evt.text == 'Беги собачка') {
				cat.play();
			}
			if (evt.text == 'Виляй') {
				cat.playTail();
			}
			if (evt.text == 'Не виляй') {
				cat.stopTail();
			}
		}


	}

}


Нажимая на ссылки в текстовом поле можно управлять загруженной флешкой.

Архив с CS3 котом и FD проектом с кодами загрузки флешки и использования ее методов или функций в бескорыстных целях.