- 浏览: 119630 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
zhouhaiyang88:
huang-tao 写道你好,在吗?请问,我启动Tomcat时 ...
ActiveMq-JMS简单实例使用tomcat -
xurichusheng:
huang-tao 写道你好,在吗?请问,我启动Tomcat时 ...
ActiveMq-JMS简单实例使用tomcat -
wgcooo:
javax.naming.NameNotFoundExcept ...
ActiveMq-JMS简单实例使用tomcat -
huang-tao:
你好,在吗?请问,我启动Tomcat时报如下错,是什么原因?= ...
ActiveMq-JMS简单实例使用tomcat -
Eric.Yan:
好文章,明天试一试
ActiveMq-JMS简单实例使用tomcat
Sprite有一个graphics可以用来绘制基本图形,比如我们要画下面这个图形:
对应的AS3代码为:
package
{
import
flash.display.Sprite;
public
class
Arrow
extends
Sprite {
public
function
Arrow():
void
{
init();
}
private
function
init():
void
{
graphics.lineStyle(
1
,
0
,
1
);
graphics.beginFill(
0xffff99
);
graphics.drawCircle(
0
,
0
,
2
);
//中心点
graphics.moveTo(
0
,
50
);
graphics.lineTo(
100
,
50
);
graphics.lineTo(
100
,
0
);
graphics.lineTo(
150
,
75
);
graphics.lineTo(
100
,
150
);
graphics.lineTo(
100
,
100
);
graphics.lineTo(
0
,
100
);
graphics.lineTo(
0
,
50
);
graphics.endFill();
}
}
}
把它加到舞台上,并自动跟着鼠标转动(下列代码写在第一帧):
var
_arrow:Arrow =
new
Arrow();
addChild(_arrow);
_arrow.x=stage.stageWidth/
2
-
50
;
_arrow.y=stage.stageHeight/
2
-
75
;
this
.addEventListener(Event.ENTER_FRAME,EnterFrameHandler);
function
EnterFrameHandler(e:Event):
void
{
var
dx:
Number
=mouseX-_arrow.x;
var
dy:
Number
=mouseY-_arrow.y;
//trace("dy=" + dy + ",dx=" + dx);
var
angle:
Number
=Math.atan2(dy,dx);
_arrow.rotation=angle*
180
/Math.PI;
}
这里用到了反正切函数,其原理示意图如下:
即以鼠标所在点与Arrow图形中心点为参考,构建一个三角形,利用对边比邻边得到正切,然后利用反正切求出角度,最终让图形旋转该角度,下面是效果:
但是好象有点问题,相信您也看出来了,因为我们绘制图形时,默认是以坐标原点为中心,而非图形中心点为中心,所以在跟随鼠标旋转时,总感觉有些错位,没关系,只要调整一下Arrow.cs即可
package
{
import
flash.display.Sprite;
public
class
Arrow
extends
Sprite {
public
function
Arrow():
void
{
init();
}
private
function
init():
void
{
graphics.lineStyle(
1
,
0
,
1
);
graphics.beginFill(
0xffff99
);
graphics.drawCircle(
0
,
0
,
2
);
//中心点
graphics.moveTo(-
75
,-
25
);
graphics.lineTo(
25
,-
25
);
graphics.lineTo(
25
,-
75
);
graphics.lineTo(
75
,
0
);
graphics.lineTo(
25
,
75
);
graphics.lineTo(
25
,
25
);
graphics.lineTo(-
75
,
25
);
graphics.lineTo(-
75
,-
25
);
graphics.endFill();
}
}
}
另一个很有用的三角函数就是正弦Sin函数--对边比斜边
当Sin函数的角度参数从0度变化到360度时,正弦函数的值会在1到-1之间来回摆动,如果在动画中需要来回振荡的情况,正弦函数就派上用场了
package
{
import
flash.display.Sprite;
//小球 类
public
class
Ball
extends
Sprite{
private
var
radius:
Number
;
//半径
private
var
color:
uint
;
//颜色
public
function
Ball(r:
Number
=
50
,c:
uint
=
0xff0000
){
this
.radius = r;
this
.color = c;
init();
}
private
function
init():
void
{
graphics.beginFill(color);
graphics.drawCircle(
0
,
0
,radius);
graphics.endFill();
}
}
}
这里我们先定义一个基本的小球类Ball,在接下来的动画里,我们让小球沿正弦轨迹运行,同时另一个小球模拟“心跳”运动(即改变大小)
var
angle:
Number
=
0
;
//参数常量
const
Y_SPEED =
0.1
;
//y轴移动速度
const
X_SPEED =
1
;
//x轴移动速度
const
AMPLITUDE =
50.0
;
//最大振幅
const
X_START =
0
;
//x轴的起始点
//变量
var
ySpeed:
Number
= Y_SPEED;
var
xSpeed:
Number
= X_SPEED;
var
amplitude:
Number
= AMPLITUDE;
var
b:Ball =
new
Ball(
5
,
0xff0000
);
addChild(b);
b.x = X_START;
var
heart:Ball =
new
Ball(
50
,
0x0000ff
);
addChild(heart);
heart.x = stage.stageWidth/
2
;
heart.y = stage.stageHeight/
2
;
heart.alpha =
0.3
;
addEventListener(Event.ENTER_FRAME,EnterFrameHandler);
function
EnterFrameHandler(e:Event){
b.y = stage.stageHeight/
2
+ Math.sin(angle) * amplitude;
angle += ySpeed;
b.x += xSpeed;
heart.scaleX = heart.scaleY =
1
+ Math.sin(angle) *
0.5
;
graphics.lineStyle(
1
,
0xefefef
,
1
);
graphics.lineTo(b.x,b.y);
//x,y,振幅 逐渐加大
xSpeed +=
0.08
;
ySpeed +=
0.003
;
amplitude +=
1
;
if
(b.x > stage.stageWidth + b.width){
//超出舞台后,还原参数
b.x = X_START;
xSpeed = X_SPEED;
ySpeed = Y_SPEED;
amplitude = AMPLITUDE;
}
}
甚至还可以同时把正弦函数应用到多个属性:
//参数常量
const
Y_SPEED =
0.07
;
//y轴变化速度
const
X_SPEED =
0.10
;
//x轴变化速度
const
AMPLITUDE =
150.0
;
//最大振幅
const
X_START = stage.stageWidth/
2
;
//x轴的起始点
const
Y_START = stage.stageHeight/
2
;
//y轴的起始点
//变量
var
ySpeed:
Number
= Y_SPEED;
var
xSpeed:
Number
= X_SPEED;
var
amplitude:
Number
= AMPLITUDE;
var
angleX =
0
;
var
angleY =
0
;
var
b:Ball =
new
Ball(
5
,
0xff0000
);
addChild(b);
b.x = X_START;
b.y = Y_START;
graphics.moveTo(b.x,b.y);
addEventListener(Event.ENTER_FRAME,EnterFrameHandler);
function
EnterFrameHandler(e:Event){
b.y = Y_START + Math.sin(angleY) * amplitude;
b.x = X_START + Math.sin(angleX) * amplitude;
angleX += xSpeed;
angleY += ySpeed;
//angleX += Math.random()/10;
//angleY += Math.random()/5;
graphics.lineStyle(
1
,
0xefefef
,
1
);
graphics.lineTo(b.x,b.y);
}
如果把代码中的二行注释启用,即让x,y的变化速度改成随机,结果可能更有趣:
发表评论
-
Flash/Flex学习笔记(50):矩阵变换
2011-04-24 13:52 1140先回顾一下Silvelright中的矩阵变换[转]WPF中的M ... -
Flash/Flex学习笔记(49):背面剔除与 3D 灯光
2011-04-24 13:50 959今天继续:上一回Flash/Flex学习笔记(50):3D线条 ... -
Flash/Flex学习笔记(48):迷你滚动条ScrollBar
2011-04-24 13:46 1038先看最终效果: 整个swf最终不到4k, ... -
Flash/Flex学习笔记(47):利用FMS快速创建一个文本聊天室
2011-04-24 13:45 963先来看客户端fla的构成: 第一帧:登录界面 第一帧的 ... -
Flash/Flex学习笔记(46):使用TweenLite
2011-04-24 13:43 1651TweenLite是第三方出品的专用于各种缓动动画的类库,其性 ... -
Flash/Flex学习笔记(45):3维旋转与透视变换(PerspectiveProjection)
2011-04-24 13:41 1186Flash/Flex学习笔记:3D基础 里已经介绍了3D透 ... -
Flash/Flex学习笔记(44):3D线条与填充
2011-04-24 13:39 10753D线条:把上一篇中的3D坐标旋转示例稍做修改,用线把各个 ... -
Flash/Flex学习笔记(43):3D基础
2011-04-24 13:34 1115之前我们所做的动画都 ... -
Flash/Flex学习笔记(42):反向运动学(下)
2011-04-24 13:30 901先要复习一下三角函数与余弦定理: 对于直角三角形,三边长 ... -
Flash/Flex学习笔记(41):反向运动学(上)
2011-04-24 13:29 914先回顾上篇所说的"正向运动学":以人行 ... -
Flash/Flex学习笔记(40):正向运动学
2011-04-24 13:27 859所谓"正向运动学"通俗点讲就是把几个连接部 ... -
Flash/Flex学习笔记(39):万有引力与粒子系统
2011-04-24 13:26 706万有引用公式: 其中G为万有引力常数 var numP ... -
Flash/Flex学习笔记(38):动量守恒与能量守恒
2011-04-24 13:24 916动能公式: 动量公式: 动量守恒: 能量守恒: ... -
Flash/Flex学习笔记(37):坐标旋转
2011-04-24 13:23 996坐标旋转是个啥概念呢? 如上图,(蓝色)小球 绕某一 ... -
Flash/Flex学习笔记(36):碰撞检测
2011-04-24 13:22 586碰撞检测基本上可能分为二类:对象与对象的碰撞检测、对象与点 ... -
Flash/Flex学习笔记(35):弹性运动续--弹簧
2011-04-24 13:21 736上一篇里演示的弹性运动加上摩擦力因素后,物体最终基本上都会比较 ... -
Flash/Flex学习笔记(34):弹性运动
2011-04-24 13:20 749动画中的弹性运动 从视觉效果上接近 物理经典力学中的单摆运 ... -
Flash/Flex学习笔记(33):缓动动画
2011-04-24 13:18 977缓动 与 匀变速 看上去很类似,但其实有区别: 匀变速的 ... -
Flash/Flex学习笔记(32):不用系统组件(纯AS3)的视频播放器--只有8.82K
2011-04-24 13:17 1245以前为了赶项目,利用系统组件制作过一款视频播放器(见Fla ... -
Flash/Flex学习笔记(31):自己动手实现一个滑块控件(JimmySilder)
2011-04-24 13:15 939先看最终的演示: 滑块条的应用实在太广泛了:mp3播放器中声 ...
相关推荐
flash/flex画曲线,绘图板,用代码实现的个画曲线功能,类绘图板,可下载看看,不错的学习案例。
附件是关于 Flash/Flex 几个重要框架 Cairngorm、Mate、PureMVC以及Swiz 的典型例子,由 Tony Hillerson 提供 Homepage: http://insideria.com
flex/Flash开发系列书籍:基于FLASH的WEB3D应用研究
flex画线flex画线flex画线flex画线
Flex学习笔记Flex学习笔记Flex学习笔记Flex学习笔记Flex学习笔记
flash/flex 的aqua皮肤.类似苹果系统
语言:C ++许可证:BSD-3代码质量:A + https://lgtm.com/projects/g/Genivia/RE-flex/context:cpp文档:https://www.genivia.com/doc/reflex/html /index.html存储库:https://github.com/Genivia/RE-flex更改日志...
flex画线可以删除flex画线可以删除flex画线可以删除
FDT-flash/flex devtoolkit for eclipse. for最新版的 FDT 3.5 beta2
最近开始学习Flex,其中用到了AS,AS2到AS3发生了很大的变化,完全的面向对象,知道这个特点以后我也一直没有特意的好好去学学AS3,但是随着最近学习的深入,还是有必要学习一下
来自《潮汕IT男》网站的文章《解决flash/flex/as3 访问中文域名时的流错误》代码示例,地址:http://chenlinsheng.com/?p=990
flex学习笔记 flex学习笔记 flex学习笔记 flex学习笔记 flex学习笔记 flex学习笔记
NULL 博文链接:https://summerbell.iteye.com/blog/359226
//uploadAction:处理上传文件的网页 //uploadParam:处理上传文件的网页所接收的参数 //ItemDate:单个文件大小控制,单位是字节 //TotalDate:一次上传的文件总大小控制,单位是字节 ...//funSelected:js回调函数
这是作者自己亲自编写的教程,里面包含的有图解教程,各式jar,及配置文件,全部包含在内,如果你是一个决定学习flex初学者,我敢保证它肯定适合你!带上你走上flex开发旅途!
一.flex2的全屏代码 在仅仅使用Flex Builder2(我下载的是FLXB_2.0_Win_WWE.exe)的时候,写全屏代码竟然找不到flash.display.StageDisplayState,于是下载了Flex 2.0.1升级包(官方地址:...(参考:...
NULL 博文链接:https://as3.iteye.com/blog/1134453
第一阶段(2周左右每天至少4个小时):入门 目标是:做简单的demo....参考书:Flex 入门教程http://www.5uflash.com/Flex-AIR/Flexziliao/17.html flex入门介绍:http://download.csdn.net/source/452847
总共有4个例子: 1.http://127.0.0.1:8080/flexDemo/HelloWorld/HelloWorld.html ...如果你的数据库配置和我的不一样,请修改flexDemo\WEB-INF\classes\下的DBSetting.properties文件,数据库建表的sql语句是user.sql