具体在我的函数中定义一个对象

时间:2014-02-01 17:53:43

标签: actionscript-3

您是否知道是否可以明确定义函数中的“thisThing”是什么?

例如: 在我的UseBox.as

        public function UseBox(stageRef:Stage, thisThing:Object){
            this.stageRef = stageRef;
            this.thisThing = thisThing;

public function destroy(e:MouseEvent):void{
thisThing.visible = false;
if (thisThing(“HOUSE”)){
doThis();
}
if (thisThing(“FLAT”)){
doThat();
}

“HOUSE”和“FLAT”是动画片段。

现在,如果我点击一个动画片段,它就会变得隐蔽。我想知道我是否可以为具有“house”和“flat”的特定动画片段定义一个独特的功能。

感谢您的回答


修改

这是我的Engine.as中调用useBox的函数:

private function examine(e:MouseEvent):void{
                stage.dispatchEvent(new Event("itemClicked"));
                    useBox = new UseBox(stage, e.currentTarget);
                    useBox.x = mouseX;
                    useBox.y = mouseY;
                    stage.addChild(useBox);
                }

1 个答案:

答案 0 :(得分:0)

您可以为house和flat创建一个基类,基类包含一个可以在destroy中调用的函数。 thisThing'类型将是基类类型。

类定义

//the base class   
public class BaseMc extends MovieClip 
{

      public function onDestroy():void
      {


      }
}

//House
public class House extends BaseMc 
{

      override public function onDestroy():void
      {

           //do the house destroy
      }
}

UseBox类将是这样的

public function UseBox(stageRef:Stage, thisThing:BaseMc ){
     this.stageRef = stageRef;
     this.thisThing = thisThing;
}

public function destroy(e:MouseEvent):void{
     thisThing.visible = false;

     this.thisThing.onDestroy();
}

修改

useBox = new UseBox(stage, e.currentTarget as Engine);