让不同的库元件继承自共同的类
如果希望同一个fla文件库中多个元件都能实现相同的行为,那么最方便的想法是让他们绑定同一个类。但是,同一个fla文件中,一个类文件只能绑定一个元件,超过了就会报错。怎么办?有一个巧妙的解决办法,将要绑定的类文件设为基类,这样,这些元件都继承自同一个基类。而绑定类则有编译时自动生成即可。
——摘自黑羽《as3殿堂之路》
设置元件的类名和基类点击右键看属性,选中"为ActionScript"导出 然后在类里填写TextBtn(当然你可以设置多个按钮),基类是com.englishLearningSystem.common.CommButton
1 package com.englishLearningSystem.common 2 { 3 import flash.display.MovieClip; 4 import flash.events.MouseEvent; 12 public class CommButton extends MovieClip 13 { 18 public function CommButton() 19 { 20 super(); 21 initView(); 22 } 23 //初始化按钮 24 private function initView():void 25 { 26 } 27 } 28 }
1 package com.englishLearningSystem.interpret 2 { 3 import com.englishLearningSystem.common.CommButton; 4 import flash.display.MovieClip; 5 import flash.utils.getDefinitionByName; 12 public class LeftContent extends MovieClip 13 { 14 //以双下划线开头的属性表示与库中元件相关 15 private var __TextBtn:Class; 16 17 public function LeftContent() 18 { 19 init(); 20 } 21 22 private function init():void 23 { 24 //发射方式加载库元件 25 __TextBtn = getDefinitionByName("TextBtn") as Class; 26 var textBtn:CommButton = new __TextBtn(); 28 addChild(textBtn); 29 30 } 31 } 32 33 }