[此文来源于互联网,牛C网只负责收集整理]
制作思路:
(1):构建好XML文件,进行载入判断,取得xml节点
(2):在一个大的影片剪辑内,进行复制要加载图片的影片剪辑,按X轴方向水平排列
(3):使用[被遮照的影片剪辑.setMask(遮照的影片剪辑)] 创建遮照效果
(4):滚动区域的判断
演示效果。不提供在线演示了!

点击这里下载源文件(注意:下载包里包括SWF,FLA,图片和as文件,要把as文件和SWF放在同一个目录下才能观看到效果)
stop();
System.useCodepage = true;
var link_xml:XML = new XML();
link_xml.ignoreWhite = true;
link_xml.onLoad = function(success) {
if (success) {
//trace(this);
nextFrame();
} else {
trace("Error loading XML");
}
};
link_xml.load("content_xml.as");
System.useCodepage = true;
var link_xml:XML = new XML();
link_xml.ignoreWhite = true;
link_xml.onLoad = function(success) {
if (success) {
//trace(this);
nextFrame();
} else {
trace("Error loading XML");
}
};
link_xml.load("content_xml.as");
/**
* Description 版权所有2007@lbynet http://www.www.52hai.com/User0/140
* @author _lby
* @version 0.1
* @discription:图片展览滚动效果;
*/
stop();
var _this = _root.link_xml.firstChild;
var len:Number = _this.childNodes.length;
//trace(len);
var img_path_arr:Array = [];
var link_arr:Array = [];
Loader_fun = function () {
for (var i:Number = 0; i<len; i ) {
img_path_arr[i] = _this.childNodes[i].childNodes[0].childNodes[0].nodeValue;
link_arr[i] = _this.childNodes[i].childNodes[1].childNodes[0].nodeValue;
//进行copy影片剪辑排列
content_mc.image_mc.duplicateMovieClip("image_mc" i, 100 i);
content_mc.image_mc._visible = false;
content_mc["image_mc" i]._x = content_mc.image_mc._width*i;
content_mc["image_mc" i]._y = 0;
//加载图片;
var mc:MovieClip = content_mc["image_mc" i];
mc.i = i;
mc._alpha = 60;
mc.onRollOver = function() {
this._alpha = 100;
trace(this.i);
};
mc.onRollOut = function() {
this._alpha = 60;
};
mc.onRelease = function() {
getURL(link_arr[this.i]);
};
var loadListener:Object = new Object();
//参数mc为当前被加载进来的,这里为content_mc["image_mc" i].load_mc
loadListener.onLoadComplete = function(mc:MovieClip) {
mc._parent.preloader._visible = false;
};
loadListener.onLoadError = function(mc:MovieClip) {
mc._parent.preloader._visible = true;
trace("加载图片失败");
};
if (img_path_arr != null && img_path_arr != "" && img_path_arr != undefined) {
var imgLoader:MovieClipLoader = new MovieClipLoader();
imgLoader.addListener(loadListener);
imgLoader.loadClip(img_path_arr[i], content_mc["image_mc" i].load_mc);
}
}
};
Loader_fun();
content_mc.setMask(mask_mc);
/*
//自定义滚动类
import DragRegion;
new DragRegion(content_mc,mask_mc);
*/
/* 滚动判断 */
content_mc.onEnterFrame = function() {
this._x = -((this._width-mask_mc._width)/mask_mc._width)*mask_mc._xmouse;
//trace(this._x);
if (this._x<-(100*len-500)) {
//超出的为100*len-500
this._x = -(100*len-500);
} else if (this._x>-50) {
this._x = 0;
}
};
* Description 版权所有2007@lbynet http://www.www.52hai.com/User0/140
* @author _lby
* @version 0.1
* @discription:图片展览滚动效果;
*/
stop();
var _this = _root.link_xml.firstChild;
var len:Number = _this.childNodes.length;
//trace(len);
var img_path_arr:Array = [];
var link_arr:Array = [];
Loader_fun = function () {
for (var i:Number = 0; i<len; i ) {
img_path_arr[i] = _this.childNodes[i].childNodes[0].childNodes[0].nodeValue;
link_arr[i] = _this.childNodes[i].childNodes[1].childNodes[0].nodeValue;
//进行copy影片剪辑排列
content_mc.image_mc.duplicateMovieClip("image_mc" i, 100 i);
content_mc.image_mc._visible = false;
content_mc["image_mc" i]._x = content_mc.image_mc._width*i;
content_mc["image_mc" i]._y = 0;
//加载图片;
var mc:MovieClip = content_mc["image_mc" i];
mc.i = i;
mc._alpha = 60;
mc.onRollOver = function() {
this._alpha = 100;
trace(this.i);
};
mc.onRollOut = function() {
this._alpha = 60;
};
mc.onRelease = function() {
getURL(link_arr[this.i]);
};
var loadListener:Object = new Object();
//参数mc为当前被加载进来的,这里为content_mc["image_mc" i].load_mc
loadListener.onLoadComplete = function(mc:MovieClip) {
mc._parent.preloader._visible = false;
};
loadListener.onLoadError = function(mc:MovieClip) {
mc._parent.preloader._visible = true;
trace("加载图片失败");
};
if (img_path_arr != null && img_path_arr != "" && img_path_arr != undefined) {
var imgLoader:MovieClipLoader = new MovieClipLoader();
imgLoader.addListener(loadListener);
imgLoader.loadClip(img_path_arr[i], content_mc["image_mc" i].load_mc);
}
}
};
Loader_fun();
content_mc.setMask(mask_mc);
/*
//自定义滚动类
import DragRegion;
new DragRegion(content_mc,mask_mc);
*/
/* 滚动判断 */
content_mc.onEnterFrame = function() {
this._x = -((this._width-mask_mc._width)/mask_mc._width)*mask_mc._xmouse;
//trace(this._x);
if (this._x<-(100*len-500)) {
//超出的为100*len-500
this._x = -(100*len-500);
} else if (this._x>-50) {
this._x = 0;
}
};
作者:gdgzboy@牛C网
地址:http://www.niuc.net/post/1915/
版权所有。转载时必须以链接形式注明作者和原始出处及本声明!
牛C网推荐您再看看以下日志:
Flash AS实例教程-用纯AS制作火焰特效
Flash游戏中导弹追踪的算法
基于FMS的在线录制例子
用js flash实现网页中复制数据功能
详细讲述Access与Flash完美结合的应用
FLASH CS3调整组件大小
FLASH CS3 BUTTON组件应用开发(一)
Flash关于游戏制作研究之在场景中移动(一)
Flash教程-四步制作的登录闪吧窗口
Flash教程-轻松实现多个MC自动连播
Flash AS实例教程-用纯AS制作火焰特效
Flash游戏中导弹追踪的算法
基于FMS的在线录制例子
用js flash实现网页中复制数据功能
详细讲述Access与Flash完美结合的应用
FLASH CS3调整组件大小
FLASH CS3 BUTTON组件应用开发(一)
Flash关于游戏制作研究之在场景中移动(一)
Flash教程-四步制作的登录闪吧窗口
Flash教程-轻松实现多个MC自动连播
Flash AS3中使用的正则表达式
Flash教程-纯AS代码制作的燃烧的火焰效果





