About wpm

Posts by wpm:

 
4

很好用的flash调试工具

on Jun 12, 2010 in ActionScript, Articles, FMS, Flash, Flex, Uncategorized

1.FlashTracer(火狐的一个插件)http://www.sephiroth.it/firefox/flashtracer/

安装方法:1.去这个链接点击install now 下载这个插件

2.安装这个插件,安装完成后,重启firefox,并运行该插件,此时你会看到提示说不存在mm.cfg文件。

3.点击flashtracer右下角的工具(钳子)按钮,设置output file 为:

  • Windows XP: C:\Documents and Settings\{user}\Application Data\Macromedia\Flash Player\Logs\flashlog.txt
  • Windows Vista: C:\Users\{user}\AppData\Roaming\Macromedia\Flash Player\Logs\flashlog.txt
  • Linux: home/username/.macromedia/Flash_Player/Logs/flashlog.txt
  • OSX: /Users/{username}/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt

4.单击确定,然后你就会看到mm.cfg文件已经自动生成了。然后你就可以查看调试信息了。

查看到调试信息的前提条件是:flash player的版本是debug版本。

2.de MonsterDebugger http://demonsterdebugger.com/

这个工具安装之后,在自己的代码中加指定的debug代码就可以看到调试数据了。
3.fiddler2抓包工具,还可以使用autoresponse本地修改网络数据。

Tags: , ,

 
1

同一应用程序,五种屏幕显示(包括iPad)(翻译)

在我工作几周后,今早我能够验证一个概念:在完全不改变程序的情况下,可以在五种完全不同的屏幕上运行同一应用程序:
1.iPad
2.iPhone/iPod touch
3.Motorola Droid
4.桌面(于Mac,Windows,和Linux)
5.浏览器

这个应用程序被称为iReverse,它是一个功能性完整的黑白棋游戏(具备完美的AI)。
尽管iReverse很好玩,但是这个工程最令人惊讶的是它可以在不改变程序的情况下运行在完全不同的环境中。
换句话说,基于完全相同的代码来构建五种不同环境的程序版本。在这世界上没有其他平台能够有如此的灵活性——它们还差得很远呢。

所有这些版本都运行在AIR技术下,除了浏览器版本。但是因为我没有使用任何AIR特有的APIs(游戏的持久性是通过本地共享对象来实现而不是通过文件),所以它可以完全不用修改就能在浏览器中运行。

查看下面的视频和截图,你可以获得更多相关的信息。在接下来的几周里,我计划将所有iReverse的代码发布出来,并且写一篇文章来描述我学习到的多屏幕应用程序心得。

 
-

怎样使用Flash拾色器教程(翻译)

原文链接:http://www.graphicmania.net/how-to-use-the-color-picker-in-flash-tutorial/ 这个我们将要建立的应用程序,我肯定你已经在许多网站上见到过了。一种你可以改变某物体(汽车,衣服等)的颜色的情况。我们现在所讲的很简单,但是你在这一课上所学习的能够帮助你完成更加复杂的应用。 这是最终的效果预览。 建立一个新的 actionscript 3.0flash文件 设置场景大小为400*100,背景为灰色(#CCCCCC) flash文件中使用的层级结构如下图所示: 建立如下这些层: Background – 建立一个背景元件。使用白色颜色填充和宽0.1颜色为#666666边线的矩形工具,选择粗糙笔触样式,画一个矩形框。转换为元件,命名为background。确保你设置background为最底层(使用修改——>排列——>移至底层);锁定背景层。 Text – 建立两个文本框。 第一个是静态文本。文本框大小为153.65*19,并把它置于舞台上坐标为(x:53.3,y:65.45),在文本框中输入”当前被选择的颜色“,选择对齐方式为右对齐。我选择字体为veranda(为系统字体) ,确保嵌入你自己的字体。 第二个文本框在第一个的右边,是一个动态文本框。文本框大小为135.85*19,把它放在舞台上坐标为(205.8,65.55);给这个文本框取个实例名” myColor“;选择对齐方式为左对齐。我选择字体为veranda(为系统字体) ,确保嵌入你自己的字体。 colorpicker – 选择拾色器组件(窗口——>组件),拖到舞台上。在第一个文本框之上,坐标为(175.45,37)。 circle – 使用椭圆工具,在拾色器左边画一个圆,大小和颜色你可以自己决定,我画的圆是黑色填充没有边线的。大小为34.5*34.5,位置为(136.2,265.) 我们已经完成了设计,现在打开动作面板,我们将要添加一些actionscript代码来实现当用户从拾色器中选择了新的颜色时,改变圆的颜色,并在文本框中显示改变后的颜色值。在动作层,右击第一个关键帧并打开动作面板(或按F9)。 我们需要做的第一件事情是导入需要的类。 现在我们给拾色器设置默认显示值。默认值为圆的颜色。我们也可以预先定义一组颜色值到拾色器中供用户选择。如果你希望拾色器中所有颜色值都有效,你可以将ColorPicker.colors这一行注释掉。 接下来我们设置一个colorInfo 的变量类型为ColorTransform,并设置文本框显示当前颜色即默认值。 添加一个监听拾色器改变的事件,并在改变颜色时调用changedColor 方法。这个方法将改变圆的颜色,并更新文本框的显示。 好了,我们完成了。我希望你们喜欢这篇自学材料,并能学到些有用的东西。 如果你有任何问题,请留言,或者联系我。 Johnny 代码:拾色器代码

 
-

8个有用的ActionScript类(翻译)

原文链接:http://ntt.cc/2010/03/14/8-useful-misc-actionscript-class.html 在前面的文章里我已经特别的介绍了一些ActionScript类。例如:Color, TextField, Sound, Button… 这次我为你们准备了一堆各种各样的类。他们很普通并且经常被用于我们的编码工作中。因此他们对你们会有很好的帮助。现在让我们开始学习吧! 1.Survey Lite Library for Flex developers 对FLEX开发者非常有用的Survey Lite Library,这是一个非常基础并且很简单的,甚至还没有接近我们所做的。但是,如果你要创建诸如调查一类的Flex应用程序,它就非常有用了。Survey Lite Library旨在在Flex里不需要通过额外的工作来更加容易的构建用户调查的UI。 2.as3xls 能实现在Flex中阅读和写入 Excel文件。它支持从Excel 2.x版本——2003版本读取文本,数值,公式和日期等,并且能写入文本,数值和日期。公式也能更新,以反映单元格的变化,供他们参考。 3.Scale9Grid Class for Masking in AS3 它能按照9宫格的规则自动进行缩放。这个类允许你使用圆角矩形作为遮罩时,缩放它不会将圆角扭曲变形。 4.Acessing Flash vars in Flex (nice little Util class) 在Flex中访问flash vars中的参数。它使用[Mixin]标签来保证在应用程序在构建完成之前这些参数是有效的。 5.ActionScript 3 Cronjob 它通过使用计划任务语法能帮助你管理重复性任务或者在未来的单个任务。 6.NpContextMenu 该NpContextMenu类是一个相当简单的创建和使用上下文菜单交互的ActionScript 3类。这个类简单的将ContextMenuEvent.MENU_ITEM_SELECT事件再发送给对此感兴趣的响应菜单事件的任何外部类。这使得处理菜单事件和如何建立自己的菜单更加灵活。通过这种使用方法菜单能更加灵活。 7.InteractivePNG InteractivePNG使PNG图像中的透明像素不再响应鼠标交互。 8.Assetloader 资源加载类允许AS3开发者使用一个接口来加载任何文件。资源加载类的目标是使得开发者在加载图片,视频,声音,xml,AV1 SWF和AV2 SWF等资源时的接口更简单。它使用简单的对象符号很容易被开发者进行扩展。 延伸阅读 6款与声音有关的类 6款对字符串很有用的类 7款小而强大的TextField类 [...]

 
1

flash右键菜单相关知识

on May 4, 2010 in Articles, Flash, Tutorials, Uncategorized

五一在家看了一些关于flash右键菜单的知识,现在将一些知识点记录下来,以免以后忘了O(∩_∩)O! 1.右键菜单分为两个部分内建菜单和自定义菜单。 builtInItems:ContextMenuBuiltInItems 内建菜单项包含forwardAndBack、loop、play、print、quality、rewind、save 和 zoom。将这些属性设置为 false 将删除指定的 ContextMenu 对象中的对应菜单项。这些属性是可枚举的属性,默认情况下设置为 true。 customItems: Array(ContextMenuItem 对象的数组)自定义菜单。若要添加新的菜单项,创建一个 ContextMenuItem 对象,然后将其添加到 customItems 数组(例如使用 Array.push())。 hideBuiltInItems () 隐藏内建菜单,对自定义菜单没有用,即便设置了该函数,并没有设自定义菜单也不会将右键菜单所有项全部隐藏,还是会显示设置,调试版还会显示调试,此方法仅隐藏标准上下文菜单中显示的菜单项;它不影响编辑菜单和错误菜单中显示的菜单项。 如果希望能隐藏全部的右键菜单,可以借助JS来实现,其中心思想是利用DOM中的事件机制来截获本来要传递到Flash中的事件,然后该事件用响应的JS代码来处理,该JS代码调用相应的AS回调函数操作 Flash。不过接收对象的还是flash,只是它是作为DOM中的一个节点来接收事件的。原地址,效果和代码的链接地址如下: 原地址:http://www.uza.lt/blog/2007/08/solved-right-click-in-as3/ 效 果:http://www.uza.lt/rightclick/ 下 载:http://code.google.com/p/custom-context-menu/。 2.菜单的类型有三种:标准菜单(当您在 Flash Player 中右键单击时出现)、编辑菜单(当您在可选择或可编辑的文本字段中右键单击时出现)和错误菜单(当 SWF 文件未能加载到 Flash Player 中时出现)。 只有标准菜单和编辑菜单才能使用 ContextMenu 类进行修改。AIR 中只显示编辑菜单。 3.可以将 ContextMenu 对象附加到特定的按钮、影片剪辑或文本字段对象,也可以附加到整个影片级别。 为此,可以使用 Button、MovieClip 或 TextField 类的 menu 属性 4.在 Flash Player [...]

 
2

Flash键控大全

on May 2, 2010 in ActionScript, Flash, Flex, Uncategorized

[cc lang="actionscript"] package { public class KeyControlCode { public static var KEY_BACKSPACE:uint=8; public static var KEY_TAB:uint=9; public static var KEY_ENTER:uint=13; public static var KEY_SHIFT:uint=16; public static var KEY_CONTROL:uint=17; public static var KEY_PAUSE:uint=19; public static var KEY_CAPSLOCK:uint=20; public static var KEY_ESC:uint=27; public static var KEY_SPACEBAR:uint=32; public static var KEY_PAGEUP:uint=33; public static var KEY_PAGEDOWN:uint=34; public static var [...]

 
-

Cache-control缓存控制(转)

on Apr 27, 2010 in Uncategorized

网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。 其作用根据不同的重新浏览方式分为以下几种情况: (1) 打开新窗口如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如: Cache-control: max-age=5 表示当访问此网页后的5秒内再次访问不会去服务器。 (2) 在地址栏回车如果值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。 (3) 按后退按扭如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问。 (4) 按刷新按扭无论为何值,都会重复访问 当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问: Expires: Fri, 31 Dec 1999 16:00:00 GMT 在ASP中,可以通过Response对象的Expires、ExpiresAbsolute属性控制Expires值;通过Response对象的CacheControl属性控制Cache-control的值,例如: Response.ExpiresAbsolute = #2000-1-1# ‘ 指定绝对的过期时间,这个时间用的是服务器当地时间,会被自动转换为GMT时间 Response.Expires = 20 ‘ 指定相对的过期时间,以分钟为单位,表示从当前时间起过多少分钟过期。 Response.CacheControl = “no-cache” Expires值是可以通过在Internet临时文件夹中查看临时文件的属性看到的。

 
4

IE6+gzip+flash+(no-cache) == nightmare

on Apr 27, 2010 in Uncategorized

继上次祈福活动之后,公益活动再次出现在IE6用flash取后台数据,gzip压一下,然后response头里cache control设了no-cache肯定flash里显示不成功,抓包也没问题,返回的数据都是正确的,到了flash里就异常。而且很诡异的是不是所有的IE6都出问题。 解决的办法也很诡异有两种思路: 1.去gzip压缩,nginx里面可以配置对某一特定浏览器版本禁用gzip压缩。 2.设置 Cache-control: max-age=1或更小的值,反正不能用 Cache-control:no-cache,加个response头 Expires: 1970.1.1。 具体原因还要继续研究,可以肯定的是服务器能正常处理,但是在IE6下flash无法接受到服务器返回的信息。

 
-

将编译AS3区分Debug版本和Release版本(转)

on Apr 25, 2010 in ActionScript, Flash, Flex, Uncategorized

原文链接:http://www.xiaos8.com/article.asp?id=556 首先我们区分AS3的编译版本,目的是让同样的code,如果使用debug编译,则会含有很多测试代码方便调试;如果使用release编译,则不会将调试代码编译进去。 用过Visual Studio(以下简称VS)的程序员都知道,VS在编译时有个debug和release的选项,而flash builder(以下简称fb)在编译时,虽然可以选择不同路径编译,但无法像VS那样真正的区分编译版本。 下面我依然要说,fb的确没办法像VS那样真正的去区分版本进行编译,但fb可以条件编译! 什么是条件编译 一般情况下,源程序中所有的行都参加编译。但是有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件,这就是“条件编译”。 接下来看看,我们怎么样使用条件编译来完成区分编译Debug版本和Release版本: 1、首先来看一段代码: [cc lang="actionscript"] package { import flash.display.Sprite; public class TestBuild extends Sprite { CONFIG::debug public function TestBuild() { graphics.beginFill(0xff0000,1); graphics.drawRect(0,0,100,100); } CONFIG::release public function TestBuild() { graphics.beginFill(0x0000ff,1); graphics.drawRect(0,0,100,100); } } } [/cc] 2、TestBuild有两个构造函数,不同的是一个构造函数上有CONFIG::debug,一个有CONFIG::release; 通过理解,如果是debug编译画出来的是红色的正方形,而release编译是蓝色正方形。 3、然后我们使用mxmlc命令行对这段代码进行debug编译 mxmlc src/TestBuild.as -define=CONFIG::debug,true -define=CONFIG::release,false -output bin-release/TestBuild.swf 4、得到一个swf文件,打开一看是红色正方形,的确是debug版本编译 点击播放/隐藏媒体 uploads/201004/19_115454_testbuild.swf 5、然后改一下编译参数,进行release编译 mxmlc [...]

 
16

HTTP协议中POST、GET、HEAD的区别是什么(转载)

on Apr 15, 2010 in Uncategorized

原文链接:http://wenwenye820526.javaeye.com/blog/350081 HTTP 是Web协议集中的重要协议,它是从客户机/服务器模型发展起来的。客户机/服务器是运行一对相互通信的程序,客户与服务器连接时,首先,向服务器提出请求,服务器根据客户的请求,完成处理并给出响应。浏览器就是与Web服务器产生连接的客户端程序,它的端口为TCP的80端口,。浏览器与Web服务器之间所遵循的协议就是HTTP。 笔者曾在第六期的《用telnet登陆非23端口》一文中写过关于用telnet访问http/1.0,恰逢有朋友问起用netants下载文件时发生的一个关于http/0.9问题,打开IE5.0选择工具、Internet选项、高级,可以发现HTTP /1.1的设置,使用HTTP/1.1。所以,这里想向大家详细介绍关于HTTP协议的发展历程,以便于大家更好的运用HTTP访问Internet。 HTTP的早期版本为HTTP/0.9,它适用于各种数据信息的简洁快速协议,但是其远不能满足日益发展各种应用的需要。但HTTP/0.9作为 HTTP协议具有典型的无状态性:每个事务都是独立进行处理的,当一个事务开始就在客户与服务器之间建立一个连接,当事务结束时就释放这个连接。 HTTP/0.9包含Simple-Request&Simple-Responsed的报文结构。但是客户无法使用内容协商,所以服务器也无法返回实体的媒体类型。 1982年,Tim Berners-Lee提出了HTTP/1.0,在此后的不断丰富和发展中,HTTP/1.0成为最重要的面向事务的应用层协议。该协议对每一次请求/响应,建立并拆除一次连接。其特点是简单、易于管理,所以它符合了大家的需要,得到了广泛的应用。其缺点是仍会发生下列问题:对用户请求响应慢、网络拥塞严重、安全性等。 1997年形成的HTTP/1.1,也就是现在普遍使用的协议,在持续连接操作机制中实现流水方式,即客户端需要对同一服务器发出多个请求时,其实现在多数的网页都是有多部分组成(比如多张图片),可用流水线方式加快速度,流水机制就是指连续发出多个请求并等到这些请求发送完毕,再等待响应。这样就大大节省了单独请求对响应的等待时间,使我们得到更快速的浏览。 另外,HTTP/1.1服务器端处理请求时按照收到的顺序进行,这就保证了传输的正确性。当然,服务器端在发生连接中断时,会自动的重传请求,保证数据的完整性。 HTTP/1.1还提供了身份认证、状态管理和Cache缓存等机制。这里,我想特别提一下关于HTTP/1.1中的Cache缓存机制对HTTP /1.0的不足之处的改进,它严格全面,既可以减少时间延迟、又节省了带宽。HTTP/1.1采用了内容协商机制,选择最合适的用户的内容表现形式。 现在,很多地方都有用到的虚拟主机技术在HTTP/1.1中也可以实现。所谓的虚拟主机技术,就是同一主机地址实际对应多台主机。通俗的讲,当你同时在一个网站申请两个主页时,用协议分析仪可以发现其实这两个主页对应的是同一个IP地址。这样用多台完全相同的机器形成WWW服务器就可以提高处理的吞吐量。 传统的解决方案是改造域名服务器使其可以根据一定的算法将同一域名解释成不同的IP地址。分别对应虚拟主机的每台机器,其缺点是要求每台机器占用完全独立的IP地址,这与IP地址的缺乏是相矛盾的。 HTTP/1.1提供的解决方案在HTTP协议自身中加入了指定不同主机的功能,从而多台主机可以共享一个IP地址,既提高了性能又便于管理。 因为HTTP/1.1是Internet现行的标准协议,这里详细介绍其相关语法。 首先,HTTP/1.1格式可写为: 其中请求方法是请求一定的Web页面的程序或用于特定的URL。可选用下列几种: GET: 请求指定的页面信息,并返回实体主体。 HEAD: 只请求页面的首部。 POST: 请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。 PUT: 从客户端向服务器传送的数据取代指定的文档的内容。 DELETE: 请求服务器删除指定的页面。 OPTIONS: 允许客户端查看服务器的性能。 TRACE: 请求服务器在响应中的实体主体部分返回所得到的内容。 PATCH: 实体中包含一个表,表中说明与该URI所表示的原内容的区别。 MOVE: 请求服务器将指定的页面移至另一个网络地址。 COPY: 请求服务器将指定的页面拷贝至另一个网络地址。 LINK: 请求服务器建立链接关系。 UNLINK: 断开链接关系。 WRAPPED: 允许客户端发送经过封装的请求。 Extension-mothed:在不改动协议的前提下,可增加另外的方法。 比如: GET /index.html HTTP/1.1 Accept: text/plain /*纯ASCII码文本文件*/ Accept: [...]