思路:as2中载入图片可以用 MovieClipLoader类,as3中载入图片可以用Loader类;边框的实现可以用Drawing API来实现如lineStyle,lineTo等等...
先看As2的做法:(老外的代码)
//创建一个空剪辑,以便载入图片1111.jpg,1111.jpg是跟源文件同一目录下的。
this.createEmptyMovieClip("image_mc", 1);
//创建一个监听器监听MovieClipLoader类的onLoadInit事件
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
//空剪辑位置舞台居中
target_mc._x = Stage.width/2-target_mc._width/2;
target_mc._y = Stage.height/2-target_mc._height/2;
var w:Number = target_mc._width;
var h:Number = target_mc._height;
//画边框
target_mc.lineStyle(10, 0x00FFFF, 100, true, "normal", "square", "miter", 10);
target_mc.moveTo(0, 0);
target_mc.lineTo(w, 0);
target_mc.lineTo(w, h);
target_mc.lineTo(0, h);
target_mc.lineTo(0, 0);
//旋转角度
//target_mc._rotation = -2;
};
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("1111.jpg", image_mc);
As3做法:(参考了闪吧论坛:
http://space.flash8.net/bbs/thread-349125-1-1.html
)在As3中,如果把边框看成是一个矩形,那么还可利用drawRect()来画边框:
package {
import flash.display.Sprite;
import flash.display.Loader;
import flash.net.URLRequest;
import flash.display.LoaderInfo;
import flash.events.Event;
/**
* ...
* @author $(DefaultUser)
*/
public class LoadIMG extends Sprite
{
private var load:Loader;
private var sprite:Sprite;
public function LoadIMG()
{
init();
}
private function init():void
{
load = new Loader();
//创建一个容器以便保存加载进来的图片
sprite = new Sprite();
addChild(sprite);
load.load(new URLRequest("1111.jpg"));
load.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
}
private function onLoadComplete(evt:Event):void
{
//通过load的content属性来访问被加载的图片,然后将图片加入到容器的显示列表
sprite.addChild(load.content);
var w:Number = sprite.width;
var h:Number = sprite.height;
///*
//直接画边框
sprite.graphics.lineStyle(10, 0xff0000, 1,true, "normal", "square", "miter", 10);
sprite.graphics.moveTo(0, 0);
sprite.graphics.lineTo(w, 0);
sprite.graphics.lineTo(w, h);
sprite.graphics.lineTo(0, h);
sprite.graphics.lineTo(0, 0);
//*/
/*
//画矩形
sprite.graphics.lineStyle(10, 0xff0000, 1);
sprite.graphics.drawRect(0, 0, w, h);
*/
//设置容器位置舞台居中
sprite.x = stage.stageWidth / 2-sprite.width/2;
sprite.y = stage.stageHeight / 2-sprite.height/2;
}
}
}总 结:这里涉及的问题是当一个对象被载入后该如何去控制它?在As2中不考虑对象的显示问题,只需把对象载入一个MC,然后控制这个MC就可以了;As3中 先得考虑显示的问题,用Loader类载入对象(设Loader类的实例是loader),直接可以将Loader类加入当前类的显示列表显示,或者将 Loader类加入其他容器的显示列表,比如有个容器:sprite:Sprite,你可以这样:sprite.addChild(loader),也可 以这样sprite.addChild(loader.content);这两者都可以显示出对象,而后者才是对显示对象的引用。
本文转自:http://www.5uflash.com/flashjiaocheng/Flashaschengxu/3453.html