读书人

怎么给载入flash中的图片加一个边框

发布时间: 2012-11-23 22:54:33 作者: rapoo

如何给载入flash中的图片加一个边框

思路: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

读书人网 >Flash

热点推荐