flash特效原理:图片滑动放大效果
2010-03-02 00:00:00 来源:WEB开发网接下来,我们继承这个Effect.as 类,这个类里面有放大x轴的方法,和放大y轴的方法,同样有还原原来位置的方法
1. package
2. {
3. //图片滑动效果version 1.0
4.
5. import flash.display.MovieClip;
6. import flash.display.Stage;
7. public class RollPhoto extends Effect
8. {
9. private var mc:MovieClip=new MovieClip();
10. private var mystage:Stage;
11. public function RollPhoto(stage:Stage)
12. {
13. this.mystage=stage;
14. }
15.
16. //图片放大
17. public function ZoomPhotoX(array:Array):void
18. {
19. var mouseposition:Number = mystage.mouseX;
20. var length:Number=array[0].width*array.length+super.distance*(array.length-1);
21. if (mouseposition<0)
22. {
23. mouseposition=0;
24. }
25. if (mouseposition>length)
26. {
27. mouseposition=length;
28. }
29. for (var i:uint=0; i<array.length; i++)
30. {
31. var s:Number =super.max- Math.abs(mystage.mouseX - array[i].x)*super.ratio;//公式
32. s = s < 1 ? 1 : s;
33. array[i].scaleX = array[i].scaleY =s;
34. }
35. for (var j:uint=1; j<array.length; j++)
36. {
37. array[j].x = array[j-1].x + array[j-1].width/2 + array[j].width/2 + super.distance;
38. }
39. }
40. //图片以y轴放大
41. public function ZoomPhotoY(array:Array):void
42. {
43. var mouseposition:Number = mystage.mouseY;
44. var length:Number=array[0].width*array.length+super.distance*(array.length-1);
45. if (mouseposition<0)
46. {
47. mouseposition=0;
48. }
49. if (mouseposition>length)
50. {
51. mouseposition=length;
52. }
53. for (var i:uint=0; i<array.length; i++)
54. {
55. var s:Number =super.max- Math.abs(mystage.mouseY - array[i].y)*super.ratio;//公式
56. s = s < 1 ? 1 : s;
57. array[i].scaleX = array[i].scaleY =s;
58. }
59. for (var j:uint=1; j<array.length; j++)
60. {
61. array[j].y = array[j-1].y + array[j-1].height/2 + array[j].height/2 + super.distance;
62. }
63. }
64. //还原
65. public function RestPosition(array:Array,type:String="x"):void
66. {
67. for (var i:uint=0; i<array.length; i++)
68. {
69. array[i].scaleX =array[i].scaleY=1;
70. if (type=="x")
71. {
72. array[i].x = array[0].width/2+i*(array[0].width + super.distance);
73. } else
74. {
75. array[i].y = array[0].height/2+i*(array[0].height + super.distance);
76. }
77. }
78. }
79. }
80. }
- ››FLASH不等于运算符!=的使用实例
- ››FLASH不全等运算符!==
- ››FLASH字符串分隔符运算符
- ››FLASH% 模运算符
- ››Flash+、++、+= 加法运算符
- ››Flash, 逗号运算符
- ››flash中的-、--、-=减法运算符
- ››Flash的-Infinity 常数、.点运算符、/ 除法运算符...
- ››Flash两种注释方法/*..*/ 和// 注释行分隔符运算符...
- ››Flash的/=除法赋值运算符、=赋值运算符、== 等于运...
- ››Flash之?: 条件运算符、^ 按位 XOR 运算符、^= 按...
- ››Flash的_framesloaded代码示例
更多精彩
赞助商链接