分享

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

 曾绳汤图书馆 2010-11-16
以前用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() 就可以。
测试通过,完全可用。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qqxinxi/archive/2010/10/05/5922146.aspx

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多