horidream’s blog

have fun with actionscript 3.0

以前在某本书上曾经看到过,不过后来忘记了。昨天看了一小段视频,终于又“拾”回了这个快捷键。

在画矩形(R)开始拖动鼠标时,按键盘的上、下箭头,可以动态调整矩形的内外圆角尺寸。非常方便实用。


相关代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
//导入Tweener类
import caurina.transitions.Tweener;
//声明一个Object,它的初始x,y参数与红色广场sq的横纵坐标相同
var obj:Object={x:sq.x,y:sq.y};
//声明一个布尔值isDraging用作标志
var isDraging:Boolean=false;
 
//定义阴影滤镜
var filter:DropShadowFilter=new DropShadowFilter(0,0,0,0.8);
filter.quality = 2;
//注册侦听器,分别侦听鼠标按下、移动、松开三种状态
sq.addEventListener(MouseEvent.MOUSE_DOWN,beginDrag);
stage.addEventListener(MouseEvent.MOUSE_MOVE,begingMove);
stage.addEventListener(MouseEvent.MOUSE_UP,endDrag);
//注册播放头事件,用于更新阴影
stage.addEventListener(Event.ENTER_FRAME,renew);
//_________________________________________以下为三个鼠标侦听器
//当鼠标按下时开始拖放目标,并将标志位置为true
function beginDrag(e:MouseEvent):void {
	e.target.startDrag(false);
	isDraging=true;
}
//鼠标移动时,当拖放状态为true时,更新滤镜参数
function begingMove(e:MouseEvent):void {
	if (isDraging) {
		renderFilters();
		e.updateAfterEvent();
	}
}
//当鼠标放开左键时,停止拖放状态,并将标志位置回false;
function endDrag(e:MouseEvent):void {
	sq.stopDrag();
	isDraging=false;
}
//使用Tweener类缓动obj的参数,使之以红色方块的新坐标为目标缓动
function renderFilters() {
	Tweener.addTween(obj,{x:sq.x,y:sq.y,time:.2});
}
//播放头事件,通过数学方法计算阴影的距离、角度和模糊程度
function renew(e:Event):void {
	var d:Number = Math.min(Point.distance(new Point(obj.x,obj.y),new Point(sq.x,sq.y)),16);
	filter.distance= d;	
	filter.angle = Math.atan2((obj.y-sq.y),(obj.x-sq.x))*180/Math.PI;
	filter.blurX = filter.blurY = d;
	sq.filters=[filter];
}

7yue的变化

Posted by horidream under 链接【Links】

今天7yue的博客说明了自己工作性质的变化——China Platform Evangelist。或许以后的很多工作内容跟推广活动会越来越关系密切吧。能够站到应用的前端,对于7yue来说也是一种回归吧。

Welcome back, 7yue.

http://www.7yue.com/post/180.html