如何实动态加载图片逐个呈现
时间:2007-07-03
来源:互联网
具体方法是利用创建一系列的mc,按照一定要求来排列,在加载图片时侯,图片一瞬间就加载完毕,很不爽,想让图片一个一个的加载,
请高手提示下,给出思路
[ 本帖最后由 winhero_charles 于 2007-7-3 19:04 编辑 ]
作者: winhero_charles 发布时间: 2007-07-03
寫一個function函數,如:
var A:Array=["1.jpg","2.jpg","3.jpg",.......];
var n:Number=0
function LoadImg(ID){
這裏寫裝載圖片的程式,如裝完成執行一次LoadImg(n)
n++
}
LoadImg(0)
作者: 文仔 发布时间: 2007-07-03
再按你的要求 一个个的显示 不 就行了 换个方法思考,问题就可以解决。
作者: hack86 发布时间: 2007-07-03
作者: 文仔 发布时间: 2007-07-03
作者: winhero_charles 发布时间: 2007-07-03
作者: winhero_charles 发布时间: 2007-07-03
附件

2007-7-4 20:35, 下载次数: 172
作者: winhero_charles 发布时间: 2007-07-04
附件

2007-7-4 20:42
作者: winhero_charles 发布时间: 2007-07-04
作者: winhero_charles 发布时间: 2007-07-05
将两个for中的i,j位置对调,下代码为改后的
for(j=0;j<3;j++){
for(i=0;i<3;i++){
var mc=this.createEmptyMovieClip("mc"+i+j,this.getNextHighestDepth())
var menu1=mc.attachMovie("menu","menu1",num);
mc._x=150+(menu1._width+20)*i;
mc._y=50+(menu1._height+20)*j;
mc._alpha=50;
menu1.txt.text="图片"+num;
loading(n);
n++;
//trace(n);
num++;
//trace(num);
//trace(menu1._parent);
}
}
[ 本帖最后由 winhero_charles 于 2007-7-5 15:48 编辑 ]
作者: winhero_charles 发布时间: 2007-07-05
作者: Language911 发布时间: 2007-07-05
做了一个效果,但是逐一呈现的效果还未出现,请朋友看看并提示
作者: winhero_charles 发布时间: 2007-07-05
附件

2007-7-5 17:51, 下载次数: 184
作者: Idoit 发布时间: 2007-07-05
但是,
在这个例中,为何要先
loadmc(0)
??

[ 本帖最后由 winhero_charles 于 2007-7-5 19:55 编辑 ]
作者: winhero_charles 发布时间: 2007-07-05
var Arr_img = ["01","02","03","04","05","06","07","08","09"];
var len = Arr_img.length;
var main = this.createEmptyMovieClip("main", 1);
main._x = main._y = 50;
//---???????
loadmc(0);
function loadmc(n) {
var tmpmc = main.createEmptyMovieClip("mc"+n, n);
var mclListener = new Object();
mclListener.onLoadInit = function(target) {
tmpmc._x = n%3*90;
tmpmc._y = Math.floor(n/3)*90;
if (n<len-1) {
loadmc(n+1);//或loadmc(++n)
//trace(n);
}
};
var image = new MovieClipLoader();
image.addListener(mclListener);
image.loadClip("images/"+Arr_img[n]+".jpg",tmpmc);
//trace(Arr_img[n])
}
红线部份,条件为真,重复执行loadmc(n)
作者: winhero_charles 发布时间: 2007-07-05
引用:
原帖由 文仔 于 2007-7-3 18:51 发表可以參考一下這個http://www.tonisalon.cn/image.swf
作者: kelvin1984 发布时间: 2007-07-05
我现在作如下改变,将图片的资料写入xml文件,让FLASH解析XML,AS如下:
代码:
var picArray=new Array();/////////////////////////////////////////////////
var myXML=new XML();
myXML.ignoreWhite=true;
myXML.load("xml/img.xml");
myXML.onLoad=function(suc){
if(suc){
fenxi();
//trace("ok");
loadPic(0);
}
}
loadPic(0);
/////////////////////////////////////////////////
fenxi=function(){
var myList=myXML.firstChild.childNodes;
var len=myList.length;
for(i=0;i<len;i++){
picArray[i]=myList[i].attributes.name
//trace(picArray[i]);
}
}
/////////////////////////////////////////////////
function loadPic(n){
var mc=this.createEmptyMovieClip("mc"+n,n)
var obj:Object=new Object();
obj.onLoadInit=function(){
mc._x=150+100*(n%3);//------>要将i%3括起来,运算顺序问题;
mc._y=50+100*Math.floor(n/3);
if(n<len-1){
n++;
loadPic(n)
trace(n);
}
}
var myCl:MovieClipLoader=new MovieClipLoader();
myCl.addListener(obj)
myCl.loadClip(picArray[n],"mc"+n);
}
另img.xml文件内容如下:
代码:
<?xml version="1.0" encoding="UTF-8" ?><imgs>
<pic name="images/01.jpg" />
<pic name="images/02.jpg" />
<pic name="images/03.jpg" />
<pic name="images/04.jpg" />
<pic name="images/05.jpg" />
<pic name="images/06.jpg" />
<pic name="images/07.jpg" />
<pic name="images/08.jpg" />
<pic name="images/09.jpg" />
</imgs>
附件

2007-7-7 10:32, 下载次数: 93
作者: winhero_charles 发布时间: 2007-07-07

代码:
//=========透明函数========function alpha_func(_mc:MovieClip) {
_mc._alpha = 5;
_mc.onEnterFrame = function() {
this._alpha += 5;
this._alpha>95 ? delete this.onEnterFrame : 闪吧;
};
}
//============MCL类===========
var _mcl:MovieClipLoader = new MovieClipLoader();
var n:Number = new Number();
this.onLoadInit = function(_mc:MovieClip) {
_mc._txt.removeTextField();
_mc._width = 80;
_mc._height = 80;
alpha_func(_mc);
if (n<picArray.length) {
n++;
load_func();
} else {
trace("加载完成!");
}
};
//如果没有下面的代码,就会一个加载出错,导致后面的都不能加载,用这个可以出错时继续向下加载,源文件中我故意少了一个图片,让它出错
this.onLoadError = function(_mc:MovieClip) {
_mc.createTextField("_txt", 200, 20, 10, 60, 30);
_mc._txt.textColor = 0xff0000;
_mc._txt.text = "加载失败!";
if (n<picArray.length) {
n++;
load_func();
}
};
//=========加载进度显示==============
this.onLoadProgress = function(_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
_mc.createTextField("_txt", 200, 20, 10, 60, 30);
_mc._txt.textColor = 0xff0000;
_mc._txt.text = Math.floor((bytesLoaded/bytesTotal*10000)/100)+"%";
};
_mcl.addListener(this);
//=================load函数========
function load_func() {
this.createEmptyMovieClip("pic_mc"+n, n+100);
//如果要改成竖向加载,只需把下面的_x _y换一下就行了
this["pic_mc"+n]._y = 30+Math.floor(n/3)*100;
this["pic_mc"+n]._x = 100+n%3*100;
_mcl.loadClip(picArray[n], this["pic_mc"+n]);
}
//===========XML文件加载=========
var picArray = new Array();
var myXML = new XML();
myXML.ignoreWhite = true;
myXML.onLoad = function(suc) {
if (suc) {
for (var d:Number = 0; d<this.firstChild.childNodes.length; d++) {
picArray.push(this.firstChild.childNodes[d].attributes.name);
}
load_func();
} else {
trace("XML文件加载失败!");
}
//trace(picArray);
};
myXML.load("xml/img.xml");
附件

2007-7-7 11:35, 下载次数: 218
作者: nang 发布时间: 2007-07-07
作者: winhero_charles 发布时间: 2007-07-07
原例中有两个变量len及n,由于是定义在一个函数内,却被另一个函数引用(定义在函数中的变量属局部变量,局部变量在此函数执行之后自动失效),所以在另一个函数内是空值;
解决办法:
将此变量定义为全局变量,同时检查自定义函数是否有重新定义此两个变量的现象,有的话去掉前面的关键字"var"
很基础吧,但缩合运用时,却被ingnore,看来还要多练!
作者: winhero_charles 发布时间: 2007-07-07
作者: szkim999 发布时间: 2008-05-21
作者: zmtcn 发布时间: 2010-04-23
作者: gzcgc 发布时间: 2010-04-24
var ImgArr:Array;
var LoadID:Number;
/*初始化*/
function init(){
ImgArr = ["01.jpg","02.jpg","03.jpg"."..."]
LoadID = 0;
Loader = new MovieClipLoader();
Loader.addListener(this);
}
/*为每个被加载的对象创建容器*/
function createCtn(n){
var oname = "ctn"+n;
var depth = n+30;
var o = this.createEmptyMovieClip(oname,depth);
return o;
}
/*加载当前ID的对象*/
function LoadItem(){
var p = ImgArr[LoadID];
var ctn = createCtn(LoadID);
Loader.loadClip(p,ctn);
}
/加载下一个ID的对象/
function loadNext(){
if(LoadID < ImgArr.length){
LoadID++;
LoadItem();
}
}
/*加载过程*/
function onLoadProgress(t,bytesLoaded,bytesTotal){
var p = Math.floor(bytesLoaded/bytesTotal*100);
}
/*加载完毕*/
function onLoadInit(t){
loadNext();
}
init();
作者: JansingLiu 发布时间: 2010-04-24
如果让这一些图片形成环型显示,初始状态固定不动,点其中一个图片,就旋转到正面位置显示
这样的效果怎么写AS呢
作者: windwolf 发布时间: 2010-04-25
作者: badboy83226 发布时间: 2011-04-17
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28