随笔分类 - 12.Flex/Flash/AS3.0

摘要:本周听到公司其它项目组同事在讨论一个小需求:给定3个点(其实是飞机经过的航站,比如:从浦东-西安-北京),在UI上生成一段曲线,用来示意飞机的路线图(其实用直线我觉得也能将就,反正只是示意,只是大家觉得直线太out,不美观),晚上无事,尝试了一下:有二个方案:1、椭圆(很快被自己给否定了,椭圆的标准方程 (x-m)^2/(a^2) + (y-n)^2/(b^2)=1,有m,n,a,b 四个未知数,3个点无法唯一确定,如果把圆心定在页面中心,理论上可以解决,但是开平方也是比较繁琐的)2、贝塞尔曲线根据:(贝塞尔曲线)喂鸡百科的解释:二次标准方程为:正好以前在学习flash时也研究过,所以决定用它 阅读全文
posted @ 2012-11-24 20:20 菩提树下的杨过 阅读 (5189) | 评论 (1) 编辑
摘要:先看效果:(这个只是原型,简陋了点)功能:双击图片或拖动右侧的滑块可实现图片的放大,鼠标按下不放可平移图片。应用场景:目前各地铁、医院、大型商场、机场均有单点触摸查询屏,用这个功能可以实现用户的简单自助地图导航。技术含量:这个,真木有!唯一要注意的是,flash中任何物体的"基准注册点"均为左上角的顶点,且没办法修改(注:所谓基准点是指不论是缩放,还是旋转,都是以这个点为参考原点。)这个很不爽,直接影响放大效果,那么本示例中的“以中心为基点放大”是如何实现的呢?请参看Flash/Flex学习笔记(51):3维旋转与透视变换(PerspectiveProjection)一文中 阅读全文
posted @ 2011-04-23 20:30 菩提树下的杨过 阅读 (6858) | 评论 (2) 编辑
摘要:关于flex中动态加载Module的文章,网上有很多,但多半是基于flex3的,如果在flash builder/flex4中按他们所提供的方法去做,最后将module加载到容器中时,会报:null object reference错误。经过多番摸索,发现只能在ready回调中,以Object这种基本类型使用,不能强制做任何类型转型,方能正常加载到容器,并与加载后的实例交互(虽然这样flash builder的IDE环境中,无法智能代码提示),原因不明!开始吧,先创建一个mxml Module,命名为:MyModule.mxml<?xml version="1.0" 阅读全文
posted @ 2011-04-10 20:12 菩提树下的杨过 阅读 (5702) | 评论 (4) 编辑
摘要:flex4中推荐使用spark组件来布局,所以在工具箱里把HDividedBox,VDividedBox这二个非常有用的东东给隐藏掉了,只能手动在source视图下手动写标签,如下:<?xml version="1.0" encoding="utf-8"?><s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" xmlns:s="library://ns.adobe.com/flex/spark" xmlns:mx="library 阅读全文
posted @ 2011-04-07 10:52 菩提树下的杨过 阅读 (4759) | 评论 (0) 编辑
摘要:用iphone或itouch登录过微薄的同学们想必都会发现:登录一些手机版网站(比如微薄时),表单中的输入框会自动放大,以方便用户输入,等输入完成后,页面会再次缩小到正常状态。在flex开发过程中,有时也会遇到一些输入项很多的表单,可以借鉴iphone上的这种体验,基本思路就是:将整个容器放大,以适应屏幕,然后将获得焦点的文本框定位到屏幕中央。下面是演示:当UserName与PassWord文本框获得焦点时,表单(其实就是panel)会自动放大,并重新定位,最终将获得焦点的文本框定位在屏幕中央,以方便输入。点击checkbox或login按钮时,会恢复正常大小。主要代码:<?xml ve 阅读全文
posted @ 2011-04-06 21:03 菩提树下的杨过 阅读 (1514) | 评论 (7) 编辑
摘要:前几天看到有园友写了一篇“ flash查看对方qq是否在线 ”,正好今天有一个朋友搞flash全站,想使用这个功能,但是有些小要求,点击图标后,要求弹出QQ对话框,于是改进了一下:package { import flash.display.Sprite; import flash.events.Event; import flash.events.MouseEvent; import flash.globalization.StringTools; import flash.net.URLRequest; import flash.net.navigateToURL; import flas 阅读全文
posted @ 2011-03-31 16:00 菩提树下的杨过 阅读 (1733) | 评论 (2) 编辑
摘要:如题,在FluorineFx的实时视频交互应用中,如果页面长时间不动,可能会导致flash中的NetConnection对象断开连接,其原因我没有深入研究,不过应该能猜出大概(以下结论未必证实,不保证一定正确):FluorineFx是做为一个HttpModule而嵌入asp.net网站中的,如果长时间不动,页面与服务器之间的session过期可能会导致FluorineFx与客户端的连接也一并关闭。解决办法:在嵌入flash的页面中,随便用ajax定时(比如每5分钟)服务端随便发点数据过去(哪怕只是一个字符也行),以证明自己还活着。另外在使用中还发现一个现象:通常我习惯于把FluorineFx的 阅读全文
posted @ 2011-03-16 23:27 菩提树下的杨过 阅读 (1098) | 评论 (3) 编辑
摘要:俗话说:拳不离手,曲不离口。学过的技能不用,放长了就生疏了,今天以前的同事问我:用户改变浏览器窗口尺寸时,flash中的图片如何重新定位于4个角上。花了近一刻钟才回忆想来:stage有Resize事件,呵呵代码如下:1.先把加载图片的逻辑封装一下package { import flash.display.Sprite; import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLRequest; import flash.events.Event; import flash.display 阅读全文
posted @ 2011-03-12 15:10 菩提树下的杨过 阅读 (2013) | 评论 (6) 编辑
摘要:注:AVM的GC机制确实有些诡异,不象CLR可以通过GC.Collect()显示调用,中午在天地会闲逛时,发现了下面的这二个方法,转载一下原文:http://bbs.9ria.com/viewthread.php?tid=24027&extra=page%3D1%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D12&page=1方法1:方法2:测试代码:通过System.totalMemory的结果可以清楚的看到内存得以释放,window任务管理器也能够看到有变化哦,原理也可能和异常有点关系. 阅读全文
posted @ 2010-12-09 13:50 菩提树下的杨过 阅读 (3112) | 评论 (0) 编辑
摘要:原文:http://www.flashrealtime.com/multicast-explained-flash-101-p2p/,讲解单播、多播不可多得的好文章,转载防被“墙”掉Multicast is one of the features of Flash Player 10.1 and it enables you to distribute NetStreams... 阅读全文
posted @ 2010-11-30 14:22 菩提树下的杨过 阅读 (1199) | 评论 (0) 编辑
摘要:原文:http://www.flashrealtime.com/p2p-groupspecifier-explained-1/转过来防止被墙掉If you’ve tried my tutorial on creating a simple chat using P2P NetGroup in Flash Player 10.1, you might have been wonderin... 阅读全文
posted @ 2010-11-30 14:05 菩提树下的杨过 阅读 (679) | 评论 (0) 编辑
摘要:这其实是http://www.flashrealtime.com/file-share-object-replication-flash-p2p/中关于文件分享示例的改版,原文示例是基于flex的,我改成flash版本了(大致原理与上一篇完全相同):有三个基本类:1、P2PSharedObject.as 用于定义要分享的(图片)数据类2、LocalFileLoader.as 用于浏览本地图片并加载... 阅读全文
posted @ 2010-11-30 10:09 菩提树下的杨过 阅读 (2627) | 评论 (0) 编辑
摘要:在fms4以前Adobe只允许在stratus中才能使用p2p功能。令人高兴的是,在最新发布的fms4中,p2p功能已经集成进来了,这将给实时视频类的应用带来更高的效率,adobe这次很给力!为了使用p2p,开发用的flex sdk至少要4.1以上(当然最高版本是代号为hero的4.5版本,可从adobe的官网下载),另外还需要fms4(同样可从adobe官网下载开发版本)。先上完整代码吧:在这段... 阅读全文
posted @ 2010-11-25 21:43 菩提树下的杨过 阅读 (5366) | 评论 (6) 编辑
摘要:一篇很不错的讲解"利用flash player 10.1中的p2p特性实现文件共享"的文章,为防止原文被墙掉,转载于此,原始出处:http://www.flashrealtime.com/file-share-object-replication-flash-p2p/Object ReplicationObject Replication is the most lowest-level P2P ... 阅读全文
posted @ 2010-11-25 14:15 菩提树下的杨过 阅读 (2430) | 评论 (0) 编辑
摘要:很多网站在上传用户头象时,除了传统方式上传外,都支持在线摄像头拍照并做简单编辑,完成之后再将图象数据提交到服务端(比如ASP.Net),这几天正好需要这个功能,研究了下,思路如下:1、先获取摄像头视频2、利用BitmapData.draw来对视频截图3、在截图上,放一个方块允许用户手动调整位置,同时允许截图做缩放4、用户调整完成后,对指定区域的BitmapData做copyPixes处理(即拷贝指... 阅读全文
posted @ 2010-10-19 10:31 菩提树下的杨过 阅读 (4329) | 评论 (15) 编辑
摘要:转自: http://blog.sina.com.cn/s/blog_49b35d540100aks4.html ColorMatrixFilter--颜色矩阵滤镜(flash.filters.ColorMatrixFilter) 在颗粒等级上提供给你更好的控制方法。ColorMatrixFilter为 4行5列的多维矩阵(20个元素的数组)。图1是与ColorMatrixFilter等同的矩阵:... 阅读全文
posted @ 2010-10-16 08:05 菩提树下的杨过 阅读 (2916) | 评论 (0) 编辑
摘要:晚上在逛天地会时,看到一个关于TweenLite的示例,觉得蛮实用的,整理了一下偷过来:)注:播放完后,鼠标猛击胸部即可重放:)思路点评:刚开始看到这个效果时,觉得应该蛮复杂的,后来看了代码之后,发现居然如此简单! 关键:先加载一张完整的图片,然后利用BitmapData的copyPixels功能,把每个小块的像素copy出来,形成一系列新的BitmapData(也就是一块块小图片),然后再利用T... 阅读全文
posted @ 2010-09-22 20:21 菩提树下的杨过 阅读 (2829) | 评论 (15) 编辑
摘要:如果不考虑安全因素(指任何人都可连接FluorineFx进行视频录制,而不需要登录认证),其实服务端不用写一行代码,仅需要在apps目录下建一个子目录当作应用,以及在services-config.xml中配置一下rtmp的Channel即可下面这段flash客户端的as3代码,是从FluorineFx官方的Flash AS2示例修改而来的(当然:只一个示例,细节还有很多可优化的地方)界面:示例源... 阅读全文
posted @ 2010-09-04 10:57 菩提树下的杨过 阅读 (2794) | 评论 (1) 编辑
摘要:对认证与授权没啥概念的新同学,建议先看下 .net中的认证(authentication)与授权(authorization),然后再继续。Flash/Flex在通过FluorineFx调用.Net中的方法时,同样也会遇到认证与授权问题,即:“是否随便一个阿猫阿狗都能来调用我的方法?”或者可以理解为:“调用我的方法前是否需要登录?” 这就是认证&ld... 阅读全文
posted @ 2010-08-30 21:30 菩提树下的杨过 阅读 (1998) | 评论 (7) 编辑
摘要:在前一篇“FluorineFx:远程共享对象(Remote SharedObjects)”里,已经大致知道了在FluorineFX中如何使用RSO,这一篇将利用RSO完成一个简单的文本聊天室。原理:RSO对象中,创建二个属性:msg和online,分别用来保存"用户每次发送的聊天内容"以及"在线用户列表"运行截图:服务端代码:ChatApplication.csFlash客... 阅读全文
posted @ 2010-08-28 17:52 菩提树下的杨过 阅读 (1126) | 评论 (0) 编辑
摘要:原文:http://uh.9ria.com/space.php?uid=68483&do=blog&id=5786 在很多论坛上看到了有人抱怨Flash CS5中,代码提示(Code hint)有时不显示的问题,这个问题可能有很多原因,我整理了几个解决办法,有可能可以帮助到你~1. 关于代码提示的快捷键,默认是Ctrl+Spacebar,但是在大部分中文用户的机器上,这是切换输入法... 阅读全文
posted @ 2010-08-26 19:28 菩提树下的杨过 阅读 (1377) | 评论 (1) 编辑
摘要:单纯从客户端上来看,FluorineFx的RSO跟FMS中的RSO几乎没什么不同(参见Flash/Flex学习笔记(15):FMS 3.5之远程共享对象(Remote Shared Object) ),只不过FMS是Adobe的收费产品,FluorineFx是用于.Net平台的开源免费产品.服务端代码:1、为了防止客户端随意连接或创建任何属性的RSO,服务端可以定义一个用于安全处理的cs文件2、创... 阅读全文
posted @ 2010-08-26 19:13 菩提树下的杨过 阅读 (958) | 评论 (0) 编辑
摘要:AMFAMF(是Action Message Format的缩写)是在flash和flex中与远程服务端交换数据的一种格式.它是二进制格式,Flash应用与服务端或数据库通过RPC交换数据时,通常都采用这种格式。AMF 1 诞生于Flash Player6,发展到现在已经变成了了AMF3RTMPRTMP是Real-Time Messaging Protocol(实时消息传送协议)的缩写,它是Ado... 阅读全文
posted @ 2010-08-26 14:28 菩提树下的杨过 阅读 (6030) | 评论 (0) 编辑
摘要:FluorineFx自带的示例都不错,就是有点不简洁,下面的代码基本上已经最简版了(环境vs2010)1、先创建一个Web Application,然后添加FluorineFx以及FluorineFx.ServiceBrowser的引用这二个程序集的默认位置在:C:\Program Files (x86)\FluorineFx\Bin\net\3.5\FluorineFx.dllC:\Progra... 阅读全文
posted @ 2010-08-24 17:56 菩提树下的杨过 阅读 (1852) | 评论 (3) 编辑
摘要:上一篇 puremvc框架之Command里,已经学习了如何利用Command来解耦View层与业务逻辑的依赖,但是仍然有二个问题:1、ButtonMediator中发送消息时,仍然采用硬编码的方式,将消息内容写死在代码中:这显然不是一个好的设计,不够灵活2、我们一直在说puremvc是一个mvc框架,至今为止 controller(即Command)、view(即Mediator)都已经出现过了... 阅读全文
posted @ 2010-08-01 10:18 菩提树下的杨过 阅读 (3753) | 评论 (0) 编辑
摘要:在前一篇 puremvc框架之hello world!里,已经对这个框架有了一个大概的认识,不过在消息的处理上,有一个不太适合的地方:为了完成响应消息,TextMediator亲自去监听自己感兴趣的消息类型,然后亲自来处理。要知道:Mediator属于View层(即:MVC中的V),它最好是什么也不干,仅仅与界面保持联系即可,对于如何响应消息这类粗活,应该交由Controller层(即MVC中的C... 阅读全文
posted @ 2010-07-31 21:04 菩提树下的杨过 阅读 (2946) | 评论 (0) 编辑
摘要:是的,没错,就是用vs2010来开发flex/flash !有图有真相:1、在vs2010中创建as3/air/flex项目2、ide环境中的as代码自动提示对于不想安装flash cs/flash builder/flash developer,又想体验一下actionscript编程的.net程序员来说,这无疑是一个好消息!言归正传:1、先到http://opensource.adobe.co... 阅读全文
posted @ 2010-07-29 10:56 菩提树下的杨过 阅读 (10364) | 评论 (38) 编辑
摘要:puremvc是一个可应用于多种语言、多种平台的mvc框架。根据官网上的描述,现在已经支持下列语言:官方也推出了最佳实践的中文文档,当然,园子里也有兄弟说它烂的 :)跟asp.net mvc框架有所不同,在asp.net mvc中,一个http请求过来,controller会自动去取得数据,最终转化为model,然后选取一个view进行呈现,同时把model传到view中,一切还算比较简单。然而p... 阅读全文
posted @ 2010-07-27 17:11 菩提树下的杨过 阅读 (11936) | 评论 (5) 编辑
摘要:单件(singleton)模式在c#中是最容易实现的模式,其主要用意就在于限制使用者用new来创建多个实例。但在as3中,构造函数必须是public的(语法本身要求的),而且也不能在构造函数中抛出异常(编译可通过,但是逻辑行不通),因为这样相当于把创建实例的路子完全切断了,一个实例也得不到!错误代码:怎样即能创建实例,又阻止使用者调用构造函数呢?这里要用到as3的一个特性:默认情况下,一个as文件... 阅读全文
posted @ 2010-07-27 14:36 菩提树下的杨过 阅读 (1889) | 评论 (0) 编辑
摘要:Bēniaǒk兄弟的Flex与.NET互操作(六):Flex和.NET协同开发利器FluorineFx是基于vs2008 + flex builder3的,不知道什么原因,我在vs2010 + flash builder4 上试了几次,总是不成功(也许晚上应该自我检讨下人品鸟),于是有了这一篇东东,算是对 vs2010/flash builder4环境下的一个补充吧.net的服务端依照参照silv... 阅读全文
posted @ 2010-07-26 15:20 菩提树下的杨过 阅读 (1990) | 评论 (0) 编辑
摘要:前几天写过一篇"flash开发中如何实现界面代码分离",评论中小-G同学给出了更好的建议:swc ,今天试用了一下,果然比较embed swf来得更爽!同时对小-G同学表示感谢!就拿视频播放器的控制来说吧:通常我们会把一些常规的控制按钮,利用Flash CS的IDE界面做好,放到库中如果按embed swf的方法,需要手动用代码创建每种按钮的实例,然后一个个去控制位置,然后addChild;其实考... 阅读全文
posted @ 2010-07-26 14:34 菩提树下的杨过 阅读 (5964) | 评论 (4) 编辑
摘要:在前一部分的最后,我们给出了一个寻路的示例,在大多数情况下,运行还算良好,但是有一个小问题,如下图:很明显,障碍物已经把路堵死了,但是小球仍然穿过对角线跑了出来!问题在哪里:我们先回顾一下AStar.as中用于判断的if语句在这个判断中,并没有规定说不允许走对象线。来看看如何修正:在以node为中心考查四周节点时,如果遇到水平和垂直方向都是障碍物时,既使对角节点是可穿越的普通节点,也不能通过。所以... 阅读全文
posted @ 2010-07-24 12:43 菩提树下的杨过 阅读 (6611) | 评论 (2) 编辑
摘要:上一部分提到了节点(Node),代价(Cost),估价公式等基本概念,有了这些知识铺垫 就可以正式开启寻路之旅了!如上图,这是一个5行8列的网格,黄色节点为起点,红色节点为终点,黑色节点为障碍物(节点)。寻路过程可以这样考虑:1、先以起点为中心,向周边扩张一圈,同时计算出周边节点(最多有8个)的单步代价g(即从中心点移动到相邻格子的代价:水平或垂直为1,对角为1.4);然后再计算周边每个节点到终点的估算代价h(利用上一部分最后讲到的估算公式),从而得出周围每个节点的总代价 f = g+h2、同时准备二个数组,一个称为开放列表(open),一个称为封闭列表(closed),把周边节点放入open 阅读全文
posted @ 2010-07-24 09:18 菩提树下的杨过 阅读 (6287) | 评论 (7) 编辑
摘要:一提到“A*算法”,可能很多人都有"如雷贯耳"的感觉。用最白话的语言来讲:把游戏中的某个角色放在一个网格环境中,并给定一个目标点和一些障碍物,如何让角色快速“绕过障碍物”找出通往目标点的路径。(如下图)在寻路过程中,角色总是不停从一个格子移动到另一个相邻的格子,如果单纯从距离上讲,移动到与自身斜对角的格子走的距离要长一些,而移动到与自身水平或垂直方面平行的格子,则要近一些。为了描述这种区别,先引入二个概念:节点(Node):每个格子都可以称为节点。代价(Cost):描述角色移动到某个节点时所走的距离(或难易程度)。如上图,如果每水平或垂直方向移动相邻一个节点所花的代价记为1 阅读全文
posted @ 2010-07-22 09:24 菩提树下的杨过 阅读 (9543) | 评论 (7) 编辑
摘要:Function类在as3中是直接从Object继承下来的,通常开发者定义的每一个function,均可以认为是Function类的一个实例。如果硬要跟c#做比较,Function类跟Delegate(委托)有几分相似,均可以达到通过该类型的实例来调用不同方法的目的。这段c#代码中,委托_delegateType的实例d,最终调用了具有同样方法签名的方法helloWorld.来看下as3是怎么做的... 阅读全文
posted @ 2010-07-21 11:41 菩提树下的杨过 阅读 (10270) | 评论 (2) 编辑
摘要:因工作需要,又做了一个播放器(走了一段弯路:刚开始在flash里做,后来不知道怎么搞的,flash cs5突然代码提示功能没了,后换成Flash Builder把主要代码复制进来重新来过,加上视频文件转换为flv,前后用了近两天时间,汗)依然是基于xml数据源,动画的移动处理主要依赖于TweenLite,没有使用系统的组件,开发环境win7 + flash builder,最终大小29k,另外也发... 阅读全文
posted @ 2010-07-20 15:15 菩提树下的杨过 阅读 (2102) | 评论 (4) 编辑
摘要:比系统自带的组件体积要小很多,而且支持进度条显示(在做播放器时,显示缓冲进度很有用哦),另外也支持三角形的音量调整显示使用示例:SimpleSlider.as 阅读全文
posted @ 2010-07-18 17:08 菩提树下的杨过 阅读 (1464) | 评论 (0) 编辑
摘要:官方解释:除 TextField 和 Video 对象以外,没有内容的显示对象(如一个空的 Sprite)的高度为 0,即使您尝试将 height 设置为其它值,也是这样。如果您设置了 height 属性,则 scaleY 属性会相应调整(width类推)也就是说,一个空的sprite,既使您设置了width,height也是没用的(而且人为设置了反而会有负作用,见下面的代码)注意:这里人为指定了... 阅读全文
posted @ 2010-07-17 21:49 菩提树下的杨过 阅读 (5089) | 评论 (5) 编辑
摘要:“flash开发”发展到今天,大体上已经细分为二个分支:Flash 设计师 和 Flash程序员,然而设计师不懂代码,程序员不懂设计,如何把这二种角色有机结合起来,实现代码、界面分离?可能下面的办法对你有用:actionscript3允许把外部swf直接用Embed标记嵌入到主类中(当然用UrlLoader动态加载也行),这意味着设计师们可以把一些常用的与代码无关的素材(比... 阅读全文
posted @ 2010-07-17 12:38 菩提树下的杨过 阅读 (3500) | 评论 (4) 编辑
摘要:在上一篇的最后,我们成功的用“等角投影”模拟出了立体空间的盒子模型,但是很快你就会发现这个示例的bugbug1:在已经有box的地方,再点击,将会重复创建box新实例。bug2:后面添加的box,会挡住前面添加的box。bug3:在边缘部分,如果用鼠标小心的点击,可以创建出很多超出world范围之外的盒子(即:看起来好象挂出去了)我们按轻重缓急来处理吧:bug2最严重,它直... 阅读全文
posted @ 2010-07-14 21:11 菩提树下的杨过 阅读 (3273) | 评论 (2) 编辑
摘要:as3.0中的事件冒泡机制有时候会很烦人,比如一个Sprite(方便下文描述就命名为Container吧)把另一外Sprite(称为Child吧)做为子元素套进来以后,如果两个Sprite都注册了Mouse_Down事件,要想在Child上点击鼠标时系统只响应Child的Mouse_Down事件,默认是不行的,因为事件冒泡会让Container也响应Mouse_Down事件,示例代码:鼠标点击最小... 阅读全文
posted @ 2010-07-13 21:27 菩提树下的杨过 阅读 (7493) | 评论 (0) 编辑
摘要:什么是等角投影(isometric)?刚接触这个概念时,我也很茫然,百度+google了N天后,找到了一些文章:[转载]等角(斜45度)游戏与数学[转载]使用illustrator和正交投影原理以及基本三视图制图以及这篇ppt:http://files.cnblogs.com/yjmyzz/Isometric.rar建议先耐心看完这三篇文章,再往下看:在之前学习的3D基础、3D线条与填充、背面剔除... 阅读全文
posted @ 2010-07-13 14:50 菩提树下的杨过 阅读 (4561) | 评论 (8) 编辑
摘要:今天开始,决定用flash builder淘汰flash cs 4/5了,刚换过来感觉有些不适应,百度+查看帮助,找了几个有用的快捷键:1.代码格式化:选中要格式化的代码段,然后 CTRL + I (注:这是flash builder自带的,不过功能很弱,只能对Tab缩进进行自动格式化,要想有更强的代码格式化,可到百度上搜索一个格式化插件,解压到plugin目录即可)2.代码注释/反注释:选中要注... 阅读全文
posted @ 2010-07-13 11:15 菩提树下的杨过 阅读 (7617) | 评论 (2) 编辑
摘要:这应该是IE的bug,解决办法:前二行的目的是让IE环境中触发RESIZE事件,然后在resizeHandler函数中就能正确得到stage.stageWidth与stage.stageHeight了注:如果在firefox或chrome浏览器下,默认页面一打开时,如果用户没有做任何最大化或最小化之类改变浏览器大小的操作,RESIZE事件是不被触发的,而IE中始终会触发. 阅读全文
posted @ 2010-07-13 10:53 菩提树下的杨过 阅读 (1365) | 评论 (0) 编辑
摘要:在不使用文档类(document class)的情况下,直接在时间轴上写以下代码:输出:this->[object MainTimeline] ,root->[object MainTimeline] ,stage->[object Stage]this==root? --> truethis.stage==stage? --> true0同样的代码,如果放在有文档类... 阅读全文
posted @ 2010-07-11 21:22 菩提树下的杨过 阅读 (1292) | 评论 (4) 编辑
摘要:在上一篇里,我们学习了“自主角色”的一些基本行为:寻找(seek)、避开(flee)、到达(arrive)、追捕(pursue)、躲避(evade)、漫游(wander)。这一篇将继续学习其它更复杂,更高级的行为。一、对象回避(object avoidance)对象回避的正式解释为:角色预测出对象的行动路径,然后避开他们。也可以通俗的描述为:假如有一个"灰太狼抓喜羊羊"的游... 阅读全文
posted @ 2010-07-10 18:09 菩提树下的杨过 阅读 (2461) | 评论 (4) 编辑
摘要:因为这一章的内容基本上都是涉及向量的,先来一个2D向量类:Vector2D.as (再次强烈建议不熟悉向量运算的童鞋,先回去恶补一下高等数学-07章空间解释几何与向量代数.pdf)有几个地方稍加解释: 1、向量夹角的计算 上图为向量的夹角公式,再来对照一下代码部分: 首先对向量v1,v2做了单位化处理,使其变成(模为1的)单位向量,这样夹角公式中的|a|×|b|(即分母)自然也就是1... 阅读全文
posted @ 2010-07-07 21:07 菩提树下的杨过 阅读 (5752) | 评论 (0) 编辑
摘要:1.Sprite/MovieClip的Enter_Frame事件,不受addChild/removeChild影响简单点讲:Sprite或MovieClip对象一旦为其添加了Enter_Frame事件监听,对应的Enter_Frame处理函数将会马上被调用,并一直执行下去(不管你是否将其addChild到显示列表,或者将其从显示列表removeChild),直到该对象removeEventList... 阅读全文
posted @ 2010-07-06 21:56 菩提树下的杨过 阅读 (3117) | 评论 (1) 编辑
摘要:Adobe官方并没有"泛型数组"的叫法,这是我自己对Vector的叫法(有点标题党),不过Vector在使用上确实跟c#中的泛型数组有些相似之处。我们知道:ActionScript3.0中的Array数组可以存放多种类型,甚至在同一个Array数组中,可以同时存入String,Object,Number...,但其实我们在实际开发中,通常一个数组中所保存的元素类型都是一致的,为了改进这种情况下的效... 阅读全文
posted @ 2010-07-04 18:57 菩提树下的杨过 阅读 (6084) | 评论 (2) 编辑
摘要:AdvancED ActionScript 3.0 Animation 是Keith Peters大师继"Make Things Move"之后的又一力作,网上已经有中文翻译版本了,打算下一阶段开始啃这本书。今天开始学习高级碰撞检测,所用到的预备知识:1、BitmapData的透明与不透明区别位图数据(BitmapData)有二种模式,一种支持透明(即每个像素的值采用AARRGGBB这种32位颜色... 阅读全文
posted @ 2010-07-03 11:27 菩提树下的杨过 阅读 (7378) | 评论 (5) 编辑
摘要:早上在网上闲逛,发现了下面这张图,觉得很好,转帖于此,同时向原作者的辛苦整理表示感谢.原图太大,发不上来,打个包下载吧: http://files.cnblogs.com/yjmyzz/flash%e5%bc%80%e5%8f%91%e6%8a%80%e8%83%bd%e6%a0%91.rar 阅读全文
posted @ 2010-07-03 08:56 菩提树下的杨过 阅读 (1225) | 评论 (0) 编辑
摘要:原文:http://blog.flexdevelopers.com/2010/04/10-things-good-flex-developer-should.html翻译:http://bbs.9ria.com/viewthread.php?tid=54144&from=recommend_f要想成为一名优秀的Flex编程人员,单单知道怎么样去使用Flex内建的容器和组件是不够的,而且是远... 阅读全文
posted @ 2010-07-02 09:23 菩提树下的杨过 阅读 (1639) | 评论 (3) 编辑
摘要:昨晚在一国外博客上(从域名后缀pl上猜想应该是波兰)看到这种效果(Mouse Avoid 躲避鼠标),是基于Flash/AS3开发的,这个示例把弹性运动,摩擦力,均加速运动等多种物理学原理综合运用在一起,产生了不错的交互效果。在线演示as3.0代码如下:测试代码:看完AS3的代码后,我就在想如何移植到Silverlight上来,下午抽空研究了一下,基本上用Silverlight还原出来了,但由于S... 阅读全文
posted @ 2010-06-29 16:55 菩提树下的杨过 阅读 (3675) | 评论 (9) 编辑
摘要:几年前就在网上曾看见过这种效果,但一直不知道叫什么名字前一阵无意在9ria(天地会)论坛上看到了一篇专门讲这个的文章:AS3 元球(Metaball),不过有点遗憾的是那篇文章上的代码直接复制下来都不能调试,花了点时间整理了一下,终于调试通过了,贴在这里分享一下:Metaball的公式:其中,x、y是舞台上的任意一个点,x0、y0是metaball的位置,R为半径。从公式上看,可以理解为万有引力的... 阅读全文
posted @ 2010-06-28 14:44 菩提树下的杨过 阅读 (5120) | 评论 (6) 编辑
摘要:只要是玩过photoshop的人,一定会对ps中的各式各样、功能强大的滤镜(filter)留下深刻的印象。 Adobe是靠图形处理软件起家的,这方面一直是它的强项。这一技术经过不断发展,最终形成了今天的Pixel Bender(官方翻译为"着色器"),它在Adobe CS系列的主要产品中都被良好支持(包括Flash),而且据官方的介绍pixel bender支持GPU,多线程.下面是几个在Flas... 阅读全文
posted @ 2010-06-28 11:16 菩提树下的杨过 阅读 (4953) | 评论 (7) 编辑
摘要:今天做项目时遇到一个小需求:要将字符串中的回车符号替换成其它符号(比如"<br/>")。 考虑到不同的情况下,有些系统中是用\r\n作回车符,有些仅用\n就代表回车符了。以前都是用String类的Replace方法连接替换多次来处理的,今天突然想改为正则表达式一次性搞定,但又怕性能上消耗太大,于是写了下面的测试代码:输出结果:11111 * 22222 * 33333 * 44444 ... 阅读全文
posted @ 2010-06-24 17:52 菩提树下的杨过 阅读 (3890) | 评论 (7) 编辑
摘要:As3.0中的位图(Bitmap/BitmapData)编程功能十分丰富,下面这些是官方文档上的基本示例:1.位图使用(模糊)滤镜2.像素拷贝及赋值3.颜色变换4.比较位图差异5.拷贝颜色通道6.截取位图的某一部分(像素)7.将文本转换为位图8.仿PS中的颜色填充工具9.颜色融合10.噪点图11.另一种噪点图(有点类似卫星云图)12.像素融解13.查找满足条件的颜色并替换14.综合应用1:模仿Me... 阅读全文
posted @ 2010-06-23 21:09 菩提树下的杨过 阅读 (14558) | 评论 (0) 编辑
摘要:前几天在园子里看到有人用Silverlight做了一个"贪吃蛇",一时兴起也想用AS3.0做一个,虽然这个游戏已经被很多开发者做烂了,但是作为AS的初学者,重新做一遍也当是一种学习.技术"难"点分析:1.蛇身的构成可以用数组来存储一堆小球,将它们排列成连续的直线即可2.蛇身的移动蛇头移动后,紧跟蛇头后的小球移动到蛇头原来的位置,然后...类推,后面的小球依次移动到前一个球的位置3.碰撞检测蛇头移动... 阅读全文
posted @ 2010-06-20 19:00 菩提树下的杨过 阅读 (3525) | 评论 (13) 编辑
摘要:布朗运动:矩形分布:圆形随机分布:更均匀的圆形随机分布:偏向分布:(即在指定的区域内,中心位置分布最密集,离中心越远,分布越稀疏)多次迭代的偏向分布(类似星云分布)Timer类的重绘设置:注意:timer类的计时并不象c#中那样精确,因为跟帧速有关联。基于时间的动画:Flash动画是基于帧的(即每进入一帧时,舞台上的对象才会重绘,并触发Enter_Frame事件),这跟Silverlight是基于... 阅读全文
posted @ 2010-06-11 15:08 菩提树下的杨过 阅读 (1062) | 评论 (0) 编辑
摘要:先回顾一下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中的Matix类跟这个类似... 阅读全文
posted @ 2010-06-08 10:41 菩提树下的杨过 阅读 (2000) | 评论 (2) 编辑
摘要:Animation in ActionScript3.0 这本书总算快学完了,今天继续:上一回Flash/Flex学习笔记(50):3D线条与填充里,我们知道任何一个3D多面体上的某一个面,都可以分解为多个三角形的组合。比立方体为例,每个面都由二个三角形组成,但在那一篇的示例中明显有一个问题:不管立方体的某一个面是不是应该被人眼看见(比如转到背面的部分,应该是看不见的),这一面都被绘制出来了。在这... 阅读全文
posted @ 2010-06-06 17:06 菩提树下的杨过 阅读 (1738) | 评论 (0) 编辑
摘要:07年的时候,我所在的公司有一个(在业内游戏开发方面有些名气的)Flash程序员应公司要求,利用FMS开发了一套在线视频导购系统,当时我觉得很牛叉,用户不用安装任何插件,也不用安装什么聊天软件,就可以直接跟销售员在线交流,遇到对产品不清楚的地方,直接让销售员通过摄像头演示一下产品的用法,沟通ok后,就直接确定购买。当时我完全不懂flash,而且微软的silverlight也推出了,我一直希望MS能... 阅读全文
posted @ 2010-06-04 17:11 菩提树下的杨过 阅读 (4155) | 评论 (38) 编辑
摘要:虽然Flash早就升级为AS3.0,但是FMS的服务端编程依然仅支持AS1.0(2.0),服务端与.net通讯的最简单方式莫过于请求一个RESTful的webService或wcf,通过它们返回的xml来获取数据。输出:你好,请问您有什么问题需要咨询?我去休息了,一会儿见!我要离开一下下,不要走开,马上回来!上面这段代码演示了如何读取xml中的节点文本。更详细的FMS服务端语言参考,请查阅FMS安... 阅读全文
posted @ 2010-06-03 21:11 菩提树下的杨过 阅读 (446) | 评论 (0) 编辑
摘要:AS3中的序列化功能其实比较弱,Adobe官方的第三方json序列化工具类可以把对象的属性序列化为字符串,并反序列化为对象。但如果对象中定义了自己的function,则这部分序列化时将被忽略。另外在实际开发中,也常会遇到将图片数据序列化与反序列化的场景(比如在二个flash之间转送图片),有二种办法实现:1.利用JPGEncoder或PNGEncoder注意:这种带压缩的方法对图片质量是有影响的,... 阅读全文
posted @ 2010-05-31 21:55 菩提树下的杨过 阅读 (4461) | 评论 (2) 编辑
摘要:给你一个代码代表"类"完整路径的字符串,比如"flash.text.TextField",你能用AS3.0在舞台上动态创建一个该类的实例么?(用var txt:TextField = new TextField()作弊的不算)ok,这就是AS3.0中的反射,虽然写法与c#中的完全不同,但是概念是相通的,有了这个我们可以把一些需要动态创建实例的信息,放在xml配置文件里,运行时先加载xml配置,然后... 阅读全文
posted @ 2010-05-30 21:15 菩提树下的杨过 阅读 (2783) | 评论 (1) 编辑
摘要:啥也不说了,看代码,然后测试:按钮(注:指SimpleButton而非组件中的Button)被disable后,依然可以触发Click事件,AS3的发明者为啥要这样设计呢?反正我是没理解,不过既然它已经这样了,就只能顺着它走了。要想按钮事件仅被触发一次,正确的做法只能是removeEventListener后记:事后仔细想了想Adobe为什么要这样设计?我想这或许就是Adobe与Microsoft... 阅读全文
posted @ 2010-05-27 17:18 菩提树下的杨过 阅读 (3313) | 评论 (5) 编辑
摘要:http://files.cnblogs.com/yjmyzz/AS3API_01.pdf学习ActionScript3.0 不可多得的参考文档另外,今天意外发现原来Yahoo的YUI居然还有一个Flash版本的:http://developer.yahoo.com/flash/astra-flash/yahoo太棒了,可惜市场运作太差 阅读全文
posted @ 2010-05-26 09:49 菩提树下的杨过 阅读 (1338) | 评论 (2) 编辑
摘要:先看最终效果:整个swf最终不到4k,如果用系统的组件List来做的话,最终尺寸会接近30k ! (当然,核心代码是从网上收集到的:))大致原理:把要显示的对象上面加一层遮罩,然后根据滚动条的位置,上下移动显示对象。源文件:http://cid-2959920b8267aaca.skydrive.live.com/self.aspx/Flash/miniScrollBar.rar 阅读全文
posted @ 2010-05-25 14:53 菩提树下的杨过 阅读 (1388) | 评论 (0) 编辑
摘要:先来看客户端fla的构成:第一帧:登录界面第一帧的代码:第二帧:聊天的主界面代码:服务端main.asc的处理(注:main.asc保存时,貌似只能选择为utf-8编码,否则运动时客户端一直连接不上)运行中的样子:注:艾睿论坛上曾有一篇教程利用FMS的远程共享对象来创建聊天室,远程对象在编码上也许更简单,不过个人感觉性能不太理想(因为对于共享对象的广播是FMS自动的,完全不受控制,不管客户端想不想... 阅读全文
posted @ 2010-05-24 16:31 菩提树下的杨过 阅读 (1455) | 评论 (2) 编辑
摘要: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这是官方的... 阅读全文
posted @ 2010-05-21 20:58 菩提树下的杨过 阅读 (3142) | 评论 (0) 编辑
摘要:Flash/Flex学习笔记(49):3D基础里已经介绍了3D透视的基本原理,不过如果每次都要利用象该文中那样写一堆代码,估计很多人不喜欢,事实上AS3的DisplayObject类已经内置了z坐标、rotationX、rotationY、rotationZ属性,再加上PerspectiveProjection类用于处理透视转换,基本上可以满足大多数的3D要求。稍加解释:z坐标:即对象在z轴上的坐... 阅读全文
posted @ 2010-05-20 22:02 菩提树下的杨过 阅读 (5896) | 评论 (2) 编辑
摘要:3D线条:把上一篇中的3D坐标旋转示例稍做修改,用线把各个小球连接起来即可。如果从性能优化的角度考虑:Ball3D类用在这里比较浪费,Ball3D继承自Sprite,而我们在这里其实仅仅只要一个拥有少数几个属性(比如xpos,ypos,zpos之类)的点而已,对于Sprite默认的其它属性,包括事件支持,都是不需要的。所以...我们又多出了一个新类Point3D利用这个类重写最开头的示例:上面的示... 阅读全文
posted @ 2010-05-14 09:37 菩提树下的杨过 阅读 (2090) | 评论 (0) 编辑
摘要:之前我们所做的动画都是基于x,y二维坐标轴的,在三维动画中我们还需要增加一个垂直于屏幕“向里”或“向外”的Z轴,那么z轴到底是应该向外,还是向里呢?这个其实无所谓,不过为了统一,习惯上通常把z轴约定为向里,即所谓的“右手坐标系”右手坐标系的得名:伸出右手,让食指、中指、大拇指相互垂直;然后 食指指向x轴正向,中指指向y轴正向,... 阅读全文
posted @ 2010-05-08 21:26 菩提树下的杨过 阅读 (3551) | 评论 (2) 编辑
摘要:先要复习一下三角函数与余弦定理:对于直角三角形,三边长a,b,c与三个角A,B,C的关系如下:正弦函数:余弦函数:正切函数:反正切函数:(好象现在的教科书里改叫“余切”函数) 或 勾股定律:但对于不是直角的三角形,就必须用余弦定律来处理了:利用余弦定理也可以处理反向运动学中的伸展:上面这个是示意图(花了我近一天时间才弄明白,汗,高中的数学知识全还给老师了)说明:蓝色的se... 阅读全文
posted @ 2010-05-06 13:34 菩提树下的杨过 阅读 (1049) | 评论 (1) 编辑
摘要:先回顾上篇所说的"正向运动学":以人行走的例子来说,基本上可以理解为大腿驱动小腿,小腿驱动脚,从而引发的一系列姿态调整和运动。再举一个例子,我们用着拿一根软鞭或链条的一端挥舞,被手挥舞的这一端会把"能量"向另一端传递(即固定端驱动紧接的部分,而紧接的部分又驱动下一段紧接的部分),从而使整个系统也随之运动.而"反向运动学"正好相反,举个不恰当的例子,小时候估计很多人玩过“死”... 阅读全文
posted @ 2010-05-05 11:40 菩提树下的杨过 阅读 (1862) | 评论 (2) 编辑
摘要:所谓"正向运动学"通俗点讲就是把几个连接部件的一端固定起来,另一个端可以自由(向前/向外)运动。比如人的行走,单个下肢可以理解为脚连接小腿,小腿连接大腿,大腿连接腰。行走的过程,相当于二条腿相对固定于腰部,大腿运动驱动小腿,小腿又驱动脚,从而带动整个连接系统的一系列运动。先来一个基本的关节类Segment:(就是一个圆角矩形+二个小圆圈)为了动态控制关节的旋转,再来一个简单的滑块控件类:(下列代码... 阅读全文
posted @ 2010-04-30 15:25 菩提树下的杨过 阅读 (1627) | 评论 (6) 编辑
摘要:NND,明天就是世博,上海政府都发公文倡议企业五一休息5天,我们公司居然只放3天,真无语,搞得大家今天都没心情工作。下雨天打孩子,闲着也是闲着,把以前看到同事做的一个小Loading模拟了一下:源文件:http://cid-2959920b8267aaca.skydrive.live.com/self.aspx/Flash/LoadingMC.rar 阅读全文
posted @ 2010-04-30 13:13 菩提树下的杨过 阅读 (1454) | 评论 (0) 编辑
摘要:万有引用公式:其中G为万有引力常数代码虽然很长,但是其中有很多都是上一篇里封装好的方法直接复制过来的,应该不难理解再来模拟一下地球绕着太阳转:代码就是在第一段的基础上修改的,可以看到在"远日点"速度较慢(因为距离越远,万有引力越小,对应的加速度也较小),在"近日点"速度较快(距离越近,万有引力越大,对应的加速度也较大)节点花园NodeGarden:为啥叫这个名字,我也说不上来,反正ActionSc... 阅读全文
posted @ 2010-04-28 15:14 菩提树下的杨过 阅读 (1678) | 评论 (3) 编辑
摘要:动能公式:动量公式:动量守恒:能量守恒: 根据这些规律可以得到下列方程组:解该方程组,得到下面的公式:把这二个公式相减,可以得到:即:我们也经常利用这个公式简化运算基本的动量守恒演示:先给ball类添加一个质量"属性"一维单轴刚体碰撞测试:二维坐标上的刚体碰撞:先来看这张图,红球a以Va速度运动,蓝球b以Vb速度运动,二球的连线正好与x轴平行(即:水平对心碰撞),碰撞的过程可以理解为二球水平速度分... 阅读全文
posted @ 2010-04-22 11:25 菩提树下的杨过 阅读 (5515) | 评论 (8) 编辑
摘要:坐标旋转是个啥概念呢?如上图,(蓝色)小球 绕某一中心点旋转a角度后,到达(红色)小球的位置,则红色小球相对中心点的坐标为:x1 = dx * cos(a) - dy * sin(a)y1 =dy * cos(a) + dx * sin(a)这个就是坐标旋转公式,如果要反向旋转,则公式要修正一下,有二种方法:1.将a变成-a,即:x1 = dx * cos(-a) - dy * sin(-a)y1... 阅读全文
posted @ 2010-04-20 20:32 菩提树下的杨过 阅读 (6431) | 评论 (15) 编辑
摘要:碰撞检测基本上可能分为二类:对象与对象的碰撞检测、对象与点的碰撞检测为了方便测试,先写一个box类(生成一个小矩形)最基本的对象碰撞检测:hitTestObject如果把Box换成前面例子中的Ball,就是下面这个样子:很明显:矩形换成球后,碰撞检测变得不精确了,有一些球似乎并没有真正撞到其它球也停下来了,这是为什么腻?答案就在于:Flash对象碰撞检测默认采用“对象的矩形边界&rdq... 阅读全文
posted @ 2010-04-19 11:24 菩提树下的杨过 阅读 (4703) | 评论 (9) 编辑
摘要:上一篇里演示的弹性运动加上摩擦力因素后,物体最终基本上都会比较准确的停在目标位置。但是我们回想一下现实世界中的弹簧,如果把弹簧的一头固定起来(即相当于目标点),而另一端栓一个球,把球拉开或压缩一定距离然后松手,事实上小球永远也不可能到达弹簧固定的那一端(因为弹簧即使压缩到最紧,也总有一定的长度)所以如果要在Flash里模拟现实中的弹簧,真正的目标点绝不是弹簧的端点,而是目标点再偏移一段距离(即弹簧... 阅读全文
posted @ 2010-04-18 13:15 菩提树下的杨过 阅读 (1381) | 评论 (0) 编辑
摘要:动画中的弹性运动 从视觉效果上接近 物理经典力学中的单摆运动或弹簧(胡克定律F=Kx)振动先看下面的模拟演示:规律:小球先从出发点(初始为最左侧)向目标点(中心点)加速狂奔,奔的过程中速度越来越大,但加速度越来越小,等经过目标点时,发现速度太大刹不住车(此时速度达到最大值,但加速度减为0),奔过头了!于是加速度发生逆转,从0开始变为负值,从而导致速度越来越小,等速度减到0时,也奔到了最右侧(此时负... 阅读全文
posted @ 2010-04-17 12:02 菩提树下的杨过 阅读 (1723) | 评论 (0) 编辑
摘要:缓动 与 匀变速 看上去很类似,但其实有区别:匀变速的公式为 V = V0 + at --速度v与时间t是线性(正比)关系,而且这种运动不需要确定目标点,速度可以按照这种规律一直变下去而缓动指的是物体越接近目标时速度越慢,速度跟距离成反比关系,用公式描述为 V = k S (0<k<1),这种运动需要先确定一个目标点,比如车辆定点停车:先指定一个位置,然后汽车从远处开过来,快到停车点时... 阅读全文
posted @ 2010-04-16 17:07 菩提树下的杨过 阅读 (2182) | 评论 (0) 编辑
摘要:以前为了赶项目,利用系统组件制作过一款视频播放器(见Flash/Flex学习笔记(6):制作基于xml数据源的flv视频播放器),但是系统组件实在是太大了,最终生成的swf居然有103K,随着AS3的深入学习,昨天又弄了一个只用AS3的播放器,最终只有8.82K,呵呵,这肥减得那是相当厉害。用到了上一篇(Flash/Flex学习笔记(35):自己动手实现一个滑块控件(JimmySilder))里自... 阅读全文
posted @ 2010-04-16 10:29 菩提树下的杨过 阅读 (7744) | 评论 (1) 编辑
摘要:先看最终的演示:滑块条的应用实在太广泛了:mp3播放器中声量的大小控制,视频播放时的画面亮度调节,阅读新闻时字体大小的实时调整,对象的大小互动控制...分析:1.任何一个滑块条控件的UI部分,基本上可以分为:背景滑块条 + 滑块按钮 二个部分所以我分成了三部分: JimmySilderBar(背景条),JimmySilderButton(拖动钮),JimmySilder(真正的滑动控件,将前二个组... 阅读全文
posted @ 2010-04-15 13:34 菩提树下的杨过 阅读 (2872) | 评论 (3) 编辑
摘要:如果想在一个自定义类中注册对stage对象的监听事件,然后在另一个文档类中使用该类的实例(或在fla的时间轴上使用该类的实例),你会很郁闷的发现:在构造函数中始终无法引用到this.stage(用trace(this.stge)会一直返回null),既然引用都得不到,当然也就无法注册事件了,正确的做法如下:即必须在ADDED_TO_STAGE事件以后,才能引用到stage对象,当然还有一个提前是该... 阅读全文
posted @ 2010-04-15 13:06 菩提树下的杨过 阅读 (2236) | 评论 (2) 编辑
摘要:类似C#中自定义事件需要一个自定义的EventArgs子类一样,AS3也需要开发者自定义一个Event类的子类,这里我们假设一种场景:设计一个Person(人物)类,里面有Age(年龄),Name(姓名),我们希望每当Person类的实例Age(年纪)发生变化时,能触发一些自定义事件,从而调用某些特定的处理方法。 1.先设计Event类的子类AgeChangeEvent这里我们定义了二类事件:年龄... 阅读全文
posted @ 2010-04-14 21:14 菩提树下的杨过 阅读 (2223) | 评论 (0) 编辑
摘要:AS3历经若干年的成长,已经完全进化为一门面向对象的(动态)语言,但很多介绍AS3的书籍上往往只注意了AS3语言本身,而淡化了如何跟Flash IDE协同开发。1.如何在Flash时间轴代码上创建一个外部as文件中定义的MovieClip实例?假设外部有一个MyClip.as文件,内容如下:新建一个fla文件(注意:要与MyClip.as处于同一目录),然后在时间轴的代码中就可以这样使用了:Ctr... 阅读全文
posted @ 2010-04-14 16:32 菩提树下的杨过 阅读 (1184) | 评论 (0) 编辑
摘要:题外话:个别朋友总是问我同样的问题,做为一名c#/silverlight程序员为啥还要学flash ?回 答:看日本片时,就不能对照看欧美的么? 不体会日本的细腻,又怎能感觉到欧美的粗放;同样都是web相关的技术,不必报门户之见;何况这二者有很多可以相互借鉴的东西。注:这个例子来自[FL车在臣](在blueidea上又名“寂寞火山”)翻译的“Animation ... 阅读全文
posted @ 2010-04-14 12:59 菩提树下的杨过 阅读 (1961) | 评论 (6) 编辑
摘要:对象拖拽:这其实就是以前所学知识:Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag)+ Flash/Flex学习笔记(23):运动学原理的综合运用,要提一下的是下面代码中对于EnterFrame的添加与移除操作对象投掷:在上面的代码中,鼠标的拖拽只影响了小球的y坐标(注:指对运动方面的影响),即仅相当于举高了小球。而投掷则意味着:在鼠标松开小球的那一瞬间,小球也... 阅读全文
posted @ 2010-04-13 13:50 菩提树下的杨过 阅读 (1417) | 评论 (8) 编辑
摘要:对于从Sprite类继承来的对象,要实现拖放当然是Flash/Flex学习笔记(13):对象拖动(startDrag/stopDrag)里讲的方法最方便,但是对于不是从Sprite类继承得来的对象,这startDrag/stopDrag是不能用的,这时候只能采用最通常用做法:利用Mouse_Down,Mouse_UP,Mouse_Move事件来处理注意:对象的Mouse_Move事件,只有当鼠标在... 阅读全文
posted @ 2010-04-09 12:35 菩提树下的杨过 阅读 (2453) | 评论 (1) 编辑
摘要:在开发过程中,经常会遇到要从一个界面跳到另一个界面的情况,比如:软件中的窗口跳转,web开发中的页面跳转...但在Flash的世界里:只有帧,没有窗口与页面,所以控制时间轴/帧之间的跳转,就成为这一需求最常见的解决办法 源文件: http://cid-2959920b8267aaca.skydrive.live.com/self.aspx/Flash/FrameControl.fla 阅读全文
posted @ 2010-04-08 20:40 菩提树下的杨过 阅读 (2192) | 评论 (0) 编辑
摘要:虽然label组件很好用,但是达人们都好象不太喜欢用组件(用组件后最明显的问题:会使swf文件增大好多),所以我也慢慢开始习惯能不用组件则尽量不用注:txtMsg为舞台上的动态文本,二个按钮是从公共库里拉出来的实例源文件:http://cid-2959920b8267aaca.skydrive.live.com/self.aspx/Flash/txtScroll.rar 阅读全文
posted @ 2010-04-08 17:32 菩提树下的杨过 阅读 (875) | 评论 (0) 编辑
摘要:在一些实时视频或视频分享应用中,需要动态显示麦克风的音量大小,或者检测视频是不是正在播放,这里演示一种简单的音量指示器1.先写一个指示器类其实就是一个根据百分比来填充的矩形2.如何获取音量大小以及监测摄像头直播状态音量大小可以通过activityLevel属性获得,但摄像头的画面变化程度却无法直接获取,但每当摄像头画面有活动时ACTIVITY事件将被触发,所以可在该事件中监测最后一次活动的时间与当... 阅读全文
posted @ 2010-04-08 14:30 菩提树下的杨过 阅读 (3505) | 评论 (3) 编辑
摘要:直接上代码吧,关键地方都加上注释了: 阅读全文
posted @ 2010-04-08 09:40 菩提树下的杨过 阅读 (1615) | 评论 (2) 编辑
摘要:摩擦力:假如一个物体在某个方向上沿直线运行,摩擦力会使该方向上的速度越来越小,直到停止。上图示意了该过程,物体以moveAngle角度正向运动,最终的速度speed矢量为vx矢量与vy矢量的矢量和,在每个单位时间内的位移即Speed矢量的大小,分解到x,y轴后,即为vx与vy;加入摩擦力后,speed矢量每单位时间将减少Friction值,也就是视觉上的越来越慢。上面这种方法从物理意义上讲最接近现... 阅读全文
posted @ 2010-04-06 13:00 菩提树下的杨过 阅读 (1014) | 评论 (0) 编辑
摘要:粒子爆炸:仍然要用到以前的小球类,不过稍加改造增加了x,y轴的速度,其它没变原理:在舞台的某一区域放置大量小球实例,然后在某个时刻让其向四面八方运动即可(即改变每个小球在x,y轴上的坐标)问题:效率!让CPU在每帧对于大量对象进行重绘是很耗资源的,所以当小球跑出舞台边界时,得想办法通知CPU:这些小球不需要再处理了(反正也看不见)!否则纯属折腾CPU,下面的代码用一个数组存放所有对象实例的引用,然... 阅读全文
posted @ 2010-04-05 17:54 菩提树下的杨过 阅读 (1829) | 评论 (1) 编辑
摘要:先写一个公用的小球类Ball:圆周运行与椭圆运动:主要依靠三角函数结合椭圆公式计算对象的x,y坐标 匀加速直线运动:速度公式:v = v0 + at,物理学上的公式虽然是这样,但是到了Flash中思路得稍微换一下,Flash默认为每秒24帧,而EnterFrame事件在每次进入新一帧时触发,所以可粗略的认为每一帧就是一个“单位时间”,匀加速的重要特征就是每单位时间速度增加固... 阅读全文
posted @ 2010-04-03 18:01 菩提树下的杨过 阅读 (1489) | 评论 (0) 编辑
摘要:Silverlight中称之为“效果(Effect)”的东东,在Flash里叫“滤镜(Filter)",而且Flash里内置的滤镜要比Silverlight丰富很多,几乎所有对象都有一个filters的属性,它是一个数组,可以将一个或多个滤镜同时应用于某一对象,类似的,如果要去除已经应用的滤镜效果,只要将filters数组清空即可 阅读全文
posted @ 2010-04-03 11:50 菩提树下的杨过 阅读 (1160) | 评论 (0) 编辑
摘要:transform是flash.Display.DisplayObject的属性之一,而colorTransform又是transform的属性,这也就意味着几乎所有对象都可以使用colorTransform属性这是官方的解释:当 ColorTransform 对象应用于显示对象时,将按如下方法为每个颜色通道计算新值:新红色值 = (旧红色值 * redMultiplier) + redOffse... 阅读全文
posted @ 2010-04-03 11:43 菩提树下的杨过 阅读 (4035) | 评论 (0) 编辑
摘要:贝塞尔曲线的身影几乎在所有绘图软件中都有出现,下面的代码演示了如何用AS3.0画一段简单的贝塞尔曲线(没有使用Document文档类,想测试的朋友,直接把下面的代码复制贴到第一帧即可)一段曲线通常包含三个点:起点(x1,y1),控制点(x3,y3),终点(x2,y2);也许大家也看出来了:该曲线最终并不经过鼠标所在的点(x3,y3),在y轴方向上,曲线最大高度只有鼠标相对高度的一半,如果想真正的经... 阅读全文
posted @ 2010-04-01 20:53 菩提树下的杨过 阅读 (6054) | 评论 (2) 编辑
摘要:传统的RGB颜色体系中,每一个分量值的范围都是0到255,如果转换为2进制的话最多需要8位(比如:十进制的255变成二进制则为11111111),三个分量加起来,最多需要24位长度的uint来存储.而通常我们在html中喜欢用16进制比如"#FF0000"来表示红色,即R:255,G:0,B:0,如何高效的从一个表示颜色的unit数字中把这RGB分量提取出来?当然:最容易想到的是利用字符串拆分,拆... 阅读全文
posted @ 2010-04-01 16:22 菩提树下的杨过 阅读 (1918) | 评论 (0) 编辑
摘要:这是日本roxik大师的作品(据说他的水平在日本还只能排到第二)如果只是做出这些随机动作的小球,也许不算什么,但是让人称奇的是它的CPU占用率,居然不到5%另外还有一些3D/物理引擎,也都很NB,完整演示网址见: http://temp.roxik.com/感叹:水平第二都已经这样了,排名第一的岂不是神了? 阅读全文
posted @ 2010-04-01 09:42 菩提树下的杨过 阅读 (1803) | 评论 (2) 编辑
摘要:Sprite有一个graphics可以用来绘制基本图形,比如我们要画下面这个图形:对应的AS3代码为:把它加到舞台上,并自动跟着鼠标转动(下列代码写在第一帧):这里用到了反正切函数,其原理示意图如下:即以鼠标所在点与Arrow图形中心点为参考,构建一个三角形,利用对边比邻边得到正切,然后利用反正切求出角度,最终让图形旋转该角度,下面是效果:但是好象有点问题,相信您也看出来了,因为我们绘制图形时,默... 阅读全文
posted @ 2010-03-31 22:00 菩提树下的杨过 阅读 (3155) | 评论 (0) 编辑
摘要:先来看简单的单个按键捕获: 再来看下类似: A + B + C 的这种组合键捕获:先分析一下过程,比如用户按下Ctrl + A 时,实际上是先按下Ctrl键,同时触发KeyDown事件,然后在Ctrl不放的同时,再按下A键,再次触发KeyDown事件,然后松开(触发KeyUp事件),这是一个顺序的过程。思路:在用户按下键且尚未松开任何键时,可以考虑用一个数据,把本次按下的所有的键值都存储起来,然后... 阅读全文
posted @ 2010-03-31 13:30 菩提树下的杨过 阅读 (1355) | 评论 (2) 编辑
摘要:解释:as3中每个fla都可以对应一个.as文件,用于实现代码界面分离,上面代码中的CLASS_NAME即为.as文件中定义的类名注意:如果在Main.fla中用到了系统组件(比如TileList之类),最好在Loading.fla中也拖一个出来到舞台上,然后删除,否则在loading中加载main的实例时,会出一些莫名其妙的问题! 阅读全文
posted @ 2010-03-17 13:47 菩提树下的杨过 阅读 (1713) | 评论 (2) 编辑
摘要:FMS中的“远程共享对象”可以让多个Client端的flash应用共享同一个全局对象,并且当客户端中的任何一个改变该对象时,系统会自动将该对象回发到FMS服务器,同时FMS服务器也会将该对象重新广播到所有客户端。说得更通俗一点:如果二个机器上浏览这种flash应用,在一台机器上所做的操作,将会在另一台机器同步体现出来。这个能干嘛? 电子教室(比如老师在一台机器上演示教学,其... 阅读全文
posted @ 2010-03-17 11:17 菩提树下的杨过 阅读 (2071) | 评论 (4) 编辑
摘要:关键点:知道如何画线就行了,代码不复杂,直接看吧(从同事一本书上抄的) 做为对比,大家也可以参看:silverlight:手写板/涂鸦/墨迹/InkPresenter示例程序 阅读全文
posted @ 2010-03-16 18:28 菩提树下的杨过 阅读 (2336) | 评论 (0) 编辑
摘要:Flash中只有影片MovieClip(准确的讲是Sprite)可以调用startDrag,endDrag,创建对象拖动最简单的办法只要调用这二个方法即可其中myobj是舞台上的随便一个MovieClip实例startDarg还能在拖动时,设定拖动的边界:下面再来一个稍复杂一点的示例: 源文件下载:http://cid-2959920b8267aaca.skydrive.live.com/self... 阅读全文
posted @ 2010-03-16 15:11 菩提树下的杨过 阅读 (5611) | 评论 (1) 编辑
摘要:看了一周Flex/Flash的相关东东,发现总在与RTMP这个字眼打交道,今天终于下决心想深入了解这玩意儿,找到一篇不错的文章,转载与此,原文地址:http://blog.csdn.net/chenyanxu/archive/2009/09/02/4511087.aspx正文开始:RTMP 协议研究1 协议研究概述 协议设计和分析一直都是在工作遇到,正好在这里总结一下,说到协议,在这个网络的时代... 阅读全文
posted @ 2010-03-16 14:05 菩提树下的杨过 阅读 (6281) | 评论 (0) 编辑
摘要:硬件条件:一个摄像头 + 一台FMS服务器即可原理:摄像头实时采集视频源,然后推送到FMS服务器,其它客户从FMS上获取视频流。需要做二个fla,一个用于向FMS服务端推送视频源(即发送端),一个用于从FMS服务器获取并播放视频(即接收端)Server.fla关键代码:Client.fla关键代码:在线演示:推送端接收端 阅读全文
posted @ 2010-03-15 15:30 菩提树下的杨过 阅读 (6363) | 评论 (6) 编辑
摘要:原理:摄像头激活后,持续检测与之关联的Video对象是否在播放(即每秒帧数) 阅读全文
posted @ 2010-03-15 13:37 菩提树下的杨过 阅读 (2753) | 评论 (0) 编辑
摘要:Adobe的FMS真的是一个倍儿牛叉的技术!(至少Silverlight在"实时广播"方面目前还没有任何能超越FMS的迹象)曾经盛极一时的tudou,ku6,第一视频...等一大堆视频分享类网站,几乎都使用的是Adobe的FMS技术.今天先来做一个最简单的Hello World(例子出自FMS的官方文档)1.先创建一个FMS应用HelloWorld进入FMS的默认安装目录: C:\Program ... 阅读全文
posted @ 2010-03-14 13:49 菩提树下的杨过 阅读 (2035) | 评论 (0) 编辑
摘要:原理跟Silverlight中的几乎如出一辙(见Silverlight如何与JS相互调用):ActionScript3代码:嵌入flash的页面中这样处理: 阅读全文
posted @ 2010-03-12 16:01 菩提树下的杨过 阅读 (1751) | 评论 (1) 编辑
摘要:首先要习惯AS3.0的几个BT约定:1.一个.as文件中,只能定义一个类2.类名称必须与.as的文件名相同3.类定义中必须要有package包声明4.一个类最多只能有一个构造函数5.包package的路径/名称约定:这个初次接触时感觉有点小复杂,这样描述吧:如果您在定义一个类时,package的声明指定了名称,比如 package jimmy{ public class MyClass{...}}... 阅读全文
posted @ 2010-03-12 13:01 菩提树下的杨过 阅读 (1469) | 评论 (0) 编辑
摘要:一般来讲,在windows上安装软件从来都不是什么难事儿,但FMS却在安装过程中"充满"了误导(好吧,其实也就是夸张的说法而已)1.下载FMS3.5http://www.adobe.com/products/flashmediainteractive/?promoid=DJDTG这上面有一个免费开发版(除了连接数有限制,其它功能完全一样)2.一路Next安装注意:不要勾选安装Apache 2.2 ... 阅读全文
posted @ 2010-03-11 14:52 菩提树下的杨过 阅读 (2600) | 评论 (6) 编辑
摘要:今天折腾了大半天,总算搞出了一个功能简单的视频播放器,可以向公司领导交差了 :)步骤:1.Flash CS4 中 先拖一个"FLVPlayback"组件到舞台上注:FLVPlayback本身已经具备了flv播放的基本功能,简单设置下属性就能播放视频了2.加载xml数据源xml数据源格式如下:ActionScript加载XML的核心代码:3.将TileList组件与xml数据绑定起来 TileLis... 阅读全文
posted @ 2010-03-10 21:28 菩提树下的杨过 阅读 (3625) | 评论 (9) 编辑
摘要:必须有摄像头,上面的演示才能正常播放。 思路: 使用摄像头以及在线抓屏在上一节Flash/Flex学习笔记(2):捕获摄像头 里已经讲过了,就不重复粘贴了,至于在客户端保存文件,Flash里用起来也很简单:直接调用 FileReference 即可,另外为了减少图片大小,还可能借助AS3.0的扩展库(项目地址http://code.google.com/p/as3corelib/),把bmp格式的... 阅读全文
posted @ 2010-03-09 13:52 菩提树下的杨过 阅读 (2633) | 评论 (4) 编辑
摘要:flash终究只是客户端技术,所以很多时候还是需要与服务端技术(比如asp,asp.net,jsp,php之类)进行数据交互的,下面的代码演示了如何在flash中打开网页,以及用GET/POST二种方式向服务端发送数据服务端可以这样处理:如果发送了数据后,还要响应服务端的结果(比如取得服务端的返回值,再继续到Flash中处理),Flash中可这样写:服务端FlashHander.ashx可以这样处... 阅读全文
posted @ 2010-03-09 12:40 菩提树下的杨过 阅读 (5665) | 评论 (3) 编辑
摘要:Flash中一个fla文件可以关联到一个as文件,这个有点类似于asp.net中的code behind.可参考以下图操作:注:1.as文件的类名与文件名要求一样,并且默认情况下必须与fla处于同一目录。2.所有as文件必须继承自flash.display.Sprite下面这个是一个示例文件代码:默认情况下,如果您运行这段代码会发现根本没办法编译通过,通常会提示: 未发现fl.controls.L... 阅读全文
posted @ 2010-03-08 14:32 菩提树下的杨过 阅读 (5669) | 评论 (1) 编辑
摘要:Flash中使用摄像头,个人感觉比silverlight要更容易时间轴第一帧上敲以下代码就可以了:运行效果图:源代码下载:http://cid-2959920b8267aaca.skydrive.live.com/self.aspx/Flash/GetCamera.rar 阅读全文
posted @ 2010-03-08 11:02 菩提树下的杨过 阅读 (3684) | 评论 (2) 编辑
摘要:万世开头难,先来一个Hello World!吧,Adobe出了二款支持Action Script3语言的经典开发工具,即:Flash CS 与Flash Builder(以前称为Flex Builder),这二者的关系就好Silverlight中的Blend与Visual Studio先来看看Flash中如何玩:1.启动Flash CS 4,新建一个"Flash 文件(Action Script3... 阅读全文
posted @ 2010-03-07 20:27 菩提树下的杨过 阅读 (6147) | 评论 (5) 编辑
摘要:因工作需要,有可能要接手以前一位Flash程序员同事的代码,今天看了下Action Script 3.0,发现这玩意儿真的有点那个啥...打开Flash CS 4,新建一个Action Script3.0文件,在第一帧写几行代码:代码一:好象还不错,有点c#3.0中的var的味道,能根据赋值不同,自动推断变量类型.再写几行过过瘾:代码二:输出:i=0,类型:number,元素:上海i=1,类型:n... 阅读全文
posted @ 2010-03-06 19:10 菩提树下的杨过 阅读 (1734) | 评论 (4) 编辑