![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Flash/Flex学习笔记
文章平均质量分 69
xiaohulihuhu
这个作者很懒,什么都没留下…
展开
-
Flash/Flex学习笔记(50):矩阵变换
先回顾一下Silvelright中的矩阵变换[转]WPF中的MatrixTransform,简单点讲:矩阵变换能改变对象的x,y坐标,x或y方向上的缩放,以及对象在x,y轴上的旋转(扭曲变形)上面这个是WPF/Silverlight中的3*3变换矩阵,其中X,Y用于改变对象的坐标;M11,M22用于对象在x,y轴上的缩放;而M12,M21用于y轴,x轴上的扭曲。 As3.0中的Ma...原创 2011-04-24 13:52:44 · 93 阅读 · 0 评论 -
Flash/Flex学习笔记(36):碰撞检测
碰撞检测基本上可能分为二类:对象与对象的碰撞检测、对象与点的碰撞检测为了方便测试,先写一个box类(生成一个小矩形)package { import flash.display.Sprite; public class Box extends Sprite { private var w:Number; private var h:Number; privat...原创 2011-04-24 13:22:23 · 138 阅读 · 0 评论 -
Flash/Flex学习笔记(35):弹性运动续--弹簧
上一篇里演示的弹性运动加上摩擦力因素后,物体最终基本上都会比较准确的停在目标位置。但是我们回想一下现实世界中的弹簧,如果把弹簧的一头固定起来(即相当于目标点),而另一端栓一个球,把球拉开或压缩一定距离然后松手,事实上小球永远也不可能到达弹簧固定的那一端(因为弹簧即使压缩到最紧,也总有一定的长度)所以如果要在Flash里模拟现实中的弹簧,真正的目标点绝不是弹簧的端点,而是目标点再偏移一段距离(即...原创 2011-04-24 13:21:10 · 135 阅读 · 0 评论 -
Flash/Flex学习笔记(34):弹性运动
动画中的弹性运动 从视觉效果上接近 物理经典力学中的单摆运动或弹簧(胡克定律F=Kx)振动先看下面的模拟演示:规律: 小球先从出发点(初始为最左侧)向目标点(中心点)加速狂奔,奔的过程中速度越来越大,但加速度越来越小,等经过目标点时,发现速度太大刹不住车(此时速度达到最大值,但加速度减为0),奔过头了!于是加速度发生逆转,从0开始变为负值,从而导致速度越来越小,等速度减到0时,也奔到了...原创 2011-04-24 13:20:07 · 114 阅读 · 0 评论 -
Flash/Flex学习笔记(33):缓动动画
缓动 与 匀变速 看上去很类似,但其实有区别:匀变速的公式为 V = V0 + at --速度v与时间t是线性(正比)关系,而且这种运动不需要确定目标点,速度可以按照这种规律一直变下去而缓动指的是物体越接近目标时速度越慢,速度跟距离成反比关系,用公式描述为 V = k S (0<k<1),这种运动需要先确定一个目标点,比如车辆定点停车:先指定一个位置,然后汽车从远处开过来...原创 2011-04-24 13:18:56 · 88 阅读 · 0 评论 -
Flash/Flex学习笔记(32):不用系统组件(纯AS3)的视频播放器--只有8.82K
以前为了赶项目,利用系统组件制作过一款视频播放器(见Flash/Flex学习笔记(6):制作基于xml数据源的flv视频播放器),但是系统组件实在是太大了,最终生成的swf居然有103K,随着AS3的深入学习,昨天又弄了一个只用AS3的播放器,最终只有8.82K,呵呵,这肥减得那是相当厉害。用到了上一篇(Flash/Flex学习笔记(35):自己动手实现一个滑块控件(JimmySilder...原创 2011-04-24 13:17:58 · 112 阅读 · 0 评论 -
Flash/Flex学习笔记(31):自己动手实现一个滑块控件(JimmySilder)
先看最终的演示:滑块条的应用实在太广泛了:mp3播放器中声量的大小控制,视频播放时的画面亮度调节,阅读新闻时字体大小的实时调整,对象的大小互动控制...分析:1.任何一个滑块条控件的UI部分,基本上可以分为:背景滑块条 + 滑块按钮 二个部分所以我分成了三部分: JimmySilderBar(背景条),JimmySilderButton(拖动钮),JimmySilder(真正的滑动...原创 2011-04-24 13:15:32 · 100 阅读 · 0 评论 -
Flash/Flex学习笔记(30):如何正确监听Stage对象的事件
如果想在一个自定义类中注册对stage对象的监听事件,然后在另一个文档类中使用该类的实例(或在fla的时间轴上使用该类的实例),你会很郁闷的发现:在构造函数中始终无法引用到this.stage(用trace(this.stge)会一直返回null),既然引用都得不到,当然也就无法注册事件了,正确的做法如下:package{ import flash.display.Sprite; i...原创 2011-04-24 13:13:06 · 109 阅读 · 0 评论 -
Flash/Flex学习笔记(29):如何用As3协同Flash CS IDE控制MovieClip实例
AS3历经若干年的成长,已经完全进化为一门面向对象的(动态)语言,但很多介绍AS3的书籍上往往只注意了AS3语言本身,而淡化了如何跟Flash IDE协同开发。1.如何在Flash时间轴代码上创建一个外部as文件中定义的MovieClip实例?假设外部有一个MyClip.as文件,内容如下:package { import flash.display.MovieClip; ...原创 2011-04-24 13:11:13 · 92 阅读 · 0 评论 -
Flash/Flex学习笔记(28):播放音乐并同步显示lyc歌词(适用于Silverlight)
题外话:个别朋友总是问我同样的问题,做为一名c#/silverlight程序员为啥还要学flash ?回 答:看日本片时,就不能对照看欧美的么? 不体会日本的细腻,又怎能感觉到欧美的粗放;同样都是web相关的技术,不必报门户之见;何况这二者有很多可以相互借鉴的东西。注:这个例子来自[FL车在臣](在blueidea上又名“寂寞火山”)翻译的“Animation in ActionScrip...原创 2011-04-24 13:08:24 · 92 阅读 · 0 评论 -
Flash/Flex学习笔记(27):对象拖拽与投掷
对象拖拽:这其实就是以前所学知识:Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag) + Flash/Flex学习笔记(23):运动学原理 的综合运用,要提一下的是下面代码中对于EnterFrame的添加与移除操作package { import flash.display.Sprite; import flash.display.StageA...原创 2011-04-24 13:06:59 · 92 阅读 · 0 评论 -
Flash/Flex学习笔记(37):坐标旋转
坐标旋转是个啥概念呢?如上图,(蓝色)小球 绕某一中心点旋转a角度后,到达(红色)小球的位置,则红色小球相对中心点的坐标为:x1 = dx * cos(a) - dy * sin(a)y1 = dy * cos(a) + dx * sin(a) 这个就是坐标旋转公式,如果要反向旋转,则公式要修正一下,有二种方法:1.将a变成-a,即:x1 = dx * cos(-a...原创 2011-04-24 13:23:35 · 144 阅读 · 0 评论 -
Flash/Flex学习笔记(38):动量守恒与能量守恒
动能公式:动量公式:动量守恒:能量守恒: 根据这些规律可以得到下列方程组:解该方程组,得到下面的公式:把这二个公式相减,可以得到:即:我们也经常利用这个公式简化运算基本的动量守恒演示:先给ball类添加一个质量"属性" package { import flash.display.Sprite; //小球 类 ...原创 2011-04-24 13:24:43 · 231 阅读 · 0 评论 -
Flash/Flex学习笔记(39):万有引力与粒子系统
万有引用公式:其中G为万有引力常数var numParticles:uint=50;//粒子总数 var G:Number=0.03;//万有引力常数 var particles:Array=new Array(numParticles); var bounce:Number=-0.4;//边界反弹系统 //初始化 function init():void {...原创 2011-04-24 13:26:00 · 138 阅读 · 0 评论 -
Flash/Flex学习笔记(49):背面剔除与 3D 灯光
今天继续:上一回Flash/Flex学习笔记(50):3D线条与填充 里,我们知道任何一个3D多面体上的某一个面,都可以分解为多个三角形的组合。比立方体为例,每个面都由二个三角形组成,但在那一篇的示例中明显有一个问题:不管立方体的某一个面是不是应该被人眼看见(比如转到背面的部分,应该是看不见的),这一面都被绘制出来了。 在这一篇的学习中,我将带大家一起学习如何将背面(即看不见的面)删除掉,...原创 2011-04-24 13:50:12 · 124 阅读 · 0 评论 -
Flash/Flex学习笔记(48):迷你滚动条ScrollBar
先看最终效果:整个swf最终不到4k,如果用系统的组件List来做的话,最终尺寸会接近30k ! (当然,核心代码是从网上收集到的:)) 大致原理:把要显示的对象上面加一层遮罩,然后根据滚动条的位置,上下移动显示对象。 源文件:http://cid-2959920b8267aaca.skydrive.live.com/self.aspx/Flash/mi...原创 2011-04-24 13:46:41 · 76 阅读 · 0 评论 -
Flash/Flex学习笔记(47):利用FMS快速创建一个文本聊天室
先来看客户端fla的构成:第一帧:登录界面第一帧的代码: import flash.events.MouseEvent; import com.adobe.utils.StringUtil; import utils.Alert; stop(); ...原创 2011-04-24 13:45:06 · 133 阅读 · 0 评论 -
Flash/Flex学习笔记(46):使用TweenLite
TweenLite是第三方出品的专用于各种缓动动画的类库,其性能据说已经超过了Adobe官方的Tween.从网上找到了一篇中文的说明文档:http://files.cnblogs.com/yjmyzz/tweenLite%e4%b8%ad%e6%96%87%e6%89%8b%e5%86%8c%e4%b8%8e%e5%8f%82%e6%95%b0%e8%af%b4%e6%98%8e.pdf这...原创 2011-04-24 13:43:48 · 138 阅读 · 0 评论 -
Flash/Flex学习笔记(45):3维旋转与透视变换(PerspectiveProjection)
Flash/Flex学习笔记:3D基础 里已经介绍了3D透视的基本原理,不过如果每次都要利用象该文中那样写一堆代码,估计很多人不喜欢,事实上AS3的DisplayObject类已经内置了z坐标、rotationX、rotationY、rotationZ属性,再加上PerspectiveProjection类用于处理透视转换,基本上可以满足大多数的3D要求。 import flash.eve...原创 2011-04-24 13:41:59 · 165 阅读 · 0 评论 -
Flash/Flex学习笔记(44):3D线条与填充
3D线条:把上一篇中的3D坐标旋转示例稍做修改,用线把各个小球连接起来即可。var balls:Array; var numBalls:uint=30; var fl:Number=250; var vpx:Number=stage.stageWidth/2; var vpy:Number=stage.stageHeight/2; function init()...原创 2011-04-24 13:39:28 · 122 阅读 · 0 评论 -
Flash/Flex学习笔记(43):3D基础
之前我们所做的动画都是基于x,y二维坐标轴的,在三维动画中我们还需要增加一个垂直于屏幕“向里”或“向外”的Z轴,那么z轴到底是应该向外,还是向里呢?这个其实无所谓,不过为了统一,习惯上通常把z轴约定为向里,即所谓的“右手坐标系”右手坐标系的得名:伸出右手,让食指、中指、大拇指相互垂直;然后 食指指向x轴正向,中指指向y轴正向,则大拇指所指方向即为z轴正向。(事实上这个姿势酷似周杰伦周董的招...原创 2011-04-24 13:34:32 · 130 阅读 · 0 评论 -
Flash/Flex学习笔记(42):反向运动学(下)
先要复习一下三角函数与余弦定理:对于直角三角形,三边长a,b,c与三个角A,B,C的关系如下:正弦函数:余弦函数:正切函数:反正切函数:(好象现在的教科书里改叫“余切”函数) 或 勾股定律:但对于不是直角的三角形,就必须用余弦定律来处理了:利用余弦定理也可以处理反向运动学中的伸展:上面这个是示意图(花了我...原创 2011-04-24 13:30:08 · 123 阅读 · 0 评论 -
Flash/Flex学习笔记(41):反向运动学(上)
先回顾上篇所说的"正向运动学":以人行走的例子来说,基本上可以理解为大腿驱动小腿,小腿驱动脚,从而引发的一系列姿态调整和运动。再举一个例子,我们用着拿一根软鞭或链条的一端挥舞,被手挥舞的这一端会把"能量"向另一端传递(即固定端驱动紧接的部分,而紧接的部分又驱动下一段紧接的部分),从而使整个系统也随之运动.而"反向运动学"正好相反,举个不恰当的例子,小时候估计很多人玩过“死”青蛙(之所以要说...原创 2011-04-24 13:29:23 · 174 阅读 · 0 评论 -
Flash/Flex学习笔记(40):正向运动学
所谓"正向运动学"通俗点讲就是把几个连接部件的一端固定起来,另一个端可以自由(向前/向外)运动。比如人的行走,单个下肢可以理解为脚连接小腿,小腿连接大腿,大腿连接腰。行走的过程,相当于二条腿相对固定于腰部,大腿运动驱动小腿,小腿又驱动脚,从而带动整个连接系统的一系列运动。先来一个基本的关节类Segment:(就是一个圆角矩形+二个小圆圈)package { import flash....原创 2011-04-24 13:27:40 · 92 阅读 · 0 评论 -
Flash/Flex学习笔记(26):不用startDrag和stopDrag的对象拖动
对于从Sprite类继承来的对象,要实现拖放当然是Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag) 里讲的方法最方便,但是对于不是从Sprite类继承得来的对象,这startDrag/stopDrag是不能用的,这时候只能采用最通常用做法:利用Mouse_Down,Mouse_UP,Mouse_Move事件来处理注意:对象的Mouse_Move事件,只...原创 2011-04-24 13:05:59 · 103 阅读 · 0 评论 -
Flash/Flex学习笔记(25):MovieClip帧/时间轴的控制
在开发过程中,经常会遇到要从一个界面跳到另一个界面的情况,比如:软件中的窗口跳转,web开发中的页面跳转...但在Flash的世界里:只有帧,没有窗口与页面,所以控制时间轴/帧之间的跳转,就成为这一需求最常见的解决办法 btn1.addEventListener(MouseEvent.MOUSE_DOWN,function(){md.gotoAndPlay(1);}); btn2.addE...原创 2011-04-24 13:05:03 · 100 阅读 · 0 评论 -
Flash/Flex学习笔记(11):对象拖动(startDrag/stopDrag)
Flash中只有影片MovieClip(准确的讲是Sprite)可以调用startDrag,endDrag,创建对象拖动最简单的办法只要调用这二个方法即可myobj.addEventListener(MouseEvent.MOUSE_DOWN,pickup); myobj.addEventListener(MouseEvent.MOUSE_UP,place); function pi...原创 2011-04-24 11:06:38 · 274 阅读 · 0 评论 -
Flash/Flex学习笔记(10):FMS 3.5之如何做视频实时直播
硬件条件:一个摄像头 + 一台FMS服务器即可原理:摄像头实时采集视频源,然后推送到FMS服务器,其它客户从FMS上获取视频流。需要做二个fla,一个用于向FMS服务端推送视频源(即发送端),一个用于从FMS服务器获取并播放视频(即接收端)Server.fla关键代码:var cam:Camera; var vod:Video; var intervalId:uint; ...原创 2011-04-24 11:02:45 · 137 阅读 · 0 评论 -
Flash/Flex学习笔记(9):FMS 3.5之Hello World!
Adobe的FMS真的是一个倍儿牛叉的技术!(至少Silverlight在"实时广播"方面目前还没有任何能超越FMS的迹象)曾经盛极一时的tudou,ku6,第一视频...等一大堆视频分享类网站,几乎都使用的是Adobe的FMS技术.今天先来做一个最简单的Hello World(例子出自FMS的官方文档)1.先创建一个FMS应用HelloWorld进入FMS的默认安装目录: C...原创 2011-04-24 10:58:41 · 101 阅读 · 0 评论 -
Flash/Flex学习笔记(8):ActionScript3.0与Javascript的相互调用
原理跟Silverlight中的几乎如出一辙(见Silverlight如何与JS相互调用):ActionScript3代码:btnCallJs.addEventListener(MouseEvent.CLICK,fnCallJs); function fnCallJs(e:MouseEvent):void { trace("准备调用..."); //调用js中的JsHel...原创 2011-04-24 10:55:47 · 99 阅读 · 0 评论 -
Flash/Flex学习笔记(7):ActionScript3.0中的面对对象
首先要习惯AS3.0的几个BT约定:1.一个.as文件中,只能定义一个类 2.类名称必须与.as的文件名相同 3.类定义中必须要有package包声明 4.一个类最多只能有一个构造函数5.包package的路径/名称约定:这个初次接触时感觉有点小复杂,这样描述吧:如果您在定义一个类时,package的声明指定了名称,比如 package jimmy{ public class ...原创 2011-04-24 10:46:26 · 89 阅读 · 0 评论 -
Flash/Flex学习笔记(6):FMS3.5基于IIS的安装
一般来讲,在windows上安装软件从来都不是什么难事儿,但FMS却在安装过程中"充满"了误导(好吧,其实也就是夸张的说法而已)1.下载FMS3.5http://www.adobe.com/products/flashmediainteractive/?promoid=DJDTG这上面有一个免费开发版(除了连接数有限制,其它功能完全一样)2.一路Next安装注意:不要勾选安装A...原创 2011-04-24 10:36:41 · 78 阅读 · 0 评论 -
Flash/Flex学习笔记(5):制作基于xml数据源的flv视频播放器
步骤:1.Flash CS4 中 先拖一个"FLVPlayback"组件到舞台上注:FLVPlayback本身已经具备了flv播放的基本功能,简单设置下属性就能播放视频了 2.加载xml数据源xml数据源格式如下: <?xml version="1.0" encoding="utf-8"?> <data> <item flv="fl.原创 2011-04-24 10:35:06 · 142 阅读 · 0 评论 -
Flash/Flex学习笔记(4):如何打开网页及Get/Post数据
flash终究只是客户端技术,所以很多时候还是需要与服务端技术(比如asp,asp.net,jsp,php之类)进行数据交互的,下面的代码演示了如何在flash中打开网页,以及用GET/POST二种方式向服务端发送数据 //按下按钮,打开网页 btnOpen.addEventListener(MouseEvent.CLICK, function(){ navigateToU...原创 2011-04-24 10:30:07 · 153 阅读 · 0 评论 -
Flash/Flex学习笔记(3):动态添加组件
Flash中一个fla文件可以关联到一个as文件,这个有点类似于asp.net中的code behind.可参考以下图操作: 注: 1.as文件的类名与文件名要求一样,并且默认情况下必须与fla处于同一目录。 2.所有as文件必须继承自flash.display.Sprite下面这个是一个示例文件代码:package { import flash.display.Sp...原创 2011-04-23 22:48:29 · 114 阅读 · 0 评论 -
Flash/Flex学习笔记(2):捕获摄像头
Flash中使用摄像头,个人感觉比silverlight要更容易时间轴第一帧上敲以下代码就可以了://import fl.controls.Label; //var camera:Camera = Camera.getCamera(); //trace(camera==null?"未检测到摄像头":"已安装了摄像头"); var W:...原创 2011-04-23 22:41:51 · 100 阅读 · 0 评论 -
Flash/Flex学习笔记(12):FMS 3.5之远程共享对象(Remote Shared Object)
FMS中的“远程共享对象”可以让多个Client端的flash应用共享同一个全局对象,并且当客户端中的任何一个改变该对象时,系统会自动将该对象回发到FMS服务器,同时FMS服务器也会将该对象重新广播到所有客户端。说得更通俗一点:如果二个机器上浏览这种flash应用,在一台机器上所做的操作,将会在另一台机器同步体现出来。这个能干嘛? 电子教室(比如老师在一台机器上演示教学,其它所有机器上...原创 2011-04-24 11:08:04 · 92 阅读 · 0 评论 -
Flash/Flex学习笔记(13):如何做自定义Loading加载其它swf
const FILE_PATH:String="main.swf"; const CLASS_NAME:String="MainSwf"; var loader:Loader; var request:URLRequest; loader = new Loader(); request=new URLRequest(FILE_PATH); loader.cont...原创 2011-04-24 11:40:45 · 100 阅读 · 0 评论 -
Flash/Flex学习笔记(14):按键捕获
先来看简单的单个按键捕获: package { import flash.display.Sprite; import fl.controls.Label; import flash.events.KeyboardEvent; import flash.ui.Keyboard; public class KeyDown extends Sprite { pr...原创 2011-04-24 11:56:33 · 84 阅读 · 0 评论 -
Flash/Flex学习笔记(24):摄像头/麦克风的视频/音量指示器
在一些实时视频或视频分享应用中,需要动态显示麦克风的音量大小,或者检测视频是不是正在播放,这里演示一种简单的音量指示器 1.先写一个指示器类其实就是一个根据百分比来填充的矩形 package { import flash.display.Sprite; //音量指示器(by 菩提树下的杨过 http://yjmyzz.cnblogs.com/) public class I...原创 2011-04-24 13:04:15 · 100 阅读 · 0 评论