您的位置:首页 > 其它

如何让Flash加载调用外部图片和元件

2010-10-05 08:04 281 查看
Flash加载外部图片

以前用flash AS加载外部图片,我用的方法是把一个的桢上放一个图片,每个桢都要写相同的代码,下面是看了一些文章介绍的方法,经过学习。深有体会,动态的修改放置的图片,并且每次加载图片时,还会有特效。

首现,把图片放到一个名为img的文件夹中,把图片名依次改为1~12。(总共放12个图片)再新建一个名为“变量”的记事本文件或者XML文档,以记事本为例即:变量.txt。舞台上还有实例名为backBtn和forwardBtn的按扭最后打开flash把下面代码写入。

随机显示8副图像之一,测试一次通过,程序中没有限制数字最大和最小,基本功能已经实现了,完全可用。

function init() {//建主函数

loadVar();//调用loadVar函数

this.createEmptyMovieClip("emptyMc", 1);//新建名为emptyMc的空影片剪辑,把加载的图片都放到这个空影片剪辑中

i = random(8)+1;//让I为一个随机值,作用是开始时随机加载一个图片,动态性更强

loadJpg(emptyMc, i);//调用加载图片函数

}

function loadVar() {// 新建loadVar函数, 供使用

loadVariablesNum ("变量.txt", 0);//把计事本中的值加载到flash中

this.onEnterFrame = function() {//让这个函数以帧频触发

if (num) {

delete this.onEnterFrame;//删除以帧频触发

}

};

}

function loadJpg(mc, i) {//新建加载图片的函数,mc参数最后代表empty影片剪辑

mc.loadMovie("img/"+i+".jpg");//empty影片剪辑加载图片

this.onEnterFrame = function() {//让此函数帧以帧频进行触发

if (mc._height>0) {//当有图片在empty影片剪辑中时,就下面这样

delete this.onEnterFrame;//删除以帧频触发

mc.imgMove();//调用imgMove函数 ,可以酌情考虑或修改

setBtn(backBtn, 1);//调用setBtn函数,并设传入参数,后退按扭到1时,改变透明度

setBtn(forwardBtn, num);///调用setBtn函数,并设传入参数,后退按扭到num变量时,可以改变透明度

}

};

}

function setBtn(obj, n) {//建立setBtn函数,并设置好参数,

if (i == n) {//当图片序号与第一个图片和最后一个图片相等时,就

obj._alpha = 50;//把按扭透明度设为50

obj.enabled = false;//让按扭不起作用

} else {//否则

obj._alpha = 100;//按扭透明度为100

obj.enabled = true;//让按扭起作用

}

}

MovieClip.prototype.imgMove = function() {//让每个图片都有如下属性

var mc = this;//让this关键字代表mc

mc._x = (400-mc._width)/2;//设置empty影片剪辑的x坐标

mc._y = (300-mc._height)/2; //设置empty影片剪辑的x坐标

mc._alpha = 0;//设置empty影片剪辑的透明度为0

mc.onEnterFrame = function() {//以桢频触发此函数

mc._alpha += (100-mc._alpha)/10;//让透明度慢慢增加

if (mc._alpha>=95) {当透明度大于或等于95时

delete mc.onEnterFrame;//删除以帧频触发

}

};

};

init();//调用主函数

backBtn.onRelease = function() {

i -= 1;

loadJpg(emptyMc, i);

};

forwardBtn.onRelease = function() {

i += 1;

loadJpg(emptyMc, i);

};

调用外部元件使用:
_root.attachMovie() 就可以。

测试通过,完全可用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: