如何给载入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

你可能感兴趣的:(thread,html,.net,Flash,bbs)