当前位置: 移动技术网 > IT编程>UI设计>设计软件 > 从基础开始深入学Flash AS3教程(5)(译文)

从基础开始深入学Flash AS3教程(5)(译文)

2019年03月23日  | 移动技术网IT编程  | 我要评论
12,标签申明
在as3中引入了标签,新的标签可以和循环体一起使用。例如,现在有两个嵌套的循环体,如果想要在内循环体中break掉外循环,一般使用下面的方法:

var i:number;
var j:number;
var exit:boolean = false;
for (i=0; i<10; i ) {
for (j=0; j<10; j ) {
if (i > 3 && j > 3) {
exit = true;
break;
}
}
if (exit) {
break;
}
}
在引入了新的标签以后,可以使用下面的方法从内循环体中直接break掉外循环体:

var i:number;
var j:number;
mainloop: for (i=0; i<10; i ) {
for (j=0; j<10; j ) {
if (i > 3 && j > 3) {
break mainloop;
}
}
}
在第一个循环体上设置了mainloop的标签,因此在循环体内任何地方使用break mainloop直接中止外循环。
13,检测鼠标离开movie的动作
在以前的as版本中,你无法做到检测鼠标是否还在flash movie上。因此影片不能检测到用户是否在关注着当前的movie。另外一个问题是,如果使用了自定义的鼠标样式,在鼠标移出movie后,自定义的鼠标还是继续停留在影片上,而不能正确的显示鼠标当前的位置。
现在,as3允许你通过监听stage的mouseleave行为来捕获鼠标移出movie的动作。mouseleave行为在鼠标移出movie的时候执行。但是现在并没有mouseenter事件,不过你可以通过使用mousemove来设置。
下面的例子中使用了一个方框来作为自定义的鼠标:

package {
import flash.display.sprite;
import flash.events.event;
import flash.events.mouseevent;
import flash.ui.mouse;

public class test extends sprite {

private var cursor:sprite = new sprite();

public function test() {
cursor.graphics.beginfill(0xff);
cursor.graphics.drawrect(0, 0, 25, 25);
addchild(cursor);

stage.addeventlistener(event.mouse_leave, cursorhide);
stage.addeventlistener(mouseevent.mouse_move, cursorfollow);
mouse.hide();
}

public function cursorhide(evt:event):void {
cursor.visible = false;
}

public function cursorfollow(evt:mouseevent):void {
if (!cursor.visible) cursor.visible = true;
cursor.x = stage.mousex;
cursor.y = stage.mousey;
evt.updateafterevent();
}
}
}
当鼠标离开movie的时候,鼠标指针将被隐藏。当鼠标再次移动到movie上的时候,mousemove会被执行,然后显示鼠标。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网