‘ActionScript3’ 分类的存档

  • 《ActionScript 3殿堂之路》学习笔记(2)

    日期:2009.07.23 | 分类:ActionScript3 | 评论数:0

    三、ActionScript 3 流程控制

    1. 条件判断

    判断结果只有2种:true和false,AS3中允许表达式的值不是布尔值,如果一个条件表达式的值不是布尔值,会自动执行类型转换,转换成相应布尔值
    a) if-else
    b) if…else if…else

    2. 循环

    • 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)

    日期:2009.07.23 | 分类:ActionScript3 | 评论数:0

    一、ActionScript 3 语言介绍

    ActionScript 3基本是ActionScript引擎的完全重写,代码执行效率最快可以比原有快10倍。
    AVM2(ActionScript Virutal Machine 2)支持AS3,并向前兼容。

    1.新特性

    1. 运行时异常处理机制
    2. 运行时类型
    3. 密封类
    4. 闭包方法
    5. 使用E4X理论处理XML数据
    6. 正则表达式
    7. 命名空间
    8. 新基元数据类型

    2.AS3开发工具

    1. Flash CS3
    2. 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.变量命名规则

    1. 使用有含义的英文单词作为变量名
    2. 采用骆驼式命名法
    3. 命名符合 min-length && max-information 原则
    4. 尽量避免变量名出现数字符号

    3.值类型和引用类型

    基本类型都是值类型,其余则为引用类型。值类型不用new来创建,必须用new创建的为引用类型。
    AS3变量本身是不能持有值的,值类型变量持有的是指向值类型数据的引用,引用类型变量持有的是指向引用类型数据的引用。
    不论值类型数据还是引用类型数据,实质都是对象。

    4.使用int、uint、Number注意事项

    1. 整数值有正负之分时,使用int,只处理正整数或颜色相关数值时,使用uint
    2. 有小数点时使用Number
    3. 当心整型数值的边界
    4. 小数相加不一定能得到证书,可以用Math.round()修正
    5. 不要让数值差距过大的浮点数相加减,结果可能有偏差

    5.运算符

    • 赋值运算符:=
    • 算术运算符:加、减、乘、除、模运算、求反运算
    • 算术赋值运算符:+=、-=、*=、/=、%=
    • 关系运算符:==、!=、===、!==
    • 关系运算符:>=、<=、>、<
    • 逻辑运算符:&&、||、!
    • 三元if-else运算符:?:
    • typeof、is、as(is返回布尔值,as直接返回值)
    • in
  • 获取当前舞台的大小

    日期:2009.06.26 | 分类:ActionScript3 | 评论数:0

    以下代码可写在时间轴上:

    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-交互示例

    日期:2009.06.05 | 分类:ActionScript3 | 评论数:0

    在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的讨论

    日期:2009.03.22 | 分类:ActionScript3 | 评论数:1

    转载自: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">继续阅读全文 &raquo;</a>
  • [酷东东] 提供给AS程序员学习socket客户端编程用的 socket测试服务端

    日期:2009.03.15 | 分类:ActionScript3 | 评论数:0

    原文出处: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类教程

    日期:2009.01.19 | 分类:ActionScript3 | 评论数:0

    昨天发了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国际级学堂

    日期:2009.01.17 | 分类:ActionScript3 | 评论数:0

    无意间发现的一个帖子,推荐了都是很好的网站,原文地址: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的文章及相关资源。
      教程实例:

      5. Flash Kit

      Flash Kitj是其中一个最大和最古老的Flash社区,成员数量超过60万,在这里,我们可以很轻易就可以找到跟我们有共同兴趣的Flash开发者。这里主要有三个版块:论坛、免费资源、一个大型教程项目(有18个类别)。
      教程实例:

      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

      日期:2009.01.01 | 分类:ActionScript3 | 评论数:0

      AS3编程|Programming

    Tag Cloud…

    3D ActionScript ActionScript3 AS ASP.net CN域名 Education Europeana EXCEL Flash google Internet JSON knightby Music Note Regexp RIA SEO theme US wordpress WOW XML 主机 主题 互联网|Internet 作品等级 博客 员工 图片 年轻人 插件 日志 日志|Note 欧洲数字图书馆 爆吧 牛year! 生活|Life 百度 网站 英语|English 谷歌 闪客小东 音乐

    Twitter

    Powered by Twitter Tools

    最近文章

    最近评论

    我们都是90后

    链接

    分类

    Statistics