在as文件中访问fla文件实例的方法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在as文件中访问fla文件实例的方法
1.首先创建一个fla文件,在此文件中插入两个元件(为了简单),一个按钮元件,如图1所示;再创建一个影片剪辑元件(其中的按钮依次命名为:btn01,btn02,……,btn17),如图2所示。
图1:一个按钮元件
图2:一个影片剪辑元件
2.将按钮元件拖到舞台上,命名为:btn01,然后复制粘贴一系列的相同按钮,并依次改名为:
btn02,btn03,……,btn10;画一竖线分开,在竖线右边拖入上述制作的影片剪辑即“元件2”,将其命名为:“ok_mc”;继续在右边创建四个动态文本框,依次命名为:txt1,txt2,txt3,txt4。
其布局如图3所示。
图3:整个舞台布局
3.新建一个AS文件,保存文件名为:MyTryClass01.as,其内容如下:
package com.myClass {
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.display.SimpleButton;
public class MyTryClass01 extends Sprite {
var mc1:MovieClip;//定义三个影片剪辑
var mc2:MovieClip;
var mc3:MovieClip;
var arr1:Array;//定义三个数组
var arr2:Array;
var arr3:Array;
var prex1:String;//定义FLA文件中元件实例名的前缀
var prex2:String;
var prex3:String;//定义四个文本框的前缀
public function MyTryClass01(m1:MovieClip,p1:String,a1:Array,
m2:MovieClip,p2:String,a2:Array,
m3:MovieClip,p3:String,a3:Array) { /*定义构造函数,三组变量,m1、m2、m3三个影片剪辑为元件容器,
p1,p2,p3这各组实例的前缀名,a1,a2,a3为各组实例名的序列数组
*/
mc1=m1;//以下各赋值语句是将构造函数中的参数传到对应类属性中
mc2=m2;
mc3=m3;
arr1=a1;
arr2=a2;
arr3=a3;
prex1=p1;
prex2=p2;
prex3=p3;
var i:int;
for(i=0;i<arr1.length;i++){
//为红线左边各按钮依次加入事件
mc1[prex1+arr1[i]].addEventListener(MouseEvent.MOUSE_MOVE,
onMouseMoveLeftButtons);
mc1[prex1+arr1[i]].addEventListener(MouseEvent.MOUSE_OUT,
onMouseOutLeftButtons);
mc1[prex1+arr1[i]].addEventListener(MouseEvent.CLICK,
onMouseClickLeftButtons);
}
//为红线右边各按钮依次加入事件
for(i=0;i<arr2.length;i++){
mc2[prex2+arr2[i]].addEventListener(MouseEvent.MOUSE_MOVE,
onMouseMoveRightButtons);
mc2[prex2+arr2[i]].addEventListener(MouseEvent.MOUSE_OUT,
onMouseOutRightButtons);
mc2[prex2+arr2[i]].addEventListener(MouseEvent.CLICK,
onMouseClickRightButtons);
}
}
private function onMouseMoveLeftButtons(evt:MouseEvent){
this.displayInTextField("移进红线左边",evt);
}
private function onMouseMoveRightButtons(evt:MouseEvent){
this.displayInTextField("移进红线右边",evt);
}
private function onMouseOutLeftButtons(evt:MouseEvent){
this.displayInTextField("移出红线左边",evt);
}
private function onMouseOutRightButtons(evt:MouseEvent){
this.displayInTextField("移出红线右边",evt);
}
private function onMouseClickLeftButtons(evt:MouseEvent){
this.displayInTextField("单击红线左边",evt);
}
private function onMouseClickRightButtons(evt:MouseEvent){
this.displayInTextField("单击红线右边",evt);
}
private function displayInTextField(s:String,evt:MouseEvent){
//处理鼠标事件的各种信息,并依次写入各动态文本框中
var bn:SimpleButton=evt.target as SimpleButton;
var mc:MovieClip=bn.parent as MovieClip;
mc3[prex3+arr3[0]].text="鼠标现在已经"+s+"这个父对象“"
++"”的按钮“"++"”了。
";
mc3[prex3+arr3[1]].text="其在按钮“"++"”上的相对坐标为:("
+bn.mouseX+","+bn.mouseY+")";
mc3[prex3+arr3[2]].text="其在父对象“"++"”上的相对坐标为:("
+mc.mouseX+","+mc.mouseY+")";
mc3[prex3+arr3[3]].text="其相对于舞台的坐标为:("+stage.mouseX+","
+stage.mouseY+")";
}
}
}
4.在FLA文件中添加如下代码:
import com.myClass.MyTryClass01;//导入自定义类
var arr1:Array=new Array("01","02","03","04","05","06" ,
"07","08","09","10");//定义一个左边按钮序号的数组
var arr2:Array=new Array("01","02","03","04","05","06",
"07","08","09","10", "11","12",
"13","14","15","16","17");//定义一个右边按钮序号的数组var arr3:Array = new Array("1","2","3","4");//定义动态文本框序号的数组
var mtc:MyTryClass01 = new MyTryClass01(this,"btn",arr1,
ok_mc,"btn",arr2,
this,"txt",arr3);//调用带参的构造函数this.addChild(mtc);//将其添加到舞台上,保证在AS文件中使用stage
5.测试影片,结果如图4所示。
图4:测试结果。