付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Flash鼠标事件控制实例绕定点旋转技巧/摘要:在flash中通过在时间轴上插入关键帧和创建补间动画可以轻松实现实例的旋转功能,通过编辑实例的中点还可进一步实现实例绕定点旋转,进而可以方便的引用到其它软件中。
关键词:关键帧;切点;中心点
在flashplayer中为增强交互性,可以尝试利用鼠标事件来控制实例旋转的角度,但这并不轻松,笔者发现在鼠标事件中设置实例的_rotation属性时,旋转的中心并不是预先编辑的实例中心,而是按照flash默认的元件的基准点(左上角)来旋转,所以在确定旋转角度的同时还应对实例的位置(_x与_y属性)进行调整。以下通过一个简例来说明这一技巧。
目标:通过鼠标移动实现切线绕切点任意旋转,达到切线随鼠标移动而旋转的视觉效果。
步骤:1)新建文件“qiexian”,设置背景为蓝色,在图层“背景”上插入关键帧,添加坐标系、曲线、切点等背景元件,并在帧动作中加入代码stop();如图1。
图1
2)增加图层,命名为“转动”,插入关键帧,添加影片剪辑元件“qiexian”,并命名实例名为“qiexian”;如图2。
图2
3)提取切点M0的属性信息,如图3,提取切线属性信息,如图4;
图3
图4
4)为影片实例“qiexian”动作填写代码,保存并发布文件。
代码释义:
onClipEvent(mouseMove){
//鼠标事件
xx=_root._xmouse;yy=_root._ymouse;
//变量xx,yy分别记录鼠标位置的横坐标与纵坐标
if((xx-249.9)*(xx-249.9)+(yy-295.4)*(yy-295.4)<=52885.5){
//(249.9,295.4)为M0点的坐标,52885.5为M0D的长度的平方,用于设定鼠标的响应区域为以M0为圆心,以M0D为半径的圆形区域。
if((xx>=161.7)&&(yy<=216.2)){
//(161.7,216.2)是A点的坐标,以A为坐标原点建立直角坐标系,分四个象限分别处理(如图5),因为Math.atan()的返回值在
_Rotation的范围为,各个象限表达式不统一。
setProperty(“/qiexian”,_rotation,(Math.atan((yy-216.2)/(xx-161.7))*57.2975));
//旋转角度为鼠标位置相对于A点的倾角(如图5),乘以57.2975将弧度转化为角度。
setProperty(“/qiexian”,_x,161.7-(Math.cos(Math.atan((yy-216.2)/(xx-161.7))+0.73168)-Math.cos(0.73168))*118.541);
setProperty(“/qiexian”,_y,216.2-(Math.sin(Math.atan((yy-216.2)/(xx-161.7))+0.73168)-Math.sin(0.73168))*118.541);}//(如图6)旋转后切点的位置由M0移至M1,不能达到绕定点旋转的视觉效果,须将直线平移,使M1与M0重合,其中0.73168为AM0的斜率,118.541为AM0长度。
elseif((xx<=161.7)&&(yy<=216.2)){
//第二象限
setProperty(“/qiexian”,_rotation,(-90-Math.atan((xx-161.7)/(yy-216.2))*57.2975));
setProperty(“/qiexian”,_x,161.7+(Math.cos(0.73168)-Math.sin(0.73168-Math.atan((xx-161.7)/(yy-216.2))))*118.541);
SetProperty(“/qiexian”,_y,216.2+(Math.sin(0.73168)+Math.cos
(0.73168-Math.atan((xx-161.7)/(yy-216.2))))*118.541);}
图5
Elseif((xx<=161.7)&&(yy>=216.2)){
//第三象限
setProperty(“/qiexian”,_rotation,(180+Math.atan((yy-216.2)/(xx-161.7))*57.2975));
setProperty(“/qiexian”,_x,161.7+(Math.cos(Math.atan((yy-216.2)/(xx-161.7))+0.73168)+Math.cos(0.73168))*118.541);
setProperty(“/qiexian”,_y,216.2+(Math.sin(Math.atan((yy-216.2)/(xx-161.7))+0.73168)+Math.sin(0.73168))*118.541);}
elseif((xx>=161.7)&&(yy>=216.2)){
//第四象限
setProperty(“/qiexian”,_rotation,(90-Math.atan((xx-161.7)/(yy-216.2))*57.2975));
setProperty(“/qiexian”,_x,161.7+(Math.cos(0.73168)+Math.sin
(0.73168-Math.atan((xx-161.7)/(yy-216.2))))*118.541);
setProperty(“/qiexian”,_y,216.2-(Math.cos(0.73168-Math.atan((xx-161.7)/(yy-216.2)))-Math.sin(0.73168))*118.541);}}}
作品自评:代码中将A点作为基准点划分象限,确定旋转角度、调整坐标,较为流畅地实现了目标。由于鼠标响应圆形区域的圆心与坐标系的原点不重合,造成鼠标响应区域的不对称。如果将基准点选在M0点,而实际又是以A点作为旋转中心点,造成区域讨论更为复杂,难以实现任意旋转。
参考文献:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年储能电池管理系统内阻监测方法优化
- 2026下半年山东通汇资本投资集团限公司校园招聘3人易考易错模拟试题(共500题)试卷后附参考答案
- 市卫生局一季度的工作总结及次季度的工作计划
- 文秘个人工作计划
- 江苏省连云港市赣榆县智贤中学高中地理 1.2地球自转教案 鲁教版必修1
- 2026下半年四川省广元利州区考试招聘部分事业单位人员20人易考易错模拟试题(共500题)试卷后附参考答案
- 2026下半年四川凉山越西县考调县级机关事业单位工作人员5人易考易错模拟试题(共500题)试卷后附参考答案
- 2026上海邮政校园招聘扩招100人易考易错模拟试题(共500题)试卷后附参考答案
- 2026一重集团(黑龙江)农业机械发展限公司招聘营销副总监易考易错模拟试题(共500题)试卷后附参考答案
- 浙江摄影版(三起)(2020)信息技术四年级下册 让幻灯片动起来(教学设计)
- DL∕T 1779-2017 高压电气设备电晕放电检测用紫外成像仪技术条件
- 农业技术员培训培训课件
- 监理工程师继续教育考试及答案
- GB/T 28784.4-2017机械振动船舶振动测量第4部分:船舶推进装置振动的测量和评价
- GB/T 1356-2001通用机械和重型机械用圆柱齿轮标准基本齿条齿廓
- 应征入伍服兵役高等学校学生国家教育资助申请表
- FZ/T 63033-2016编织圆绳
- 有机波谱分析课件
- 水库安全鉴定报告书
- 水利工程竣工结算书
- GB∕T 37168-2018 建筑施工机械与设备 混凝土和砂浆制备机械与设备安全要求
评论
0/150
提交评论