【ActionScript】使用键盘移动元件

本文介绍ActionScript2.0使用键盘移动元件的做法。

一、基本准备

1、首先,打开Flash,新建一个ActionScript2.0的文件。新建之后直接保存,如《【ActionScript】利用复制影片duplicateMovieClip与鼠标拖动跟随startDrag做出鼠标移动特效》(点击打开链接)一样,通过插入->新建元件(或者Ctril+F8)的方法,新建一个类型为:影片剪辑的实例。之后在元件1中,如下图,利用矩形工具,如下图,拖出一个矩形之后,利用选择工具,对其全选,之后设置其位置与大小,这里是大小为100x100px也就是宽高都为100,且X、Y为宽高的相反数的1/2的,也就是都为-50,使其居中。

2、之后切回到场景1,点开库面板,或者按F11,拖入这个刚刚新建好影片剪辑,如下图,在属性面版中,设置其实例名称为square,然后位置和大小,分别为X:275,Y:200,使其位于场景1的中央,宽高同影片的宽高。之后,利用文本工具,在场景1,拖出一个文本,设置其为动态文本,位置与大小分别为X:0,Y:0,使其居左上,同时宽为400,高为50,字体大小为40,消除锯齿为使用设备字体,以免编译的时候出现警告。在里面输入“X:275,Y:200”这几个大字。之后,在变量名称,设置其变量名为text。一会儿给脚本控制。

3、之后,如下图,不同于之前的几篇文章,这次是对那个矩形的影片剪辑,右击,选择动作,对其设置脚本。

二、脚本编程

ActionScript的任务主要是设置这个影片剪辑,在键盘按下时所实行的动作。如下:

onClipEvent(keyDown){//当按下键盘的时候触发这个函数
	var intCode=Key.getCode();//获取键盘键位码
	var intX=getProperty("_root.square",_x);//获取正方形的X、Y坐标
	var intY=getProperty("_root.square",_y);
	_root.text="X:"+intX+",Y:"+intY;//将坐标赋予到动态文本
	if(intCode==37 and intX>50){//如果是←且正方形没到左边界,则把长方形向左移动3个像素,之后以此类推
		setProperty("_root.square",_x,intX-3);
	}
	if(intCode==38 and intY>100){
		setProperty("_root.square",_y,intY-3);
	}
	if(intCode==39 and intX<500){
		setProperty("_root.square",_x,intX+3);
	}
	if(intCode==40 and intY<350){
		setProperty("_root.square",_y,intY+3);
	}
}

利用getProperty可以获取影片剪辑的坐标,setProperty可以设置影片剪辑的坐标,_x与_y表示设置的属性。

上面脚本根据按下的键盘键位不同,而对影片剪辑做不同的动作。

由于这里存在场景与影片剪辑,必须用_root.开头,来指明这是场景内,而不是影片剪辑的东西。

虽然这个Flash影片的大小为550x400px,但在计算边界坐标要减去影片剪辑的一半大小。因为影片剪辑的坐标是按中心算的。

按Ctrl+Enter编译之后,得到如下的效果:

时间: 2024-10-10 10:46:34

【ActionScript】使用键盘移动元件的相关文章

【ActionScript】使用鼠标移动元件与元件相交判断函数hitTest

在<[ActionScript]使用键盘移动元件>(点击打开链接)中介绍了键盘如何与ActionScript2.0交互.本文继续介绍鼠标如何与ActionScript2.0的交互.其实鼠标与ActionScript2.0的交互在<[ActionScript]利用复制影片duplicateMovieClip与鼠标拖动跟随startDrag做出鼠标移动特效>(点击打开链接)已经展示过了,只是这个程序中,鼠标与ActionScript2.0的交互不是主角. 下面写出如下的程序,来说明这个

第二章 ActionScript 3.0学习之画星星(鼠标及键盘事件)

今天觉得学到的比较有趣,所以记录之......~~~ 下面这段就是画出星星的代码:StarShape.as package { import flash.display.Shape; import flash.display.GradientType; public class StarShape extends Shape { public function StarShape (x:Number = 50, y:Number = 50, points:int = 5, innerRadius

[ActionScript 3.0] AS3 访问舞台上元件的方法

文档类: package { import flash.display.MovieClip; public class Main extends MovieClip { public function Main() { this.addChild(new Test()); } } } 子类: package { import flash.events.Event; import flash.display.Sprite; public class Test extends Sprite { pu

IntelliJ IDEA全键盘操作

IntelliJ IDEA 如何做到全键盘操作呢? 1.自定义快捷键实现全屏操作 你可以设置自定义快捷键进入全屏操作,并实现各个窗口之间的切换.这样,你就可以告别小窗口的时代,体验全屏显示的效果了!(相信有过多年开发经验的你一定会觉得小窗口非常不便于阅读代码,特别是对于小屏幕的笔记本来说) 操作:在File/Settings(或Ctrl+Alt+S)打开设置界面,在搜索框中搜Keymap.然后将之前的keymap文件复制一份.因为原文件是不可以改动的,只有复制一份再对它进行设置自定义快捷键. 设

[转载]从MyEclipse到IntelliJ IDEA-让你摆脱鼠标,全键盘操作

从MyEclipse转战到IntelliJ IDEA的经历 注转载址:http://blog.csdn.net/luoweifu/article/details/13985835 我一个朋友写了一篇“从Eclipse到Android Studio”博文,于是心潮澎湃我也想一篇,分享自己用这个IDEA的一些技巧和感受. 来到公司的第一天,我的同事(也是我的师傅)就让我装IntelliJ IDEA.一开始我还不知道IntelliJ IDEA是什么,后来才知道它是一个Java的集成开发环境(IDE),

在 Flash ActionScript 2.0 中调用 Javascript 方法

本篇文章由:http://xinpure.com/call-the-javascript-method-in-flash-actionscript-2-0/ 在 Flash ActionScript 2.0 中调用 Javascript 方法 最近在工作中,有个这样的需求: 要从 Flash ActionScript 2.0 中调用网页上的 Javascript 方法 这是一个关于 Flash 和 Javascript 交互的问题. 在 ActionScript 2.0 中调用外部 javasc

AS3键盘控制

第一种方式: package com.game.keymanager { import flash.display.Stage; import flash.events.KeyboardEvent; import flash.ui.Keyboard; import flash.utils.Proxy; import flash.utils.flash_proxy; /** * The KeyObject class recreates functionality of * Key.isDown

iOS—收起虚拟键盘的各种方法

本文章转自—http://justcoding.iteye.com/blog/1476171 使用虚拟键盘来输入资讯,是iOS的重要互动方式之一,虚拟键盘通常会自动出现在可以编辑的UITextField或是 UITextView 的编辑事件中,叫出键盘固然容易,但是要把它收起来,可就没有这么简单,之前在 UITextField 输入结束后的收起小键盘的方式一文中,介绍了如何在编辑完成之后收起虚拟键盘,但是如果您的元件并没有对应的事件可以让你收起虚拟键盘,那又该如何做?下列我们以类似的元件 UIT

收起虚拟键盘的各种方法 -- IOS

使用虚拟键盘来输入资讯,是 iOS 的重要互动方式之一,虚拟键盘通常会自动出现在可以编辑的 UITextField 或是 UITextView 的编辑事件中,叫出键盘固然容易,但是要把它收起来,可就没有这么简单,之前在 UITextField 输入结束后的收起小键盘的方式一文中,介绍了如何在编辑完成之后收起虚拟键盘,但是如果您的元件并没有对应的事件可以让你收起虚拟键盘,那又该如何做?下列我们以类似的元件 UITextView 为例,介绍一些通用的方法.  1. 点击编辑区以外的地方(UIView