36 12
发新话题
打印

[分享] 一个XML加载图片的遮罩效果,研究好半天呢!

一个XML加载图片的遮罩效果,研究好半天呢!

不是我的创意,是仿造人家的作品做的。
复制内容到剪贴板
代码:
var list_array:Array = new Array();
var list_xml:XML = new XML();
list_xml.ignoreWhite = true;
list_xml.onLoad = function(success:Boolean) {
if (success) {
  for (var aNode:XMLNode = list_xml.firstChild.childNodes[0]; aNode != null; aNode=aNode.nextSibling) {
   list_array.push(aNode.firstChild.firstChild.nodeValue);
  }
  loadpic_func();
} else {
  trace("加载失败!");
}
};
list_xml.load("pic_list.xml");
///////////////
var pic_mcl:MovieClipLoader = new MovieClipLoader();
this.onLoadInit = function(_mc:MovieClip) {
_mc._width = Stage.width;
_mc._height = Stage.height;
mask_func(_mc);
};
pic_mcl.addListener(this);
var i:Number = 0;
function loadpic_func() {
i++;
i %= list_array.length;
var pic_mc:MovieClip = this.createEmptyMovieClip("pic_mc"+this.getNextHighestDepth(), this.getNextHighestDepth());
pic_mcl.loadClip(list_array[i], pic_mc);
/*
this.pic_mc._x = Stage.width/2;
this.pic_mc._y = Stage.height/2;
this.pic_mc.createEmptyMovieClip("img_mc", 3);
this.pic_mc.img_mc._x = -Stage.width/2;
this.pic_mc.img_mc._y = -Stage.height/2;
*/
}
var mask_num:Number = new Number();
var xmax:Number = Math.ceil(Stage.width/40);
var ymax:Number = Math.ceil(Stage.height/40);
function mask_func(_mc:MovieClip) {
var depth:Number = xmax*ymax;
var mask_mc:MovieClip = this.createEmptyMovieClip("mask_mc"+this.getNextHighestDepth(), this.getNextHighestDepth());
_mc.setMask(mask_mc);
mask_num = Math.floor(Math.random()*6);
for (var x_num:Number = xmax; x_num>=0; x_num--) {
  for (var y_num:Number = ymax; y_num>=0; y_num--) {
   mask_mc.attachMovie("mask_mc"+mask_num, "mask"+depth, depth+100, {_x:x_num*50-150, _y:y_num*50-100, _xscale:250, _yscale:250});
   depth--;
  }
}
texiao_func(mask_mc);
}
////////////////////////////////////////////
function texiao_func(_mc:MovieClip) {
var texiao_array:Array = new Array();
var max_num:Number = new Number();
var temp_num:Number = new Number();
var zhu_num:Number = Math.floor(Math.random()*6);
trace(zhu_num);
if (zhu_num == 0) {
  for (var x_n:Number = 0; x_n<=ymax; x_n++) {
   var xn_array:Array = new Array();
   for (var y_n:Number = 0; y_n<=xmax; y_n++) {
    xn_array.push(x_n+y_n);
   }
   texiao_array.push(xn_array);
  }
  max_num = xmax+ymax+2;
} else if (zhu_num == 1) {
  for (var x_n:Number = 0; x_n<=ymax; x_n++) {
   var xn_array:Array = new Array();
   for (var y_n:Number = 0; y_n<=xmax; y_n++) {
    xn_array.push(xmax+ymax-x_n-y_n+1);
   }
   texiao_array.push(xn_array);
  }
  max_num = xmax+ymax+2;
} else if (zhu_num == 2) {
  for (var x_n:Number = 0; x_n<=ymax; x_n++) {
   var xn_array:Array = new Array();
   for (var y_n:Number = 0; y_n<=xmax; y_n++) {
    xn_array.push(ymax-x_n+y_n);
   }
   texiao_array.push(xn_array);
  }
  max_num = xmax+ymax+2;
} else if (zhu_num == 3) {
  for (var x_n:Number = 0; x_n<=ymax; x_n++) {
   var xn_array:Array = new Array();
   for (var y_n:Number = 0; y_n<=xmax; y_n++) {
    xn_array.push(xmax+x_n-y_n);
   }
   texiao_array.push(xn_array);
  }
  max_num = xmax+ymax+2;
} else if (zhu_num == 4) {
  for (var x_n:Number = 0; x_n<=ymax; x_n++) {
   var xn_array:Array = new Array();
   for (var y_n:Number = 0; y_n<=xmax; y_n++) {
    xn_array.push(x_n);
   }
   texiao_array.push(xn_array);
  }
  max_num = ymax+2;
} else if (zhu_num == 5) {
  for (var x_n:Number = 0; x_n<=ymax; x_n++) {
   var xn_array:Array = new Array();
   for (var y_n:Number = 0; y_n<=xmax; y_n++) {
    xn_array.push(y_n);
   }
   texiao_array.push(xn_array);
  }
  max_num = xmax+2;
}
function fan_func() {
  for (var x_n:Number = 0; x_n<=ymax; x_n++) {
   for (var y_n:Number = 0; y_n<=xmax; y_n++) {
    if (texiao_array[x_n][y_n] == temp_num) {
     var xu:Number = x_n*xmax+y_n;
     _mc["mask"+xu].play();
     //trace(xu);
    }
   }
  }
  temp_num++;
  if (temp_num>max_num) {
   clearInterval(id);
  }
}
fan_func();
clearInterval(id);
id = setInterval(fan_func, 80);
this["mask_mc"+(_mc.getDepth()-4)].removeMovieClip();
this["pic_mc"+(_mc.getDepth()-5)].removeMovieClip();
setTimeout(function () {
  loadpic_func();
}, 3000);
}

附件

mytest.rar (830.16 KB)

2007-6-30 21:51, 下载次数: 2907

TOP

老是搞那么SEXY

TOP

好强哦

TOP

我也觉得有点色色的 搞的同事在我这站了好会儿 不过遮照效果有些特别 好好看看

TOP

哈哈,男人嘛

TOP

代码好长啊,感觉遮照在变化过程中加点虚化效果会比较柔和,现在个人感觉有点生硬
其实我只是带了红色的隐形眼镜……

TOP

效果还真不错,第五种效果左上角有个没mask全.

TOP

美女啊 ,收藏了

TOP

...

TOP

有点色

不好意思看,嘿嘿!!

TOP

好东东.

TOP

不错! 支持一下!
up
AS3,flex等等...技术博客: www.RiaHome.cn
rss阅读地址: http://feed.feedsky.com/youngboy

TOP

提示: 作者被禁止或删除 内容自动屏蔽
无缓冲免费在线电影http://www.025dvd.cn

TOP

严禁不良画面!!!

TOP

回复 #1 终极讨厌 的帖子

效果不错,不知怎样添加图片?

TOP

哈哈  讨厌遇到了中年危机了

TOP

不错

TOP

反对声不小啊

好贴,支持

TOP

哈哈  强哦.``````````

TOP

顶~~~~~~~~`

TOP

回复 #7 wbqlove 的帖子

我也发现了,但我没办法解决,请问你有办法解决吗?

[ 本帖最后由 gdpyzxh 于 2007-11-20 10:40 编辑 ]

TOP

TOP

厉害,回去好好研究

TOP

顶顶顶顶

TOP

强,我很想做一个,也下载了新浪的研究,但无耐水平有限,搞不懂.但我想将它摆到网页中去,好像要带一个文件夹??

TOP

哇哦!!!

TOP

本来没打算下,代码太多,下了也看不懂,后面听说少儿不宜我就下下来看看到底怎么个不宜

TOP

  确实不是很宜

TOP

强哦....DING

TOP

才看到!

TOP

 36 12
发新话题