ActionScript3.0经典教程

所需积分/C币:10 2011-12-19 17:18:46 2.57MB PDF
1
收藏 收藏
举报

大家好!欢迎大家来看我们的教程。笔者经常在网上查看一些资料,其中发现一些比较不错的 FLASH 网站和博 客。有些教程写的确实很精彩,觉得爱不释手。一直很想把这些优秀的教程总结一下,但由于时间的关系这个愿望 一直没有实现。现在机会来了,觉得将这些经典的教程收录到一本电子书当中,一来是做一个学习总结,二来是想 发给大家,为大家学习 ActionScript3.0 提供一些帮助。这就是制作本书的一个初衷。希望大家喜欢这本电子书。  提到 FLASH,可以说在网络中占有的地位越来越重要,很多网站都离不开 FLASH。从最早的 FLASH 广告,到后 来的 FLASH 网站,再到后来的 FLASH 交
AS3响应右键事件 作者: DN Web 文章来源http://hi.baiducom/dn%5fweb/blog/item/72dc9f25c2172b3b8644f924.htm 转载自http://www.duzengqiang.com/blog/post/355.htm1 From:http://www.roading.net/blog/post207.html flash对右键的按下没有对应的响应事件,但是有的时候需要用到这个事件 在以前可以根据Key的侦听事件屮Key. i sDown(2)来判断按下了右键. 但是在as3中Key. isDown函数因为安仝原因被删掉了.那么在as3中怎么获取右键的按下事件呢? as3的 Mouse和 Mouseeyent也没有右键的事件.同样在 Keyboard和 KeyboardEvent中没有右键相关的事 件 但是,如果想想 Contextmenu,就有办法了,在 flash屮,右键响应只关联着右键菜单.所以在 ContextMenu甲面有右键的响应事件 Contex tmenuevent. MENU Select(在as2里面是 ContextMenu. onSclcct) as3中文助里面对 menuselect的解释:在用户首次生成上下文菜单但尚未显小|:下文菜单内容时调 度。这将允诈您的程序在显示菜单之前修改上下文菜单项集。用户通过右键单击指针设备来生成 上下文菜单 所以可以用 menuSelect来作为右键的响应事件.在这个事件执行后就会显示右键菜单.在这之前,可 以执行响应函数,修改对应的菜单内容 使用方法 as3: myMenu new ContextMenu) my Menu. hi deBuiltInltemso) myMenu addEventListener(ContextMenuEvent mEnU Select, menuSelect) this contextMenu myMenu function menuSelect(e: ContextMenuEvent) trace("menuSelect") as2 var my cm: ContextMenu new ContextMenu o function menuHandler(obj: Object, menu: ContextMenu) trace( menuSelect') my cm on Select= menuHandler this menu my cm AS3操作XML 仵者:A客网 文章来源http://www.51as.com/as3/as3caozuoxml32.htm 简单说说AS30中对于XML支持的不同吧: AS20对ⅪML的支持勉勉强强,将就着可以用。而AS3.0中对XML的支持是全方位的,极共强大和灵活的。 AS20对XML的支持不是内建的(buid-n),也并非基于 ECMAScript for XML(E4X)标准。而AS3.0中对XML的支持合E4X标准 它的设计有个优点 1.简易。包括操作和可读性。你会发现AS30中对丁ⅫML的操作狁如对一个晋通 Object对象一样浅显易懂。语句非常浅白流畅。 2.连续性。其各个功能的设计和AS30其余的部分思想一致,易于理解。 3.熟悉。操作符和操作逻辑对我们来说都相当熟悉易用 在AS20时代,为了解决这部分的问题 效率 效率包括两方面,开发效率,和代码执行效率。开发效率的论述见上。AS30对于XML的执行效率远远高过没有内建XML支持的 AS2.0 XML的输入 在AS20时代,在代码行中输入ⅩML代码是—种痛苫。如果不是从文件中读取,那么我们就要忍受一长串挤在一块儿的字符串。 而在AS3.0中,太简单了。直接按照ⅩML的内容输即可,想换行就换行,想Tab就Tab,就一个字,爽。 新建一个fa,选中第一帧,F9打开动作面板,输入如下代码: ∥1 var kingdaXML: XML <tutorial> <item id=1> <level>2</level> <title> First touch of Flash 9</title> </item> <item id=2> <level>3</level> <title> Binding Classes</title> </item> <item id=3> <level>4</level> <title>Document Class</title> </item> </tutorial> trace(kingdaXML item[ 1].level);//output: 3 ∥l2 var kS: String =<root>txt> this is a test</txt></root> var kXML: XML new XML(ks) trace(KXML txt://output: this is a test 例1中注意到没,直接写ⅩML内容在后面,想换行就换行,想tab就tab,多爽。不想AS2.0中写 string时,换个行就不行了。 与完这一句后,我们所写出的类似丁 string的形式立刻就被 Flash理解成了ⅩML对象了,所以我们马上就可以用""操作符来访问相应 的属性。本例中访问了第2个iem节点的leve值。 这么简便直观的访问方式是不是比AS2.0中那千遍一律的 childnodes要好得多? 不过要注意,最后可以加";"结束。但我为了ⅩML的视觉美观没有加。这个没有关系,编译时不会考虑这一点 事实上只要你喜欢,AS1.0,2.0,3.0中语句结束都可以不加";"号。但是这并不是—个好的编程习惯,更个符合严谨的白我语法要求。 因此我建议,除了XML可以不加外,其余的都应该加,呵呵。 例2展示了如何将一个包含了XML内容的字符串转换成XML对象。用的是XML的构造函数转换的。 AS3更冇趣的是,可以使用己冇的变量来直接构造ⅩML,带来方便的编程特性。如下例 var rootNodeName: String =site var subNodeName: String ="orgin", var subNode Content: String =Kingda's Blog var attributeName: String ="url varattributevalue:String=http://www.kingda.org var extXML XMl= <rootNodeNamefattributeName=fattributevalue> <subNodeName>subnOde Content</subNodeName5> </irootNodeName>; trace(extXML tostring utput: <siteurl="http://www.kingda.org> <orgin> Kingda's Blog s/orgin> </site> 要点就是要把变量用"括起来,并且设置属性时不要再加引号了 XML的外部读取 包括读取外部xm文件,和通过URL读取xm。AS30中不像2.0那样集成了一个load() AS30在架构上就设计了所有与外部打交道的都由 URLrequest对象来进行,数据都由 URLloader对象来接受。这个我们会在下一部 分教程详细井解。这一次只要知道这样的架构设计是深思熟虑,且简洁优美的即冋 var myXML: XML new XMLO: /初始化XML地址,可以是本地的"x.xm",也可以是如下的URL地止 varXml_url:String="http://www.kingda.org/blog/index.xml"i//iilBlogRssFeed var myXMLURL: URLRequest= new URLRequest(XML_URL) var myLoader: URLLoader new URLLoader( my XMLURL); /漆加装载完成侦听器 / Event. COMPLETE的值是" complete",直接用此字等串也可以。 my Loader, addEventListener(Event. COMPLETE, XmILoaded) function xmlLoaded(evtobj: Event)t ML =XML(myLoader data) trace("数据装载完成."); trace(myXML) XML的操作 查询 /显示eve为4的节点的tite值 trace(kingdaXML item level = 4). title) //output: Document Class //显示eve>2的节点的tte值,本处结果大于1,所以是一个 XML Array trace (kingdaXML. item. level >2). title) /output <title> Binding Classes</title> <title> Document Class</title> ∥/使用属性用@开头即可。真方便。 trace(kingdaXML. item. level 2).@id) //output: 23 /这儿要注意,实际上是23。一个Aray /也可以用属性米做判断 trace(kingdaXML item (@id >1).title) 2.添加或者修改属性 方便的不能再方便,直接写即可。爽翻天啊 把d==1的节点 level值改为2 kingdaXML. item (@id==1)level= 2 把id==1的节点添加一个属性page kingdaXML. item (@id==1).page =100 trace(kingdaXML. item. @id==1); 3按某条件插入节点 var newNode1: XML <item id=2.5><level>0</level><title> None</title></item> var newNode2: XML <item id=1.5><level>os/level><title> None </title></item> //把 newNode1插入到id==2的节点后面 ngdaXML kingdaXML insertChildAfter(kingdaXML. item. @id==2), new Node1 //把 new node1插入到id==2的节点前面 kingdaXMl kingdaXML insert ChildBefore( kingdaXML item ( @id==2), new Node2) trace(kingdaXML); XML的高级操作 常用的操作上面已经介绍的很清楚了。高级操作则是留给对ⅩML应用更深的兄弟们。 几点注意 在AS3.0屮,XML类的 ignoreWhitespace默认为tue。 2AS30支持对 comments的直接操作。但默认 XML. ignore comments= false var kingdaXML: XML= <item> <I-- comment 1 <I-- comment 2--> </item> trace(kingdaXML. toXMLStringo) ∥/默认为true时,不会显示 comment的 访问 comment用 trace(kingdaXML comments([1].toXMLStringO) 3XML支持克隆。 使用copy()可以得到一份现有ⅹML的值拷贝 var kingda Copy: XML kingdaXML copy 对 kingda Copy操作朊不会影响 kingdaⅩML对象了。 4.极有用的 descendants函数返回一个 XMLList对象,包括所有的子节点 设 ignore Comments= false;和 ignore Processing Instructions= false后,连 comments和 process instructions也会包含在这个 XMLList对象中。 运用小例如下 XML. ignore Comments= false var xm xml= body> <I--comment -- text1 <a> <b>text2</b> </body>i trace(xml descendants(* ).length);//5 trace(xml descendants(* [OD:////<!--comment--> trace(xml descendants(* )[1.toXMLString):// text1 trace(xml descendants( a).toXMLString o);//<a>sb>text2</b></a> trace(xml descendants( b").toXMLStringo)://<b>text2</b> 还有太多的ⅩML有用操作功能了(如对 names pace的操作)。用到时再去翻参考书吧。 以上的介绍可以满足绝大部分运用了。 对了AS2.0己有的ⅩML类,在3.0中变成了Ⅹ MLDocument类,使用方法不变。便丁AS2.0程序移植。其余个推荐 AS3工程中的 Loading的应用 仵者:A客网 文章来源:httw51ascm/as3/AS3 gongchengzhongdeLoadingdeyingyong239htm 今天又来介绍 Loading…(-!像整天都介绍 Loading.希望没误导各位) 首先由于AS程没有帧.所以不能用常用的方法来做 Loading 这里介绀的方法使用元标签 Frame(应该是元标签吧?还是叫元数据标签) 网上对 Frame的介绍是.使用指定的类替换文档类 并把其它的东西都丢到了该类的第二帧. 概念就不多说了…英文好的可以看看这个文章.htp:/wwbt-101com/bog/?p=946 Preloader类 package i import flash. display Displayobject import flash. display. Movie Clip; import flash display stageScaleMode import flash events Event import flash events progressevent, import flash text TextField import flash text TextFormat import flash utils. getDefinition By Name: *加载类,由于原内容会放到此类的第二帧~所以需要使用 Movieclip @author lcd Net public class Preloader extends Movieclip i [Embed(source="14cd 48.jpg)] AS3研究 TextField心得 仵者:A客网 文章来源:htp:/ww51 accom/as3/AS3 anjiuTextFieldxinde11 Html 这两天自己做了 textinput和 textarea组件,众所周知,这两种组件的内部其实都是一个原始的 Textfield。这里把自己的一些研究心得记 录如下 首先要明白几种长度单位 磅:pt( point),这是一种绝对长度单位,为1/72英寸等于0.3527mm 2、像素:px,这是一种相对长度单位,譬如, WONDOWS的用户所使用的分辨率一般是96像素颅英寸。而MAC的用尸所使用的分辨 率一般是72像素/英寸。 以下讨论文本框 TextField相关 字号 也就是 fontsize,fash中单位是磅( office中也时),可以使用 textHeight和 textwidth来取文本的像素高度和宽度,由于各种字体自身 的差别,不是相同字号的字体所需要的文本框高度都一致。譬如Aria字体就比宋体所需要的文本框高度高 2、文木框高度 对于单行文本框,给定一个高度和一种字体,如何确定所需要的最大的字号呢? 有一个简便方法就是,新建一个 autosize的文本框,设置其字号并判断其高度来得到最大字号。 function getFontsizeByTxtHeight(h: Number, font: String): Number /给定单行文本框高度h,字体font获取最人字号 var testtxt: TextField new Text Fieldo testtxt type Text FieldType INPUT testtxt. auto size TextFieldautosize left for(var size: Number=Math. round h; size>0; size-=0.5) { var tf: TextFormat= new TextFormato: tf. leading =0; tf font= font tf size size: testtxt defaultTextFormat tf testtxt, text="test单行文本"; //trace(size, testtxt. height) if (testtxt height < h break return size

...展开详情
试读 227P ActionScript3.0经典教程
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
  • 签到新秀

    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 分享精英

    成功上传11个资源即可获取
关注 私信 TA的资源
上传资源赚积分or赚钱
    最新推荐
    ActionScript3.0经典教程 10积分/C币 立即下载
    1/227
    ActionScript3.0经典教程第1页
    ActionScript3.0经典教程第2页
    ActionScript3.0经典教程第3页
    ActionScript3.0经典教程第4页
    ActionScript3.0经典教程第5页
    ActionScript3.0经典教程第6页
    ActionScript3.0经典教程第7页
    ActionScript3.0经典教程第8页
    ActionScript3.0经典教程第9页
    ActionScript3.0经典教程第10页
    ActionScript3.0经典教程第11页
    ActionScript3.0经典教程第12页
    ActionScript3.0经典教程第13页
    ActionScript3.0经典教程第14页
    ActionScript3.0经典教程第15页
    ActionScript3.0经典教程第16页
    ActionScript3.0经典教程第17页
    ActionScript3.0经典教程第18页
    ActionScript3.0经典教程第19页
    ActionScript3.0经典教程第20页

    试读结束, 可继续阅读

    10积分/C币 立即下载 >