收藏 分享(赏)

ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调.doc

上传人:11xg27ws 文档编号:7805949 上传时间:2019-05-26 格式:DOC 页数:15 大小:777KB
下载 相关 举报
ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调.doc_第1页
第1页 / 共15页
ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调.doc_第2页
第2页 / 共15页
ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调.doc_第3页
第3页 / 共15页
ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调.doc_第4页
第4页 / 共15页
ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调.doc_第5页
第5页 / 共15页
点击查看更多>>
资源描述

1、 近期项目中可能要用到 Flash 存取数据,并与 JS 互调,所以就看了一下ActionScript 3.0,现把学习结果分享一下,希望对新手有帮助。目录ActionScript 3.0 简介Hello World文件读写数据存储(SharedObject)与 JS 互调ActionScript 3.0 简介ActionScript 3.0 是一种强大的面向对象编程语言,ActionScript 3 符合 ECMAScript Language Specification 第三版。它还包含基于 ECMAScript Edition 4 的功能,比如类、包和名称空间;可选的静态类型;生成器和迭

2、代器;以及非结构化赋值(destructuring assignments)。随着 Web 应用程序项目需求的增长,也要求 ActionScript 引擎有重大的突破。ActionScript 3 引入了一个新的高度优化的 ActionScript Virtual Machine(AVM2),与 AVM1 相比,AVM2 的性能有了显著的提高。这使 ActionScript 3 代码的执行速度几乎比以前的 ActionScript 代码快了 10 倍。(本段内容来自百度百科)ActionScript 3.0 核心语言有很多新特性:1、运行时异常处理机制2、运行时类型3、密封类4、闭包方法5、使

3、用 E4X 理论处理 XML 数据6、正则表达式7、命名空间8、新基元数据类型Hello World这里用一个简单的例子演示如何开发 ActionScript 3.0 程序(IDE 为 Flash CS6),内容包括添加组件,注册事件,跟踪输出。1、打开 Flash CS6,新建一个 ActionScript 3.0 文档,保存为HelloWorld.fla注:此处还可以选择“文件”菜单,点击“新建”命令进行新建。2、在新建的文档上添加按钮组件把组件命名为 btnHelloWorld,并设置 label 值为“Hello World”,如下图所示:3、添加文档类(即 ActionScript

4、3.0 代码文件)输入类名称“HelloWorld”(可自定义),然后保存(Ctrl + S)或点击输入框后面的“编辑类定义”按钮,http:/ 会弹出图中的提示框,点确定即可。然后再次点击输入框后面的“编辑类定义”按钮,IDE 会自动创建一个 HelloWorld 类,并打开 AS代码编辑界面:把文档保存为 HelloWorld.as,与 HelloWorld.fla 在同一目录下。4、给按钮组件注册点击事件。注册事件要引入 flash.events.MouseEvent 包,注册事件要用 addEventListener(事件类型, 事件处理方法) ,这个跟 JS 中的基本一致。这里要注意

5、的是,如何取到文档中添加的那个 bthHelloWorld 按钮呢?不同于 JS 中我们用 ID 或 TagName 或 Name 去查找,http:/ 在 AS 中界面上定义的组件可以直接用实例名称。代码如下:5、添加跟踪代码:在点击按钮时,输出 Hello World!AS 中的跟踪代码用 trace(string),类型于 JS 中的 console.log(),代码如下:6、运行,查看效果按 Ctrl + Enter 快捷键运行,然后点击界面上的按钮,观察输出面板中的输出:至此,HelloWorld DEMO 已经完成。怎么样,有 JS 基础的同学是不是觉得很容易上手?不过目前介绍的只

6、是 Flash ActionScript 3.0 中的冰山一角。文件读写AS 3.0 中的文件读要用到 .URLLoader 和 .URLRequest 和 .URLLoaderDataFormat 包,文件写要用到 .FileReference 包。另外,对于文件的写更像是文件下载,会弹出一个选择路径的窗口。在 AIR 中可以用其他方式实现不弹窗的文件写。1、文件读取文件数据的读取是用 URLLoader 加载一个 URLRequest 。URLLoader 可用来加载文本文件、二进制数据或外部变量的值。使用方法如下:var dataLoad:URLLoader = new URLLoade

7、r();/文件路径var dataFilePath: String = “demo.txt“;/构造 URLRequestvar dataRequest: URLRequest = new URLRequest(dataFilePath);/设置数据格式dataLoad.dataFormat = URLLoaderDataFormat.TEXT;/注册加载完成事件dataLoad.addEventListener(Event.COMPLETE, loadDataComplete);/开始加载dataLoad.load(dataRequest);/数据读取完成后进行处理private funct

8、ion loadDataComplete(e: Event):voidvar fileData:String = dataLoad.data;2、文件写入写文件直接用 FileReference 的 save 即可,代码如下:var f:FileReference = new FileReference;f.save(内容, 文件名);我写了一个 DEMO,界面如下,界面绘制方式跟上面界绍的一样。AS 代码如下:View Code 代码中有部分是控制格式的,可以不看。数据存储(SharedObject)如果不依赖服输务端,AS 中的数据存储一般用的是 SharedObject(译为本地共享对象

9、),SharedObject 跟浏览器中的 cookie 类似,不同的有两点:1、SharedObject 默认没有过期时间,cookie 默认随浏览器关掉就失效2、SharedObject 存储数据默认限制为 100k,cookie 要小一些,大多数浏览器支持最大为 4096 字节的 Cookie。SharedObject 的使用比较简单,示例代码如下:/创建一个名为 test 的本地共享对象; var so = SharedObject.getLocal(“test“); /给共享对象添加一个 username 的属性并存储数据 so.data.username=“artwl“; /添加该

10、属性不会将它保存到硬盘。只有影片被卸载或使用语句 so.flush()强制保存信息。 so.flush(); /现在可以用 trace 语句获取一下 username 的值; trace(so.data.username); DEMO 界面如下:AS 代码如下:View Code 与 JS 互调ActionScript 与 JS 互调可能是很多前端开发者比较感兴趣的地方。需要引入 import flash.external.ExternalInterface;1、ActionScript 调用 JavaScript 的方法这里要用到 ExternalInterface 类的 call 方法:E

11、xternalInterface.call(functionName:String,.arguments):fuctionName:要调用的 JavaScript 函数名arguments: 参数,可选1)不带参数的情况:/JavaScript:function Show() alert(“I am a js function“);/ActionScript 直接用一条语句调用ExternalInterface.call(“Show“);2)带参数的情况:/JavaScript:function Show(message) alert(message);/ActionScript:Extern

12、alInterface.call(“Show“,“I am a message from AS“);2、JavaScript 调用 ActionScript 的方法ExternalInterface.addCallback( functionName:String, closure:Function):void functionName:要注册的函数名closure:对应的执行函数示例:/ActionScript:ExternalInterface.addCallback(“Show“,OnShow);private function OnShow(message:String):string

13、return message;/JavaScript:function CallAS() /swfobj 是页面引入的 swf 对象swfobj.Show(“i am a message from js“);这里有几点需要注意(都是这两天踩过的坑):1、页面上引入的 swf 中 allowScriptAccess 参数的值要改为 always ,否则 AS调 JS 会不起作用(权限问题):2、如果直接用 Flash CS6 的“文件”-“发布预览”-“HTML” 命令生成 HTML 页面,引入的 object 会有两层,默认只有外层的 object 标签上有 id 属性,我们要自己在内层obj

14、ect 也加上 id 属性(值可以自己写),这样做的目地是,我们不知道浏览器最终渲染时用的是哪个 object,所以要自己判断,HTML 代码如下:这里内部 object 的属性 id=“FlashJSDemo1“就是我自己加上去的。在 JS 中要这样判断:var FlashJSDemo1 = document.getElementById(FlashJSDemo);var FlashJSDemo2 = document.getElementById(FlashJSDemo1);/这一句就是判断用的是哪个 objectvar FlashJSDemo = FlashJSDemo1.setName != undefined ? FlashJSDemo1 : FlashJSDemo2;FlashJSDemo.setName(name);注:这里的 setName 是我在 AS 中定义的,供 JS 调用的。在我机子上,用 chrome 浏览器的测试结果是最终 setName 绑到了内层 object 上。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报