Flash CS3制作Fla形式的组件
来源:Arting365.com    作者:春叶飘零    发布时间:2007-11-28

      7、到这步,我们会发现还缺少一个外部的自定义组件的代码,也就是上面"MyButton"元件连接的"MyButton"类.由于类中导入了组件类,所以我们要设置FLASH CS3的classPath(类路径),选编辑-->参数设置-->ActionScript-->ActionScript3.0,添加一新的类搜索路径,我这里为"D:\Program Files\Adobe\Adobe Flash CS3\en\Configuration\Component Source\ActionScript 3.0\User Interface" 

  大家根据各自情况设置好路径,新建ActionScript文档,填入如下代码: 

/************MyButton.as**************/ 

package{ 
import flash.display.*; 
import flash.events.*; 
import flash.system.ApplicationDomain; 
import fl.core.UIComponent; 
public class MyButton extends UIComponent { 
  private var nowSkin:MovieClip; 
  private var thisDomain:ApplicationDomain; 
  public function MyButton() { 
   super(); 
   trace("MyButton"); 
  } 
  override protected function draw():void { 
   if (nowSkin==null) { 
    thisDomain=loaderInfo.applicationDomain; 
    var classDef 
    try{ 
    classDef=thisDomain.getDefinition(getNormalSkinName());} 
    catch(e:ReferenceError){ 
     trace("没有在库中找到相关的类!") 
     return; 
     } 
    nowSkin=new classDef as MovieClip; 
    nowSkin.addEventListener(MouseEvent.MOUSE_OVER,mouseOverHandler); 
    addChild(nowSkin); 
   } 
   nowSkin.width=width; 
   nowSkin.height=height; 
  } 
  protected function mouseOverHandler(e:MouseEvent):void{ 
   trace("over"); 
   removeChild(nowSkin); 
   var classDef=thisDomain.getDefinition(getOverSkinName()); 
   nowSkin=new classDef as MovieClip; 
   addChild(nowSkin); 
   nowSkin.addEventListener(MouseEvent.MOUSE_OUT,mouseOutHandler); 
   draw(); 
  } 
  protected function mouseOutHandler(e:MouseEvent):void{  

   trace("out"); 
   removeChild(nowSkin); 
   var classDef=thisDomain.getDefinition(getNormalSkinName()); 
   nowSkin=new classDef as MovieClip; 
   addChild(nowSkin); 
   nowSkin.addEventListener(MouseEvent.MOUSE_OVER,mouseOverHandler); 
   draw(); 
  } 
  protected function getNormalSkinName():String { 
   return "NormalSkin"; 
  } 
  protected function getOverSkinName():String { 
   return "OverSkin"; 
  } 


}

      代码对我们建立的按钮组件进行一些设置,我这里只简单设置了鼠标经过和离开。接着保存,名为"MyButto.as",位于我们上面建立的"FLA_ComponentX.fla"同目录下。 

本篇编辑:Iris
发表评论 | 查看所有评论
用户名: 
验证码: