相关文章: 通过实例学习Flash AS3.0——案例四
首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。
水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。
下面进入正题:
案例5:熟悉AS3的package,以及多个package之间的相互通信
说明:一个很简单的demo,有4个按钮,当鼠标划过和移开时会呈现出不同的状态,单击后变成disabled,再点击其他的按钮时,之前disabled的按钮恢复,被点击的按钮失效。
演示:http://www.live-my-life-with-yuyi.com/as3_cases/communicating/
准备工作:打开源文件communicating_final.fla,点击属性里的发布设置,点击Actionscript3旁边的设置,在最下面的classpath里,引入classes的文件夹的路径,然后点击确定,前期工作就准备完了。
代码:
源文件里的代码很简单:
import todd.interactive.ButtonSet;
var 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:Array;
public function ButtonSet()
{
}
public function addButtons(buttonSet:Array):void
{
buttons = buttonSet;
for(var i:int = 0; i < buttons.length; i )
{
addChild(buttons[i]);
}
}
}
}
一个类应该被放在一个package里面,就像钱应该被放到钱包里一样。package后面定义的是该类的路径。然后一系列常用的类。
定义了一个全局变量buttons,在变量前面加一个public就可以了。这样就能在整个类中被访问到。
类名应该和文件名一样(区分大小写),然后定义一个同名函数,这个函数会在类被初始化时调用,就像php4的类一样。这里只是搭了个架子,没有具体内容。
然后定义了一个函数addButtons,它的作用就是将一些mc或者sprites放到自己的container里(addChild)。
还有一个类:DisablingButton,也是位于todd->interactive文件夹下,这也是这个案例的核心。对了,之前已经将RectButton的linkage里的baseClass设置为todd.interactive.DisablingButton。
首先声明:本人大菜鸟一个,刚接触AS3不久,许多理念还没来得及灌输,这些case都是从网上down的,但因为解说是英文的,不利我们学习,我就充当一个translater,顺便可以让自己巩固一下知识。
水平有限,错误难免,欢迎大虾小虾,大鸟小鸟指正。
下面进入正题:
案例5:熟悉AS3的package,以及多个package之间的相互通信
说明:一个很简单的demo,有4个按钮,当鼠标划过和移开时会呈现出不同的状态,单击后变成disabled,再点击其他的按钮时,之前disabled的按钮恢复,被点击的按钮失效。
演示:http://www.live-my-life-with-yuyi.com/as3_cases/communicating/
准备工作:打开源文件communicating_final.fla,点击属性里的发布设置,点击Actionscript3旁边的设置,在最下面的classpath里,引入classes的文件夹的路径,然后点击确定,前期工作就准备完了。
代码:
源文件里的代码很简单:
import todd.interactive.ButtonSet;
var 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:Array;
public function ButtonSet()
{
}
public function addButtons(buttonSet:Array):void
{
buttons = buttonSet;
for(var i:int = 0; i < buttons.length; i )
{
addChild(buttons[i]);
}
}
}
}
一个类应该被放在一个package里面,就像钱应该被放到钱包里一样。package后面定义的是该类的路径。然后一系列常用的类。
定义了一个全局变量buttons,在变量前面加一个public就可以了。这样就能在整个类中被访问到。
类名应该和文件名一样(区分大小写),然后定义一个同名函数,这个函数会在类被初始化时调用,就像php4的类一样。这里只是搭了个架子,没有具体内容。
然后定义了一个函数addButtons,它的作用就是将一些mc或者sprites放到自己的container里(addChild)。
还有一个类:DisablingButton,也是位于todd->interactive文件夹下,这也是这个案例的核心。对了,之前已经将RectButton的linkage里的baseClass设置为todd.interactive.DisablingButton。










