IT技术精粹[JiShuBu.Com]-倾力打造一流IT技术平台!
  • 登录
  • 注册
  • 设为首页
  • 加入收藏
  • 网站首页
  • IT风向标
  • 网站优化
  • Html
  • CSS
  • JavaScript
  • ASP
  • Php/Mysql
  • Flash
  • Ajax
  • 源码下载
  • 精美桌面
  • 供求信息
  • 超稳定100M虚拟主机只要100元,还送50M邮箱!
  • 文字广告招商中...
  • 会员注册 | 用户登录 | 我要投稿
  • 信息订阅
Flash 实用技巧 —— 拖动 您现在正在浏览:首页 > Flash > 
Flash 实用技巧 —— 拖动

作者: 发布时间:2008-05-24 09:34:50 来源:netboy365.com

  用Flash制作交互式的课件时,很多场合都需要用到拖动。在Flash中主要的拖动方式有以下三种:无任何约束的拖动、限制在某一矩形范围内的拖动、限制在某一路径上的拖动。下面通过实例加以说明。

  1、无任何约束的拖动

  ①、打开“插入”菜单的“新建元件”命令,在“创建新元件”对话框中,“名称”框内输入“球”,“行为”选择“影片剪接”。

  ②、画一个圆,最好是让圆心和影片剪接的中心对齐。

  ③、选择主场景,按F11打开“库”面板,将刚制作好的球拖动至主场景中。

  ④、选择主场景中的球,打开窗口下方的“属性”面板,在名称框内输入名称ball。

  ⑤、右击ball,选择“动作”命令,在代码编辑框内输入:

 引用内容

on(press)
{
startDrag(”",true);//允许拖动ball
}
on(release, releaseOutside)
{
stopDrag();//释放鼠标时,停止拖动ball
}
 


  ⑥、拖动ball,我们将看到ball可以拖动到场景中的任意位置,释放鼠标时,ball将停止拖动。


  2、约束某一矩形范围内的拖动

  将以上代码改为:

 引用内容

 on(press)
{
//限制拖动范围为(0,0)到(100,100)之间,注意坐标原点位于场景中的左上角。
startDrag(”",true,0,0,100,100); }
on(release, releaseOutside)
{
stopDrag();
}

  再拖动ball,将看到ball被限制在某一区域内拖动。


  3、沿某一路径的拖动

  在某些场合,如通过拖动动态生成数学函数图像时,因为函数图像都有一个函数式约束,决定了以上两种方法都不可行。这种拖动的关键在于要根据约束条件来决定被拖动对象的位置。下面以动态生成圆来说明此类拖动问题的解决方法。

  ①、通过“插入”菜单制作一个名为“点”的电影剪接,画一个小点表示该电影剪接,注意点的中心和电影剪接的中心点重合。

  ②、转到主场景,新增一图层,将两图层分别命名为“脚本”和“对象”。

  ③、选择“对象”时间轴,在场景中加入两个“点”的实例,在它们的属性面板中分别命名为“yuanxi”(表示圆心)和“dian”(表示圆周上的点),让它们适当保持一定的距离,并且让“yuanxi”位于场景的中央。

    ④、右击“脚本”层第一帧,选择“动作”,在代码编辑窗口内输入以下脚本:

 引用内容

 drag_flag=false;//拖动标志
x0=yuanxin._x;
y0=yuanxin._y;
dian_x=dian._x;
dian_y=dian._y;
//计算圆的半径,这就是拖动圆周的点的约束条件,被拖动的点到圆心的距离等于半径。
r=Math.sqrt((x0-dian_x)*(x0-dian_x)+(y0-dian_y)*(y0-dian_y));
_root.onEnterFrame =function()
{
if (drag_flag)
{
x = _xmouse;
y = _ymouse;
angle=Math.atan(Math.abs(y0-y)/Math.abs(x-x0));
dian_x=x0+r*Math.cos(angle);
dian_y=y0-r*Math.sin(angle);
//第一象限
if((x>=x0) &&&& (y<=y0))
{
dian_x = x0+r*Math.cos(angle);
dian_y = y0-r*Math.sin(angle);
depth=angle*180/3.14159;
}
//第二象限
if((x<=x0) &&&& (y<=y0))
{
dian_x=x0-r*Math.cos(angle);
dian_y=y0-r*Math.sin(angle);
depth=angle*180/3.14159+90;
}
//第三象限
if((x<=x0) &&&& (y>=y0))
{
dian_x=x0-r*Math.cos(angle);
dian_y=y0+r*Math.sin(angle);
depth=angle*180/3.14159+180;
}
//第四象限
if((x>=x0) &&&& (y>=y0))
{
dian_x=x0+r*Math.cos(angle);
dian_y=y0+r*Math.sin(angle);
depth=angle*180/3.14159+270;
}
duplicateMovieClip(”dian”,”dian” add depth,depth);
_root[”dian” add depth]._x=dian_x;
_root[”dian” add depth]._y=dian_y;
_root.clear();
_root.moveTo(x0,y0);
_root.lineStyle(1,0xff0000,100);
_root.lineTo(dian_x,dian_y);
}
}

  ⑤、右击dian实例,选择“动作”命令,输入以下脚本:

 引用内容

 on(press)
{
_root.drag_flag=true;//在dian实例上按下鼠标左键,置拖动标志为真。
}
on(release, releaseOutside)
{
_root.drag_flag=false;//在dian实例上松开鼠标左键,置拖动标志为假。
}


  ⑥、测试影片,拖动dian实例,将看到在场景中会画出一个由点构成的圆。

  从此例可以看出,实现沿某一路径的拖动,关键是要通过约束条件找到拖动时的对象的坐标。

  
【评论】【加入收藏夹】【大 中 小】【打印】【关闭】
※ 相关信息
 ·Flash绘画技巧:绘制女孩头像  (2008-05-14 23:36:22)
 ·个性化我的Flash  (2008-05-11 21:48:38)
 ·解决Flash影片中的图片抖动锯齿  (2008-05-11 21:38:12)
 ·Flash小技巧之allowScriptAccess  (2008-05-07 23:03:13)
 ·Flash小技巧:简单实现动态文本包边效果  (2008-05-07 22:56:54)
 ·精简Flash文件体积几个小技巧  (2008-05-07 22:55:55)
 ·Flash与html 的一些实用技巧 Flash与html 的一些实用技巧  (2008-01-28 18:10:01)
 ·flash分身效果  (2007-12-06 13:35:54)
 ·用Flash绘制超酷水晶导航菜单  (2007-11-18 23:38:33)
 ·Flash文件的破解与加密方法探秘  (2007-11-18 23:37:36)

发表评论
查看评论 
用户名: 密码:
验证码: 匿名发表
[注册帐号]
[控制面板]
[用户登陆]
[修改资料]
[用户收藏]
[我的状态]
[退出登陆]
 
文章搜索
     
    [添加文章]   [管理文章]
最新技术文档
    ·中国移动188号段将于1月8日起在深圳正式放号
    ·PHP与Javascript的两种交互方式
    ·使用wordpress中的函数 (PHP)
    ·js倒计时效果-精确到秒 (Javascript)
    ·PHP无刷新删除数据
    ·PHP文件系统处理类
    ·PHP文件缓存数据类
    ·PHPMailer邮件类利用smtp.163.com发送邮件方
    ·PHP的POST方式
    ·md5 结合 crypt =无敌密码
技术文档排行榜
    ·天气预报小偷,根据IP自动判断地址
    ·超经典计算机使用问题105答
    ·CSS网页布局入门教程:下拉及多级弹出式菜单
    ·'AjaxPro'未定义错误的原因&javascript顺
    ·[初学者必读]网页制作之HTML基础知识
    ·DIV&CSS打造自动伸展三栏复合布局
    ·近1000本javascript电子图书下载列表
    ·CSS 文字樣式技巧 (摘自一台湾网站,确实很
    ·阿里妈妈广告的投放技巧
    ·ajax+php无刷新二级联动下拉菜单(省市联动)
关于站点 - 广告服务 - 联系我们 - 免责声明 - 程序支持 - 网站地图 - 留言中心 - 返回顶部

Copyright © 2007-2008 www.Jishubu.com online services. All rights reserved. Template designed by laogui.
违法不良信息举报中心 津ICP备07002356号