本页面由 Flash 保存计划 从 Internet Archive 存档还原 · 快照 2005-12-26 · 原址 http://bbs.flash8.net/forums/1783140/ShowPost.aspx ← Flash 保存计划
欢迎光临 闪吧论坛 登录 | 注册 | FAQ | 搜索
Print Search
帖子排序:    
帖子发起人:菜鸟的疑问   发起时间:2005-12-25 01:14 上午   回复:3
菜鸟的疑问 离线,最后访问时间:2005-12-29 22:21:00 菜鸟的疑问

等级:Flash1

等级:FLASH1
注册:2005-11-29
发贴:5
积分:1
2005-12-25, 01:14 上午   IP 地址:已记录  报告  收藏  楼主
[原创]模仿桌面图标的交互效果(近似,不完全)

  • 演示文件如下: [upload=swf]UploadFile/2005-12/2005122511842574.swf[/upload] 源文件如下: [upload=fla]viewFile.asp?ID=292258[/upload] FLASH版本:FLASH MX 2004 播放器版本:7 Actionscript:1 具体步骤: NO.1 制作两个图象,一个为"未选中状态的图标",另一个为"选中后的图标" (本例中使用了PHOTOSHOP的图标,并制作为PNG图像) NO.2 打开FLASH,新建一个空白文档,文档中默认有一个图层,我们再建一个新的图层,将位于上面的图层命名为"未选中图标",位于下面的图层命名为"已选中图标" NO.3 在图层"未选中图标"中导入制作好的"未选中状态的图标"的图像,并将其转换为影片剪辑(MovieClip),再将其实例名称命名为unselected NO.4 在图层"已选中图标"中导入制作好的"选中后的图标" 的图像,并将其转换为影片剪辑(MovieClip),再将其实例名称命名为selected NO.5 现在屏幕中的状态如图 NO.6 下面进入编写脚本的部分 选中影片剪辑"未选中图标",按F9进入动作面板,写入如下代码: onClipEvent(load){
    _root.unselected._visible=0;
    //当影片剪辑载入的时候,选中后的图标被隐藏
    }
    onClipEvent(mouseDown){
    if(this.hitTest(_root._xmouse,_root._ymouse,true)){
    _root.unselected._visible=1;
    _root.unselected._x=this._x;
    _root.unselected._y=this._y;
    this._visible=0;
    //如果鼠标点击在该影片剪辑的范围内的时候,选中后图标显示出来,与该影片剪辑的坐标重合后,将该影片剪辑隐藏
    }else{
    this._visible=1;
    this._x=_root.unselected._x;
    this._y=_root.unselected._y;
    _root.unselected._visible=0;
    //如果点击在该影片剪辑范围以外,则此影片剪辑为显示,并且坐标与选中后图标重合后,将选中后图标隐藏
    }
    } NO.7 再选中影片剪辑"已选中图标",按F9进入动作面板,编写如下代码: onClipEvent(mouseDown){
    if(_root.selected._visible==0){
    startDrag("");
    //当鼠标按下时,如果未选中的图标为隐藏的,则开始拖拽
    }
    }
    onClipEvent(mouseUp){
    stopDrag();
    _root.selected._x=this._x;
    _root.selected._y=this._y;
    //当鼠标释放时,停止拖拽,并且使未选中图标与该影片剪辑坐标重合
    } NO.8 最后,到主场景中,将已选中图标和未选中图标的两个影片剪辑的坐标重合到一起,就完成制作了 CTRL+ENTER测试影片了 这个效果还有其他更方便的方法可以实现,欢迎大家来贴贴
    附件:
    序号 附件名称 类型 文件大小 上传时间 下载次数
    1 2005-12/2005122511842574.swf Flash动画 3Kb 2005-12-25 5
    2 2005-12/200512251195688.fla 未知格式 66Kb 2005-12-25 7
    3 2005-12/2005122511357843.jpg 网络图片 48Kb 2005-12-25 1
    4 2005-12/2005122511328367.jpg 网络图片 22Kb 2005-12-25 0
    5 2005-12/2005122511032256.jpg 网络图片 22Kb 2005-12-25 0
    iter 离线,最后访问时间:2005-12-26 21:01:19 iter

    等级:Flash1

    等级:FLASH1
    注册:2005-12-26
    发贴:1
    积分:0
    2005-12-26, 21:07 下午   IP 地址:已记录  报告  收藏  第2楼

  • 不错,就是觉得有些绕脑子
    猫大哥 在线,最后访问时间:2006-1-12 14:14:22 猫大哥

    等级:Flash 3


    等级:版主
    注册:2004-05-28
    发贴:509
    积分:86
    访问我的Blog
    2005-12-27, 02:58 上午   IP 地址:已记录  报告  收藏  第3楼

  • 嗯.确实有些绕脑子...问题有点复杂了.. 建个MC,MC第1帧放未选中状态,第2帧放选中状态.然后在MC上加代码:
    onClipEvent (load) {
    stop();
    }
    onClipEvent (mouseDown) {
    if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
    startDrag(this);
    gotoAndStop(2);
    } else {
    gotoAndStop(1);
    }
    }
    onClipEvent (mouseUp) {
    stopDrag();
    }
    加分鼓励.欢迎继续分享你的教程!
    **教材发布区发帖及加分规则**
    peterhuzhongfei 离线,最后访问时间:2006-1-11 17:20:10 peterhuzhongfei

    等级:Flash1

    等级:FLASH1
    注册:2005-12-02
    发贴:18
    积分:0
    2005-12-27, 04:25 上午   IP 地址:已记录  报告  收藏  第4楼

  • 太复杂了 我觉得这样的东西不需要AS 很简单就可以做出同样的效果
    快速回复帖子

     




    标题: