‘ActionScript3’ 分类的存档
-
《ActionScript 3殿堂之路》学习笔记(2)
三、ActionScript 3 流程控制
1. 条件判断
判断结果只有2种:true和false,AS3中允许表达式的值不是布尔值,如果一个条件表达式的值不是布尔值,会自动执行类型转换,转换成相应布尔值
a) if-else
b) if…else if…else2. 循环
- a) while
- b) do-while
- c) for
- d) for…in 和 for each…in
for…in输出对象成员的名字(键)
for. each…in输出对象成员的值 - e) break 和 continue
配合在循环加标签,可退出某个子或父循环
3. switch
跟其它语言一样,不加break的话,会继续执行语句四、 ActionScript 3 的函数
1. 定义函数2种方法
- 函数语句定义法 function xxx():int{}
- 函数表达式定义法 var xxx:function = function():int{}
区别在于语句定义法编译时会提升到最起码,而表达式定义法不会,如果定义之前执行不会成功,
2. 参数
AS3中如果参数是基元数据类型,可以看做是传值,如果不是基元数据类型,就是传引用,函数内部的操作将直接
函数中传入的参数被保留在一个arguments数组对象,AS2可以无视函数定义传入任意多参数,AS3则不可以,但可以用新关键字…(rest)接受任意多参数,rest可以另外命名3. 函数本质
ActionScrip 3 中,一切皆对象(Everything is an Object)。函数本身是Function类型的对象,一旦执行将建立一个特殊对象Active Object,该对象是不可访问的,同时每个函数都有一个内置的范围链(Scopes chain)。
-
《ActionScript 3殿堂之路》学习笔记(1)
一、ActionScript 3 语言介绍
ActionScript 3基本是ActionScript引擎的完全重写,代码执行效率最快可以比原有快10倍。
AVM2(ActionScript Virutal Machine 2)支持AS3,并向前兼容。1.新特性
- 运行时异常处理机制
- 运行时类型
- 密封类
- 闭包方法
- 使用E4X理论处理XML数据
- 正则表达式
- 命名空间
- 新基元数据类型
2.AS3开发工具
- Flash CS3
- Flex 2、Flex 3、Flex SDK
3.编译
AS3被编译成ActionScript bytecode,简称ABC文件,ABC文件放入SWF方可被Flash Player执行。SWF是Flash文件格式,容纳媒体资源和ABC字节码。
Flash CS3源文件后缀名为 .fla,Flex Builder使用了MXML语言二、ActionScript 3 基本元素
1.AS3中的数据类型
- 基本数据类型
Boolean、int、Numbers、String、uint - 复杂数据类型
Array、Date、Error、Function、RegExp、XML、XMLList、自定义类
2.变量命名规则
- 使用有含义的英文单词作为变量名
- 采用骆驼式命名法
- 命名符合 min-length && max-information 原则
- 尽量避免变量名出现数字符号
3.值类型和引用类型
基本类型都是值类型,其余则为引用类型。值类型不用new来创建,必须用new创建的为引用类型。
AS3变量本身是不能持有值的,值类型变量持有的是指向值类型数据的引用,引用类型变量持有的是指向引用类型数据的引用。
不论值类型数据还是引用类型数据,实质都是对象。4.使用int、uint、Number注意事项
- 整数值有正负之分时,使用int,只处理正整数或颜色相关数值时,使用uint
- 有小数点时使用Number
- 当心整型数值的边界
- 小数相加不一定能得到证书,可以用Math.round()修正
- 不要让数值差距过大的浮点数相加减,结果可能有偏差
5.运算符
- 赋值运算符:=
- 算术运算符:加、减、乘、除、模运算、求反运算
- 算术赋值运算符:+=、-=、*=、/=、%=
- 关系运算符:==、!=、===、!==
- 关系运算符:>=、<=、>、<
- 逻辑运算符:&&、||、!
- 三元if-else运算符:?:
- typeof、is、as(is返回布尔值,as直接返回值)
- in
-
获取当前舞台的大小
以下代码可写在时间轴上:
stage.align = flash.display.StageAlign.TOP_LEFT; //设置对其方式为左对齐 顶对齐 stage.scaleMode = flash.display.StageScaleMode.NO_SCALE; //见于帮助:整个 Flash 应用程序的大小固定,因此,即使播放器窗口的大小更改,它也会保持不变。 如果播放器窗口比内容小,则可能进行一些裁切 stage.addEventListener(flash.events.Event.RESIZE, whenResize); //写一个whenResize函数, 如: function whenResize(e:Event):void{ trace(stage.stageWidth, stage.stageHeight); }
注释应该很清楚
-
AS3与PHP-交互示例
在as3里,原来的loadVars方法已经被废弃,而改用一系列的类来实现与后台数据的交互,这些类是:URLLoader,URLLoaderDataFormat,URLStream,URLVariables。
URLLoader 类和原来的loadVars类似,是加载文本,2进制数据,xml,URL数据等信息的有力工具。URLLoader接受一个URLRequest 作为构造的参数,使用load方法来加载数据。URLLoder也可以进行监听,这点也loadVars不同,一个简单的示例如下://AS3代码 //声明一个URLLoader var loader:URLLoader = new URLLoader(); //监听数载加载完成事件 loader.addEventListener(Event.COMPLETE,loaded); //事件相应函数 function loaded(e:Event){ trace(loader.data); // output : this data is from php! } //加载test.php loader.load(new URLRequest("test.php"));
-
老生长谈关于Loading的讨论
转载自:http://bbs.actionscript3.cn/thread-9078-1-1.html
我是个新手,面对as3的Loading有点无从下手,看了很多的思路,但是都不知道哪个好,和大家讨论一下,试图得到一个完整的思路。
现在网上关于as3的loading的文章就那么几篇,文章附于最后
我们讨论一下什么是最好的解决办法:
从这三篇来看
思路大致是这样的
1、外载其它的文件没话说,使用Loader类,loaderInfo.addEventListener(ProgressEvent.PROGRESS,你的处理函数)
2、关于自身的loading,则分为两种观点,一种是使用一个load容器,不管什么都往其中加载,不存在main自身加载的问题。还有一种就是蓝色理想(第三篇)文章中说的可以利用SWF文档的主类的实例自身的loaderInfo属性来做。
至于在下载字节的计算倒是没什么好说的function 函数(事件名称: ProgressEvent){ var loadedPercent:int=事件名称.bytesLoaded/事件名称.bytesTotal*100; trace(loadedPercent) }
<a href="http://www.knightby.net/experiences-about-loading-in-actionscript3.html#more-268" class="more-link">继续阅读全文 »</a>
-
[酷东东] 提供给AS程序员学习socket客户端编程用的 socket测试服务端
原文出处:http://www.xiaos8.com/article.asp?id=107
转载此软件,请注明来源小S吧——sunbright博客,链接地址:http://www.xiaos8.com
有很多搞AS的同僚,在学socket客户端编程的时候,都会苦于没有socket服务端,因此没办法实践学习
因为工作需要,我一个同事帮我开发了一个非常简单的.net socket端,只是简单的做到了广发数据的功能但是用这个小东西,足以用来学习socket客户端编程
http://www.xiaos8.com/uploads/pro/socket.rar <- 点击此下载!!
http://www.xiaos8.com/uploads/pro/socket.rar <- 点击此下载!!安装办法:
如果你有安装Microsoft .NET Framework 3.5,那么直接运行SocketServer.application文件就行了如果没有,那么先运行setup,这个过程很漫长的。。他会连接远程的微软公司,去下载.NET Framework 3.5
过一会好了之后,确定成功了,那么以后就可以直接运行SocketServer.application进行使用了如果按照上述步骤操作,如果没有安装成功,那么可能是因为你的电脑中没有安装.NET Framework 2.0
一般说来,xp的系统上都有安装这个的,如果没有可能你的xp系统是很久以前的老系统了
可以选择性的更新关于.Net Framework 2.0的xp的更新包即可用法:
运行后会打开一个小窗口和一个数据输出窗口,小窗口是用来开端口创建socket的,上面是设置IP地址
一般本地设置127.0.0.1就行了,如果局域网设置,那么你可以把你相对局域网的IP设置上去
当然设置成外网能访问的IP也行的,但是注意如果是用了路由器,那么得设置一下,路由的DMZ主机,如果不会设置DMZ主机,那就百度一下吧。。。创建成功之后,现在就可以通过客户端连接试试了,顺便大家也可以测试一下ApplySocket类了。。嘿嘿
http://www.xiaos8.com/article.asp?id=105小窗口如果缩小了,会自动缩略到托盘图标上去,图标是一个小铃铛的样子
但是输出窗口不会消失,两个窗口随便关一个,都会造成socket服务关闭 -
JSON扫盲帖+JSON类教程
昨天发了json的AS3解析类,从大家的跟帖上来看,好多人还是不知道这个东西的,特建一个扫盲贴。
其实在AS中使用json其实并不是一个必须或是很好的选择,因为AS对xml的解析已经很不错了,但是为什么可以考虑使用json呢,有以下几点:- json是介于单纯的文本方式(如:firstName=Brett&lastName=McLaughlin&email=brett@newInstance.com)和xml(<request><firstName>Brett</firstName><lastName>McLaughlin</lastName><email>brett@newInstance.com</email></request>)中间的一种格式,他具有文本和xml的中性优势:数据量小和清晰的数据格式。
- json是JavaScript Object Notation的简写,那么意思就是说他是来自于javascript的东西。因为现在ajax的流行,大部分网站会采用ajax的模式和构架,那么json会是一个数据传输的首选(文本方式太简单,要是大数据量的时候无法理解,xml的方式数据量大,在解析的时候会增加服务器负担),那么要是一个网站从ajax构架的基础上出一个flex/flash版的界面的时候使用json会最少地减少服务器端的程序改动。
- 服务器端现在有成熟的JSON解析代码(因为JSON运用太广泛了),那么在开发的时候也不用担心服务器端的解析。
ps:我怎么只能想到上面三点啊,会不会理由太少了?
JSON 是什么?
简单 JSON 示例
按照最简单的形式,可以用下面这样的 JSON 表示名称/值对:代码:
{ "firstName": "Brett" }这个示例非常基本,而且实际上比等效的纯文本名称/值对占用更多的空间:
代码:
firstName=Brett但是,当将多个名称/值对串在一起时,JSON 就会体现出它的价值了。首先,可以创建包含多个名称/值对的记录,比如:
代码:
{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }从语法方面来看,这与名称/值对相比并没有很大的优势,但是在这种情况下 JSON 更容易使用,而且可读性更好。例如,它明确地表示以上三个值都是同一记录的一部分;花括号使这些值有了某种联系。
值的数组
当需要表示一组值时,JSON 不但能够提高可读性,而且可以减少复杂性。例如,假设您希望表示一个人名列表。在 XML 中,需要许多开始标记和结束标记;如果使用典型的名称/值对(就像在本系列前面文章中看到的那种名称/值对),那么必须建立一种专有的数据格式,或者将键名称修改为 person1-firstName 这样的形式。
如果使用 JSON,就只需将多个带花括号的记录分组在一起:代码:
{ "people": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }, { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" } ]}这不难理解。在这个示例中,只有一个名为 people 的变量,值是包含三个条目的数组,每个条目是一个人的记录,其中包含名、姓和电子邮件地址。上面的示例演示如何用括号将记录组合成一个值。当然,可以使用相同的语法表示多个值(每个值包含多个记录):
代码:
{ "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }, { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" } ], "authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] }这里最值得注意的是,能够表示多个值,每个值进而包含多个值。但是还应该注意,在不同的主条目(programmers、authors 和 musicians)之间,记录中实际的名称/值对可以不一样。JSON 是完全动态的,允许在 JSON 结构的中间改变表示数据的方式。
在处理 JSON 格式的数据时,没有需要遵守的预定义的约束。所以,在同样的数据结构中,可以改变表示数据的方式,甚至可以以不同方式表示同一事物。ps:以上例子都是来自http://www.ibm.com/developerworks/cn/web/wa-ajaxintro10/,掌握 Ajax,自己懒,看人家有就顺便用了
当当当,我又回来了,上周忙这上班没顾上写用法,下面就介绍一下adobe的json类的用法。
上次发表的json类有问题(http://bbs.actionscript3.cn/thread-1625-1-1.html),因为我也是从别人处下载的,谁知道是一个半成品。望大家别生气啊,建议管理员给删除了!
这次是adobe的官方的类,我修改了一下包,这次就可以用了。下面是教程,比较简单:
1、服务器端来的json
怎么样获得服务器端的json我就不说了吧(就是通讯),那么得到的应该是一个字符串,存入变量serverJSON,使用方式如下:
json就是一个对象了,简单吧。
举一个例子:
上面的JSON的一段代码:代码:
{ "programmers": [ { "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" }, { "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" } ], "authors": [ { "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" }, { "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" }, { "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" } ], "musicians": [ { "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" }, { "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" } ] }存入变量:serverJSON
代码:代码:
var serverJSON:String = '{ "programmers": [{ "firstName": "Brett", "lastName":"McLaughlin", "email": "brett@newInstance.com" },{ "firstName": "Jason", "lastName":"Hunter", "email": "jason@servlets.com" }, { "firstName": "Elliotte", "lastName":"Harold", "email": "elharo@macfaq.com" }],"authors": [{ "firstName": "Isaac", "lastName": "Asimov", "genre": "science fiction" },{ "firstName": "Tad", "lastName": "Williams", "genre": "fantasy" },{ "firstName": "Frank", "lastName": "Peretti", "genre": "christian fiction" }],"musicians": [{ "firstName": "Eric", "lastName": "Clapton", "instrument": "guitar" },{ "firstName": "Sergei", "lastName": "Rachmaninoff", "instrument": "piano" }]}' var s:Object = JSON.decode(serverJSON); //开始使用 trace(s.programmers[0].firstName);//输出:Brett
不是吧这么简单。其实转变后就成为一个对象了,可以通过点语法来访问这些值了。XML靠边去。
2、本地对象做成JSON
你要是能自己拼出JSON字符串也可以,不过我们是在面向对象的世界啊,那么我们都是对象啊,到时候对象直接就可以来用了。
举一个例子:代码:
import json.*; var myObject:Object = new Object(); myObject.ab = "adfsdf"; myObject.cd = Math.random(); trace(JSON.encode( myObject ));//输出:{"ab":"adfsdf","cd":0.0599129400216043}
这样就可以给服务器了。
总结:就两个方法,JSON.decode(String),JSON.encode(Object),有这么简单的方式实现传输量小,而且简单的数据格式,我们为什么还不用呢?
其实XML自然也有他自己的强势,当一个结构复杂的数据结构出现的时候,这个时候JSON就很难搞定了,XML就是首选了。
这样就可以给服务器了。
总结:就两个方法,JSON.decode(String),JSON.encode(Object),有这么简单的方式实现传输量小,而且简单的数据格式,我们为什么还不用呢?
其实XML自然也有他自己的强势,当一个结构复杂的数据结构出现的时候,这个时候JSON就很难搞定了,XML就是首选了。复制内容到剪贴板代码:
import json.*; var json:Object = new Object(); json = JSON.decode(serverJSON);
-
12个优秀的Flash/ActionScript国际级学堂
无意间发现的一个帖子,推荐了都是很好的网站,原文地址:http://www.cnblogs.com/nosnowwolf/articles/1246213.html
Adobe Flash是不错的东西,利用平滑的动作使简单的网页富有动态,如果你正在寻找优秀的 Flash 资源,那么这篇文章可以帮到你。 如何制作可爱的网站, Flash 绝对是其中一个重要的因素,这12个网站是应该好好放在收藏夹中的,因为里面的资源对提升我们的 Flash技能很有帮助,本文的每介绍一个网站,均会列出其三个最优秀的教程实例。
1. kirupa.com

kirupa.com在一个多项目的教程网站,除了优秀的Flash教程,还包括Silverlight, ASP.net, PHP, Photoshop,CSS等,精心的详细的教程将Flash制作分解到很详细的分块。里面Flash教程共分为7类,包括绘画基础,特殊效果,服务器端的Flash 和游戏开发。
教程实例:2. gotoandlearn.com

有不少的朋友喜欢看是可视化的教程,然后按照视频教程的内容一步一步制作,如果你是这样的人,那么gotoandlearn.com是一个很不错的选择,在这里Lee Brimelow提供了免费的Flash视频教程。
教程实例:3. gotoAndPlay()

gotoAndPlay()致力于为Flash游戏开发者提供资源,这里是一个由专业开发者组成的社区,有论坛、书籍及相关资源,当然也有针对Flash开发的教程和文章。相关资源可以从话题、专门知识和类型进行分类。
教程实例:4. Adobe – Flash Developer Center

Adobe’s Flash Developer Center是一个以Flash开发者为中心的社区,在这里,我们可以找到关于Flash的教程,文章和相关资源。特别地,在ActionScript Technology Center还可以找到关于ActionScript的文章及相关资源。
教程实例:- Using ActionScript to pause and loop the timeline in Flash
- Drawing with the Pen tool
- Creating a 3D button animation for Flash
5. Flash Kit

Flash Kitj是其中一个最大和最古老的Flash社区,成员数量超过60万,在这里,我们可以很轻易就可以找到跟我们有共同兴趣的Flash开发者。这里主要有三个版块:论坛、免费资源、一个大型教程项目(有18个类别)。
教程实例:- Making movieclips point at the mouse
- Move a sprite with the keyboard
- How to use hitTest in a simple game
6. ActionScript.org

ActionScript.org是一个提供Flash, Flex, ActionScript相关资源和信息的网站,这里有一个相当活跃的论坛,一个名为ActionScript Library的资源库,可以提供700个对象的资源下载。
教程实例:7. Flash and Math ActionScript 3 Tutorials

Flash and Math对AS3的教程进行了详细的收集,这里的资源包括基本概念到高级应用,所以可以满足不同层次的Flash开发者使用,这里也提供教程下载,包括原文件的下载。
教程实例: -
AS3编程|Programming
AS3编程|Programming
Tag Cloud…
- 生活就像强奸,要么反抗要么就去享受 工作就像轮奸,您不行就让别人上 2010-04-02
- 又放假啦! 2010-04-02
- @jinwen 呃,我想知道jinwen哥哥的PHP CSS JS都是怎么学的? in reply to jinwen 2010-03-27
- 求WM的twitter客户端 2010-03-12
- 买了个WM手机,求教如何用它写WP? 2010-03-12
- More updates...
Powered by Twitter Tools
最近文章
最近评论
- likekart 在 域名续费成功! 上的评论
- weeper 在 WordPress中自定义域的应用 上的评论
- weeper 在 WordPress中自定义域的应用 上的评论
- 鸟人网 www.BirdUser.com - 鸟人网 博客 在 Theme Codename H 安装及修改指导 上的评论
- Paulie 在 Books 上的评论
我们都是90后
链接
分类
- ActionScript3
- ASP.net
- English
- Entertainment
- Flash
- Gossip
- HTML
- Images
- Internet
- Life
- Note
- OthersApp
- Software
- Study
- WordPress
- 信息技术|IT
- 小K闲话
- 未分类
- 网站志