MyGameMyLove.com

仿QQ秀更换衣服
用加载的图片填充mc
2007-11-5 BitmapData 填充
效果
/*----------
飞飞 07-10-18 www.mygamemylove.com 我的经验与你分享
Email mygamemylove@qq.com
填充某个mc
------------*/
import flash.display.BitmapData;
import flash.geom.*;
//画矩形
function createRectangle(x:Number, y:Number, w:Number, h:Number, mc:MovieClip) {
mc.moveTo(x, y);
mc.lineTo(x+w, y);
mc.lineTo(x+w, y+h);
mc.lineTo(x, y+h);
mc.lineTo(x, y);
mc.endFill();
}
//mcTarget:MovieClip 要填充的影片 mcDraw:MovieClip 填充的素材 strMask 遮蔽,要填充的影片里的影片名字
function FillBmpMc(mcTarget:MovieClip, mcDraw:MovieClip, strMask:String) {
var rect_mc:MovieClip = mcTarget.createEmptyMovieClip("rect_mc", mcTarget.getNextHighestDepth());
rect_mc.bmp = new BitmapData(20, 20, false);
rect_mc.bmp.draw(mcDraw);
rect_mc.beginBitmapFill(rect_mc.bmp);
//因为只能填充一下用程序画的图形。
createRectangle(0, 0, mcTarget._width, mcTarget._height, rect_mc);
//如果填充一个不规则的图形,就要在要填充的影片里放一个作遮蔽的影片,不用的话,传一个没有申明的变量就可以了。
if (strMask != undefined) {
rect_mc.setMask(mcTarget[strMask]);
}
}
//提示框
function talkYou(strA:String){
txtTalkYou.text=strA
}
//
var mcImg:MovieClip = _root.createEmptyMovieClip("mcImg", _root.getNextHighestDepth());
var mcImg2:MovieClip;
//加载图片 MovieClipLoader 侦听对象
var objLoad:Object = new Object();
objLoad.onLoadInit = function(target_mc:MovieClip) {
//talkYou("加载完成,第一帧");
talkYou("");
//没有遮蔽
FillBmpMc(canvas, target_mc, strMask);
//有遮蔽
FillBmpMc(mcMask, target_mc, "mcMask");
//利用完了就搞死它:P
target_mc.removeMovieClip();
};
objLoad.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number) {
talkYou("完全下载");
};
objLoad.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) {
talkYou("未能加载");
};
objLoad.onLoadProgress = function(target_mc:MovieClip, loadedBytes:Number, totalBytes:Number) {
talkYou("加载过程中.."+Math.floor((loadedBytes/totalBytes)*100)+"%");
};
objLoad.onLoadStart = function(target_mc:MovieClip) {
talkYou("开始下载");
};
var myLoader:MovieClipLoader = new MovieClipLoader();
myLoader.addListener(objLoad);
//加载图片路
myLoader.loadClip("test.jpg", mcImg);
飞飞 07-10-18 www.mygamemylove.com 我的经验与你分享
Email mygamemylove@qq.com
填充某个mc
------------*/
import flash.display.BitmapData;
import flash.geom.*;
//画矩形
function createRectangle(x:Number, y:Number, w:Number, h:Number, mc:MovieClip) {
mc.moveTo(x, y);
mc.lineTo(x+w, y);
mc.lineTo(x+w, y+h);
mc.lineTo(x, y+h);
mc.lineTo(x, y);
mc.endFill();
}
//mcTarget:MovieClip 要填充的影片 mcDraw:MovieClip 填充的素材 strMask 遮蔽,要填充的影片里的影片名字
function FillBmpMc(mcTarget:MovieClip, mcDraw:MovieClip, strMask:String) {
var rect_mc:MovieClip = mcTarget.createEmptyMovieClip("rect_mc", mcTarget.getNextHighestDepth());
rect_mc.bmp = new BitmapData(20, 20, false);
rect_mc.bmp.draw(mcDraw);
rect_mc.beginBitmapFill(rect_mc.bmp);
//因为只能填充一下用程序画的图形。
createRectangle(0, 0, mcTarget._width, mcTarget._height, rect_mc);
//如果填充一个不规则的图形,就要在要填充的影片里放一个作遮蔽的影片,不用的话,传一个没有申明的变量就可以了。
if (strMask != undefined) {
rect_mc.setMask(mcTarget[strMask]);
}
}
//提示框
function talkYou(strA:String){
txtTalkYou.text=strA
}
//
var mcImg:MovieClip = _root.createEmptyMovieClip("mcImg", _root.getNextHighestDepth());
var mcImg2:MovieClip;
//加载图片 MovieClipLoader 侦听对象
var objLoad:Object = new Object();
objLoad.onLoadInit = function(target_mc:MovieClip) {
//talkYou("加载完成,第一帧");
talkYou("");
//没有遮蔽
FillBmpMc(canvas, target_mc, strMask);
//有遮蔽
FillBmpMc(mcMask, target_mc, "mcMask");
//利用完了就搞死它:P
target_mc.removeMovieClip();
};
objLoad.onLoadComplete = function(target_mc:MovieClip, httpStatus:Number) {
talkYou("完全下载");
};
objLoad.onLoadError = function(target_mc:MovieClip, errorCode:String, httpStatus:Number) {
talkYou("未能加载");
};
objLoad.onLoadProgress = function(target_mc:MovieClip, loadedBytes:Number, totalBytes:Number) {
talkYou("加载过程中.."+Math.floor((loadedBytes/totalBytes)*100)+"%");
};
objLoad.onLoadStart = function(target_mc:MovieClip) {
talkYou("开始下载");
};
var myLoader:MovieClipLoader = new MovieClipLoader();
myLoader.addListener(objLoad);
//加载图片路
myLoader.loadClip("test.jpg", mcImg);
浏览量:
返回列表相关评论
你将是第一个评论这篇文章的人呀!赶快来评论!
相关主题
2007-11-5 BitmapData 填充
效果下载源文件[flash]550329demo/loadImgFillMc/main.s...查看..
有话说? 好的,那就到我的留言本里给我留言吧!我们共同进步.
友情连接 :我要申请
