FB设置swf舞台大小等参数
Flash IDE 可以在项目属性面板上设置项目的舞台的大小,Flash Developer可以在工程属性面板中设置生成的swf的大小,但当我们用Flex / Flash Builder 来做Flash 时候就没有直观的属性来设置舞台大小了。 为Flex项目设置舞台大小有多种方法: 1.通过设置编译器参数,来改变swf舞台大小等参数。这 里已Flash Builder 软件为例。 选择一个FB工程,在FB(Flash Builder)中选择菜单 “项目”-> “属性” -> “Flex编译器”, 界面如下图,在其中的附加的编译器参数中追加 “-default-size 600 302“, 就可以设置初始舞台大小为 600 x 302。 通过此种方法我们还可以更改其他一些参数,比如: -default-frame-rate 24 设置初始帧频为 “每秒24帧”, -default-background-color #A79C86 设置初始背景色为 “#A79C86”。 图1: 2.通过设置标签 在Class定义之前 import之后 package { import flash.display.Sprite; [SWF(width="800", height="600", frameRate="25", backgroundColor="#FFFFFF")] public class Example extends Sprite { } [...]
很好用的flash调试工具
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本地修改网络数据。
同一应用程序,五种屏幕显示(包括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类 [...]
flashdevelop的快捷键
flashdevelop的快捷键1、将鼠标点到变量上面后,同时按ctrl+shift+1(左键盘),可以自动添加变量或者函数。 2、复制一行代码。CTRL+D; ctrl+shift+k 颜色代码拾取器 ctrl+shift+b 注释年选代码段代码 ctrl+shift+f 代码收起 ctrl+shift+a 代码全部收起 ctrl+shift+e 代码全部展开 ctrl+shift+n 复制代码到一个新文件 ctrl+shift+i 生成了uid F3 查找 = ctrl+f F4 跳转到指定方法或类或变量被定义的地方 shift+f4 跳回到之前所有的地方选中代码段后–右键– Save As Snippet 保存为模板 ctrl+\ 移到下个大写或标点或空格后 ctrl+] 移动下个空行后
——————————————————————————-
1.文件夹搜索是Ctrl+I
2.注释// Ctrl+Q
3. /*…*/ Ctrl+Shift+Q
4. 代码提示 Ctrl+Alt+space
5. 复制一行 Ctrl+D
6. 交换行 Ctrl+T
7. ctrl+shift+1 自动完成代码,这个功能是FD代码提示最有用一个,他可以用来自动生成GET、SET,自动申明变量、方法,自动导入类(还有些以后补)
8. ctrl+b 范例代码 for、if等代码段的模板,只要按下这个键就可生成
9. ctrl+shift+k 颜色代码拾取器
10. ctrl+shift+f 代码收起
11. ctrl+shift+a 代码全部收起
12. ctrl+shift+e 代码全部展开
13. ctrl+shift+n 复制代码到一个新文件
flash实现拖拽时遇到的问题
我们实现拖拽功能,一般是通过监听拖拽对象的mouseDown事件来开始拖动,然后监听拖拽对象的mouseUp事件来停止拖动。 有经验的人会发现,如果我们快速的拖动物体到舞台以外地方时,会监听不到拖拽对象的mouseUp事件,所以如果你仅仅监听拖拽 对象的mouseUp事件的话,必然会出现快速移动下拖拽会异常的现象。我们先做一个例子来测试下: 1.在Flash IDE中新建一个元件(随便画个框就可以),将其放在舞台上,命名为aa; 2.选择第一帧,按F9弹出脚本编辑面板,在面板中输入以下代码: aa.addEventListener(MouseEvent.MOUSE_DOWN,startDragHandler); aa.addEventListener(MouseEvent.MOUSE_UP,stopDragHandler); stage.addEventListener(MouseEvent.MOUSE_UP,stopDragHandler); function startDragHandler(e:MouseEvent):void { aa.startDrag(); } function stopDragHandler(e:MouseEvent):void { trace(“target:”+e.target.name+”; currentTarget:”+e.currentTarget.name); trace(“aa:”+aa.x+”,”+aa.y); if((aa.x+aa.width)>stage.stageWidth) { aa.x=stage.stageWidth-aa.width; } if((aa.y+aa.height)>stage.stageHeight) { aa.y=stage.stageHeight-aa.height; } if(aa.x<0) { aa.x=0; } if(aa.y<0) { aa.y=0; } aa.stopDrag(); } 3.测试,Ctrl+Enter编译成swf,然后测试各种结果 (1)正常情况,在场景范围内拖动,只要在没有超出场景范围时放下鼠标,我们会发现输出以下结果 target:aa; currentTarget:aa aa:196,200 target:aa; currentTarget:null aa:196,200 从以上我们可以发现,我们分别执行了两次mouseUp的监听事件的处理函数,其实这个是因为拖拽对象aa和舞台场景stage都监听了 mouseUp事件,所以触发了两次运行。 (2)非正常情况下,在场景范围内快速拖动,当鼠标释放是在超出场景范围的区域时,我们可以看到以下执行结果: target:null; currentTarget:null aa:488,663 从结果中我们可以发现,当超出场景范围时,拖拽对象aa是监听不到鼠标释放mouseUp的事件的,所以才会出现我们在平常做拖拽的时候所遇到的那个奇怪的bug——无法触发对象的mouseUp事件,看到这里大家应该能够想到解决这个bug的方法了,那就是在监听拖拽对象的mouseUp事件外还需要监听stage的mouseUp事件,来辅助解决这个问题。 当然这是我想到的一种解决方法,如果你们有更好的解决方法,一定要告诉我哦^_^!