第二章 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:Number = 20, outerRadius:Number = 50, angle:Number = 0, color:uint = 0xff0000) {//x和y是起始点~~
var count = Math.abs(points);
this.graphics.lineStyle(2, 0x85DB18);
//开始填色
this.graphics.beginFill(color);
if (count > 2) {
//init vars
var step, halfStep, start, n, dx, dy;
//计算两点之间的距离
step = (Math.PI * 2) / points;
halfStep = step / 2;
//起始角度
start = (angle / 180) * Math.PI;
this.graphics.moveTo(x + (Math.cos(start) * outerRadius), y - (Math.sin(start) * outerRadius));
//画星状图的边
for (n = 1; n <= count; n++) {
dx = x + Math.cos(start + (step * n) - halfStep) * innerRadius;
dy = y - Math.sin(start + (step * n) - halfStep) * innerRadius;
this.graphics.lineTo(dx, dy);
dx = x + Math.cos(start + (step * n)) * outerRadius;
dy = y - Math.sin(start + (step * n)) * outerRadius;
this.graphics.lineTo(dx, dy);
}
}
this.graphics.endFill();
}
}
}
具体显示效果如下:
鼠标点击和键盘按下事件练习(按下的按键是Alt,Shift,Ctrl,单个或两两组合,三个一起,同时点击鼠标):
源码:
SampleMouseAndkey.as
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
public class SampleMouseAndKey extends Sprite {
public function SampleMouseAndKey() {
this.stage.addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(evt:MouseEvent):void {
var color:uint = 0xffffff;
if (evt.ctrlKey) color = 0x66cc00;
if (evt.altKey) color = 0x669933;
if (evt.shiftKey) color = 0x66ff00;
//按两个键
if (evt.altKey && evt.ctrlKey) color = 0xffcc00;
if (evt.altKey && evt.shiftKey) color = 0xffff00;
//三个键//转载注明原文地址:http://www.cnblogs.com/xianfangloveyangmei/p/4425589.html
if (evt.altKey && evt.ctrlKey && evt.shiftKey) color = 0xff9900;
trace("click:" + color.toString(16));
var star:StarShape = new StarShape(evt.stageX, evt.stageY, 5, 10, 20, 0, color);
addChild(star);
var clear_star:
}
}
}
效果:(背景白色,鼠标单击可以看到画出的效果)
下面的带清舞台(其实是创建子对象覆盖):
修改后的SampleMouseAndkey.as
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
public class SampleMouseAndKey extends Sprite {
public function SampleMouseAndKey() {
this.stage.addEventListener(MouseEvent.CLICK, clickHandler);
}
private function clickHandler(evt:MouseEvent):void {
var clear:Sprite = new clear_stage(0, 0, 400, 400);
var color:uint = 0xffffff;
if(!(evt.altKey && evt.ctrlKey && evt.shiftKey)){
if (evt.ctrlKey) color = 0x66cc00;
if (evt.altKey) color = 0x669933;
if (evt.shiftKey) color = 0x66ff00;
//按两个键
if (evt.altKey && evt.ctrlKey) color = 0xffcc00;
if (evt.altKey && evt.shiftKey) color = 0xffff00;
//三个键
//if (evt.altKey && evt.ctrlKey && evt.shiftKey) color = 0xff9900;
trace("click:" + color.toString(16));
var star:StarShape = new StarShape(evt.stageX, evt.stageY, 5, 10, 20, 0, color);
addChild(star);//先画了星星
}
if (evt.altKey && evt.ctrlKey && evt.shiftKey) {
var clear:Sprite = new clear_stage(0, 0, 400, 400);
addChild(clear);
}
}
}
}
import flash.display.Sprite;
class clear_stage extends Sprite {//清理舞台
public function clear_stage(x:Number, y:Number, w:Number, h:Number) {
this.graphics.beginFill(0xFFFFFF);
this.graphics.drawRect(x, y, w, h);
this.graphics.endFill();
//trace("........");
}
}
具体效果如下(同时按Alt,Shift,Ctrl,同时单击击鼠标左键清舞台):舞台白色~~~
可以测试一下上面的点击结果哦,嘻嘻~~新手笔记!!大婶别吐。
第二章 ActionScript 3.0学习之画星星(鼠标及键盘事件)的更多相关文章
- 第二章、 Linux 如何学习
第二章. Linux 如何学习 最近更新日期:2009/08/06 1. Linux当前的应用角色 1.1 企业环境的利用 1.2 个人环境的使用 Linux当前的应用角色 在第一章Linux是什么当 ...
- 『心善渊』Selenium3.0基础 — 12、Selenium操作鼠标和键盘事件
目录 (一)对鼠标的操作 1.鼠标事件介绍 2.ActionChains 类鼠标操作的常用方法 3.perform()方法 4.鼠标事件操作步骤 5.示例 (1)右键单击.左键双击 (2)鼠标拖拽动作 ...
- 第二章:1.0 Django 入门和开发环境
1. 选择 Django Web框架来做Web接口开发,主要原因是由于学习资料丰富,便于学习. 2. Django 对 python 版本的支持情况. Django 的版本在 1.8 ,1.9 , 1 ...
- ASP.NET本质论第二章应用程序对象学习笔记1
1.请求的处理参数—上下文对象HttpContext 1) 针对每一次请求,ASP.NET将创建一个处理这次请求所使用的HttpContext对象实例,这个对象实例将用来在ASP.NET服务器的处理过 ...
- <<深入Java虚拟机>>-第二章-Java内存区域-学习笔记
Java运行时内存区域 Java虚拟机在运行Java程序的时候会将它所管理的内存区域划分为多个不同的区域.每个区域都有自己的用途,创建以及销毁的时间.有的随着虚拟机的启动而存在,有的则是依赖用户线程来 ...
- Javascript 学习之路:鼠标长按事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Python自动化学习--鼠标和键盘事件
from selenium import webdriver from selenium.webdriver import ActionChains import time driver = webd ...
- PyQt学习随笔:PyQt中捕获键盘事件后获取具体按键值的方法
在PyQt中,如果要捕获键盘事件的具体按键,可以通过重写组件对象的keyPressEvent方法或event方法来捕获具体的按键,推荐使用keyPressEvent方法,因为event方法是一个通用事 ...
- [书籍翻译] 《JavaScript并发编程》 第二章 JavaScript运行模型
本文是我翻译<JavaScript Concurrency>书籍的第二章 JavaScript运行模型,该书主要以Promises.Generator.Web workers等技术来讲解J ...
随机推荐
- mysql千万级表关联优化
MYSQL一次千万级连表查询优化(一) 概述: 交代一下背景,这算是一次项目经验吧,属于公司一个已上线平台的功能,这算是离职人员挖下的坑,随着数据越来越多,原本的SQL查询变得越来越慢,用户体验特别差 ...
- easyui tree tabs
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- 【LOJ】#2587. 「APIO2018」铁人两项
题解 学习了圆方树!(其实是复习了Tarjan求点双) 我又双叒叕忘记了tarjan点双一个最重要,最重要的事情! 就是--假如low[v] >= dfn[u],我们就找到了一个点双,开始建立方 ...
- Android中Xposed框架篇-微信实现本地视频发布到朋友圈功能
微信非常庞大,还好有一些强大的工具,下面就来总结收获的知识. 一.使用adb shell dumpsys activity top命令快速定位页面 二.使用Jadx进行方法跟踪时候如果发现没有结果,可 ...
- js获取单个查询串的值
function getSearchString(key) { // 获取URL中?之后的字符 var searchArr= window.location.href.split('#')[0].sp ...
- 【基础知识】.Net基础加强 第二天
第02天 .Net基础加强 1. 封装 1> 属性的封装: 属性封装字段:把变化封装一下,保留用户的使用方式 2> 把方法的多个参数封装成一个对象 3> 将一堆代码封装到一个方法中 ...
- Xamarin 2017.10.9更新
Xamarin 2017.10.9更新 本次更新主要解决了一些bug.Visual Studio 2017升级到15.4获得新功能.Visual Studio 2015需要工具-选项-Xamarin ...
- python opencv3 运动检测
git:https://github.com/linyi0604/Computer-Vision 思路: 开启摄像头后 设置一个当前帧为背景, 在之后检测到的帧都与背景对比不同,对不同的地方进行检测 ...
- 腾讯云服务器无法ssh登陆问题
SSH 登录时出现如下错误:Permission denied, please try again 解决:腾讯云主机控制台登录,先要设置root密码 修改 /etc/ssh/sshd_config 中 ...
- luogu P2439 [SDOI2005]阶梯教室设备利用
题目链接 luogu P2439 [SDOI2005]阶梯教室设备利用 题解 dp 代码 #include<vector> #include<cstdio> #include& ...