论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

学习xml+Moviecliploader动态载入图片方法(二)

文章类别:Flash AS | 发表日期:2009-8-8 17:51:56

学习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
       }

视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058