学flash as3.0 源文件语言应该从哪个阶段入手,初学。还是直接学as3.0的

您所在的位置是&&
通过实例学习Flash AS3.0——案例五
[导读]相关文章: 通过实例学习Flash AS3.0&&案例四首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。水平有限,错误难
相关文章: 通过实例学习Flash AS3.0&&案例四首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。下面进入正题:案例5:熟悉AS3的package,以及多个package之间的相互通信说明:一个很简单的demo,有4个按钮,当鼠标划过和移开时会呈现出不同的状态,单击后变成disabled,再点击其他的按钮时,之前disabled的按钮恢复,被点击的按钮失效。演示:http://www.live-my-life-/as3_cases/communicating/准备工作:打开源文件communicating_final.fla,点击属性里的发布设置,点击Actionscript3旁边的设置,在最下面的classpath里,引入classes的文件夹的路径,然后点击确定,前期工作就准备完了。代码:源文件里的代码很简单:import todd.interactive.ButtonSvar buttons:ButtonSet = new ButtonSet();buttons.addButtons([one_mc,two_mc,three_mc,four_mc]);addChild(buttons);导入ButtonSet类,实例化,然后调用里面的一个方法,最后将它放到舞台上。classes文件夹下面的todd-&interactive文件夹里有两个as文件,其中一个就是刚刚调用的ButtonSet,来看看ButtonSet的源码:package todd.interactive{ //其实只需载入display和events就可以了,不过多载入几个并不影响文件大小和效率 import flash.display.*; import flash.events.*; import flash.filters.*; import flash.net.*; import flash.geom.*; import flash.ui.*; import flash.utils.*; import fl.transitions.*; import fl.transitions.easing.*;
public class ButtonSet extends MovieClip { public var buttons:A
public function ButtonSet() {
public function addButtons(buttonSet:Array):void { buttons = buttonS for(var i:int = 0; i & buttons. i ) { addChild(buttons[i]); } } }}一个类应该被放在一个package里面,就像钱应该被放到钱包里一样。package后面定义的是该类的路径。然后一系列常用的类。定义了一个全局变量buttons,在变量前面加一个public就可以了。这样就能在整个类中被访问到。类名应该和文件名一样(区分大小写),然后定义一个同名函数,这个函数会在类被初始化时调用,就像php4的类一样。这里只是搭了个架子,没有具体内容。然后定义了一个函数addButtons,它的作用就是将一些mc或者sprites放到自己的container里(addChild)。还有一个类:DisablingButton,也是位于todd-&interactive文件夹下,这也是这个案例的核心。对了,之前已经将RectButton的linkage里的baseClass设置为todd.interactive.DisablingButton。代码稍微有点长,且听我细细道来package todd.interactive{ import flash.display.*; import flash.events.*; import todd.interactive.ButtonS public class DisablingButton extends MovieClip { var labels:A var thisParent:*; var thisIndex: public function DisablingButton() { labels = this.currentL this.addEventListener(MouseEvent.CLICK, disableButton); this.addEventListener(MouseEvent.ROLL_OVER, over); this.addEventListener(MouseEvent.ROLL_OUT, out); this.addEventListener(Event.ADDED,setParent); } function disableButton(event:MouseEvent):void { for (var i:int = 0; i & labels. i ) { if (labels[i].name == &disable&) { this.gotoAndPlay(&disable&); } } this.removeEventListener(MouseEvent.CLICK, disableButton); this.removeEventListener(MouseEvent.ROLL_OVER, over); this.removeEventListener(MouseEvent.ROLL_OUT, out); enableOthers(); } function enableButton():void { this.addEventListener(MouseEvent.CLICK, disableButton); this.addEventListener(MouseEvent.ROLL_OVER, over); this.addEventListener(MouseEvent.ROLL_OUT, out); this.gotoAndStop(1); } function over(event:MouseEvent):void { for (var j:int = 0; j & labels. j ) { if (labels[j].name == &over&) { this.gotoAndPlay(&over&); } } } function out(event:MouseEvent):void { for (var k:int = 0; k & labels. k ) { if (labels[k].name == &out&) { this.gotoAndPlay(&out&); } } } function setParent(event:Event):void { if (this.parent is ButtonSet) { thisParent=this. for (var w:int=0; w & thisParent.buttons. w ) { if (this == thisParent.buttons[w]) { thisIndex=w; } } } } function enableOthers():void { for (var z:int=0; z & thisParent.buttons. z ) { if (z != thisIndex) { thisParent.buttons[z].enableButton(); } } } }}载入了两个常用类后,又载入了刚刚定义的ButtonSet类,这样我们就能使用ButtonSet的一些方法了。注意:这个类必须继承Movieclip类,因为该类的对象是一个mc。然后定义了一些全局变量(默认均为public)。创建析构函数DisablingButton,labels = this.currentL 这句话的意思是取得当前mc的label属性,以array的形式返回,包含了label.frame,label.name等等的属性。然后监听自己的鼠标点击、移入、移出事件。this.addEventListener(Event.ADDED,setParent);这句话的意思是当自己被添加进一个容器时调用setParent函数。disableButton这个函数作用是,将当前mc的状态变成disabled,然后取消监听事件,同时激活其他的按钮。enableButton函数的作用就是激活自己的监听事件,并初始化自己的状态。over和out函数很简单,就是设置自己当前的状态。setParent函数的最终目的是捕获点击事件发生在哪个mc上(gotoAndPlay方法将触发EVENT.ADDED,所以over和out函数都将触发setParent函数,这也是一个待改进的地方)。enableOthers函数顾名思义,激活其他的按钮。因为setParent已经记住了,最后的点击事件发生在哪个mc上,所以只要遍历一下buttons,然后激活其他的mc就可以了。案例分析完毕。
Copyright 2000- (尚网—IT领域分享,学习,交流的平台)
All Rights Reserved
京公网安备 13号温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
LOFTER精选
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
loftPermalink:'',
id:'fks_',
blogTitle:'初学as3.0语言',
blogAbstract:'
学习AS3.0已有一段时间了,想把自已对AS3的一些认识和大家分享一下。主要想说说AS3与AS2的不同之处,没有什么逻辑性,想到什么就写点什么,因此,它不适合AS高手们阅读。本文将力求用最直白的语言,尽量不用那些艰涩难懂的名词和术语。
一、在什么地方写代码
失望,以为要说点啥,原来是这么小儿科的问题。没办法,我说过了,本文不适合AS高手阅读的。为了更好地理解,我们还是用例子来说明。现在,就让我们一起来回顾一下,在AS2中我们都会把代码写在什么地方。我们在AS2中建一新文档,新建一个影片剪辑元件取名为bt,元件很简单,随便画一个方块就行,你说我偏要画一个园,那当然随你高兴罗,我没意见。然后,在',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:2,
publishTime:4,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:false,
hostIntro:'',
hmcon:'1',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}FLASH 2.0和3.0有什么区别啊!_百度知道
FLASH 2.0和3.0有什么区别啊!
我有更好的答案
按默认排序
FLASH 2.0和3.0的区别是as2.0首次将面向对象的概念进入了Flash,但不完全是面向对象,只是在编译过程中支持oop语法,as3.0则是完全基于面向对象的语言,采用面向对象的思想。as2.0还是面向过程的。as2与as3的一些比较大的区别:1、运行时异常机制处理,这个刚才说过了。 2、事件机制,这也是很多人拿起as3就不知所措的原因,初学者会发现连一个按钮点击的方法都写不出来。实际上as3的事件机制采用的是监听的方式,和as2onClipEvent不同,as3里所有的事件都是需要触发器,监听器,执行器三种结构的,这样做的好处就是使得这个语言非常的坚强,非常大标准化。不像as2,奇形怪状的代码漫天飞,可以这样写,也可以那样写,代码变得繁复难懂,可读性太差,执行效率也大大降低。要特别说明的是,as3的所有事件都直接继承event对象,而event是直接继承自BOSS类object,结构多么完美。所以在as3中,所有的事件都继承自相同的父亲,结构相同,提高了重用性。 3、封装性,这是as3与as2最大的不同,as3引入了封装的概念,使得程序安全性大大提高,各个对象之间的关系也通过封装,访问控制而得以确定,避免了不可靠的访问给程序带来的意外产生。4、XML,我觉得这是最令人激动人心的改变,现在as3程序员可以很轻松也很自豪的说,我们是使用XML人群中最快乐的人。AS2时代对XML的存取仍然需要解析,而AS3则创新的将XML也视作一个对象,存取XML就像存取普通对象的属性一样方便,用点语法就可以,无疑大大提高了效率。5、最关键的一点,容器的概念,AS3采用了容器的思想,告别了as2一个MovieClip打天下的局面。对于as2程序员来说,可能不能理解,我mc用的好好的,干嘛不让我用啊。但是当你真正的了解as3的思想的时候,当你真主的体会到OOP的好处的时候,你会觉得as3的容器的思想的完全正确的。as2时代,我们做什么都用mc,而as2时代的mc也是直接继承自object,这给了mc极大的权限,极其多大方法属性,而有时我们只需要放一个背景图,这样做就造成了极大的浪费。说实在话as2和as3比起来就是浪费之神,所以as2编出的swf绝对比as3编译出来的swf要大上几倍。as3把所有你用到的显示对象都分开,mc的属性方法都被瓜分开来,举个例子,你去水果超市买水果,就肯定比直接去大型超市买要方便,更节约时间,时间就是金钱,那就是很大的节省。
体书看,要做笔记,能不能学会一种知识,不是从什么地方学的问题,而是学习方法的问题。学习方法不对,不管有多好的老师也教不出好学生。学习的问题我也和很多热爱学习的同志们说过,关键靠自己。 好的学习方法,我总结大致因该具备以下条件: 1.坚持看书,一本书至少看过3遍(注:指实体书,而非电子书) 2.坚持做笔记,加强记忆。 3.如果是初学者,我建议抄程序,培养程序感,必要时可以背默关键字。 1.as 2.0与 3.0,最不同的就是运行flash时的虚拟机不同,前者是AVM1,后者是AVM2,当然后者要比前者快很多。 2.as 3.0所采用的编程方式是与java非常类似的面向对象编程方式,不论在语法上还是在设计思路上,而C++,也如此,只不过C++没有java那样完全面向对象,因为它是从C语言上加上了面向对象的思想 ,但不完全。 3.只要你有java C++基础,那学 AS是非常轻松的 4.不过AS不能像java C++那样操作底层数据,如存储数据等,必须通过后台语言如php asp 等来实现,而且运行大规模数据时会慢一些。 5.as 2.0以往是主要面向过程的编程方式,也就是说想到哪就可以写到哪,但到3.0之后就不行了,你必须把每一块程序都写到一个类中,让类和类之间进行联系。凡事都是类的理念。 6,其实不同的事情有很多,但是也可以这么讲,AS3.0与AS2.0是一样的,只是语法不同了,编程思路不同了,但核心内容不变,也就是说,如果你精通AS2.0,那么,你离精通3.0就不远了。因为你在编程进对算法的掌握和思想都是相通了。 7.至于如何学flex,如果是初学的话,那看书,上网看教程,都可以,如果是想往更高级学习时,就得靠自己了,靠自己去研究了,看帮助,去深层次研究。
版本的不同!ACTIONSCRIPT两个语言的有点不同!
其他类似问题
flash的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁初学FLASH哪个版本好?
&当前页:初学flash&&&初学FLASH哪个版本好?
发表时间:&& &&文章来源:本站原创& 作者:黄舒奇&&
初学FLASH哪个版本好?
&&& 经常有人问我,初学FLASH哪个版本好啊?我感觉不太好回答。因为现在的FLASH版本确实非常多,如Macromedia Flash 8,Adobe FLASH CS3,Adobe FLASH CS4,Adobe FLASH CS5,这些都是现在常用的FLASH软件,对于初学者,到底学哪个版本好呢,让我们一起来分析一下吧。
&&& 首先我们需要明确一下你使用FLASH更多的应用是什么,如果你需要制作游戏,那么就学习AS2.0,FLASH8到CS5都可以建立AS2.0的文件,也就是说安装哪个版本都可以。如果你有一定的编程基础,那么就可以使用FLASH
CS3到CS5的版本,它们都可以建立AS3.0的文件,我们就可以选择CS3到CS5的版本。
&&& 更多接触FLASH软件的朋友都希望可以使用FLASH制作一个作品,那么我向你推荐两端的版本,也就是电脑中同时安装FLASH8和FLASH CS5。&&& 为什么这样说呢,FLASH8是目前非常多的朋友一直在使用的版本,因其软件体积小,安装文件在123MB,使用稳定,上手快,目前虽然还有CS3,CS4和CS5,但更多的人电脑中还是会安装一个FLASH 8。
&&& 如果你是一个初学者,那么我建议你的电脑中安装一个FLASH8,简洁的操作界面,精练的工具,明晰的补间动画制作过程,都可以让你快速的掌握FLASH软件的操作要领。 &&& 当你掌握了FLASH8的操作以后,那么就会有选择的挑选FLASH的版本了。FLASH CS3是Adobe收购Macromedia后的一个过渡期产物,真正的变化还是FLASH CS4开始的,增加了如骨骼工具,喷涂刷工具等实用的工具。2010年春季上市的FLASH CS5工具延续了FLASH CS4,可以说在工具上FLASH CS5与是一致的。&&& 新版本软件出来了,我们需要掌握新工具的使用方法,那么我推荐你的电脑中安装一个最新的FLASH CS5,我们可以在这里学习到最新的改进过的工具与动画的制作方法。
&&& FLASH8可以让制作动画更简便,方便我们制作和修改,我们可以在属性面板中进行补间动画的设置,FLASH CS5可以让我们掌握最新的工具使用方法。你可以试一试,电脑中同时安装这两款软件,你会发现好处不止我上面说到的这些,更多的好处等待你去发现。
转载请注明出处│邮箱:│QQ:扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
AS3.0初学者可以看的
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口}

我要回帖

更多关于 flash as3.0 源文件 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信