学习xml+Moviecliploader动态载入图片方法(二)
第二部分
目标:载入图片成缩略图形式+分类功能+单击缩略图在指定区域以指定大小显示大图
基本思路:载入+控制显示大小+必要特效
载入部分:
新建一个用来显示大图的空MC,命名为showimg,再用MovieClipLoader,增加监听对象实现
不过其中有一个难点和技巧,关于大图地址变量动态赋值,这里我又用了this这个特殊变量,代码如下:
在myobj.onLoadInit=function(tar)函数体内加入语句
_root["loader"+cid].btn_mc.showimg_url=id-1;//动态赋予id数。注意,这里的_root不能改为this,因为他包含在onloadinit事件中,里面的this是以myobj为基础的,可以在其中用trace(this),显示[object object]
同样在函数体内_root["loader"+cid].btn_mc.onRelease=function()事件内部加入语句:
this.show_url=mylist[this.showimg_url].attributes.path;
trace(this.show_url)//测试用
myMCL.loadClip(this.show_url,"showimg")
控制显示大小:
var myMCL=new MovieClipLoader()//本来我不想再重新定义个监听对象,第一次载入还可以,但当Press舞台上的任意一个按钮,loader容器中的图片由于会执行myobj.onloadinit事件,但他不是执行第一个,导致图片载入不正常
var myobj2=new Object()
myMCL.addListener(myobj2)
myobj2.onLoadInit=function(tar){
imgw=470
imgoldw=tar._width
imgoldh=tar._height
trace("w="+imgoldw+"h="+imgoldh)//同一图片URL,即对同一图片press之后,虽然他们是一个url,但每press一 下,其值都会累加
bili=imgoldh/imgoldw
imgneww=imgw
imgnewh=imgw*bili
_root.showimg.onEnterFrame=function(){
showimg._width+=(imgneww-showimg._width)/2
showimg._height+=(imgnewh-showimg._height)/2
//_root.onEnterFrame=function(){
//showimg._width+=(imgneww-showimg._width)/2
//showimg._height+=(imgnewh-showimg._height)/2
// }
//此种状态下,上面的宽高只能加一次,而不能缓冲到imgneww和imgnewh
}
changeshow()//不要写在_root.showimg.onEnterFrame=function()内部
}
必要特效:缓冲变动+图片全方位展示
缓冲变动很简单:
_root.showimg.onEnterFrame=function(){
showimg._width+=(imgneww-showimg._width)/2
showimg._height+=(imgnewh-showimg._height)/2
}
图片全方位展示:图片随鼠标移动而移动
加入函数changeshow()
定义函数changeshow()
function changeshow(){
showimg._x=0
showimg._y=0
_root.onEnterFrame=function(){
left=0
right=470
up=0
down=300
if(_root._xmouse>left&&_root._xmouse<right&&_root._ymouse>up&&_root._ymouse<down){
showimg._x-=(_root._xmouse-right/2)/10
showimg._y-=(_root._ymouse-down/2)/10
if(showimg._x>left){
showimg._x=left
}
if(showimg._y>up){
showimg._y=up
}
if(showimg._x<right-showimg._width){
showimg._x=right-showimg._width
}
if(showimg._y<down-showimg._height){
showimg._y=down-showimg._height
}
}
}//end enterframe
}
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |