将对象添加到as3中的另一个对象

时间:2012-01-16 00:08:19

标签: actionscript-3 flash-cs4

好的,所以我在屏幕上有一个角色,当它移动时,摄像机跟随(感谢youtube上的manifest222)我有一个玩家无法通过的墙。我也有盒子添加到舞台但我想要它,以便盒子添加到另一个对象她的代码。

package {
    import flash.display.Sprite;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.MouseEvent;
    import flash.text.TextField;
    import flash.display.Stage;

public class Main extends MovieClip {
    // player

    public var characterEndMC:MovieClip = new charEndMC();
    public var arrayOfBarrier:Array = new Array();

    //box
    private var boxAmount:Number=0;
    private var boxLimit:Number=20;
    private var _root:Object;
    //$txt
    public var money:int=0;
    public var gold:int=0;
    public var my_scrollbar:MakeScrollBar;

    //$$
    public var testnumber:Number=1;
    //enemy1
    private var e01Amount:Number=0;
    private var e01Limit:Number=2;



    public function Main() {


        $box.click$.move$.buttonMode=true;
        $box.click$.clickmini$.buttonMode=true;
        backgroundpic.visible = false;



        character_mc["charAngle"]=0;
        character_mc["moveX"]=0;
        character_mc["moveY"]=0;
        character_mc["walkSpeed"]=5;
        stage.addEventListener(MouseEvent.CLICK, charMove);


        //box add listener
        addEventListener(Event.ENTER_FRAME, eFrame);

        //moneybox
        $box.click$.move$.addEventListener(MouseEvent.MOUSE_DOWN, startmoving$);
        $box.click$.move$.addEventListener(MouseEvent.MOUSE_UP, stopmoving$);
        $box.click$.clickmini$.addEventListener(MouseEvent.CLICK, c$mini);

        my_scrollbar=new MakeScrollBar(scroll_mc,scroll_text);




    }



    public function charLoop(event:Event) {
        if (character_mc.hitTestPoint(character_mc["charEnd"].x,character_mc["charEnd"].y,true)) {


            character_mc["moveX"]=0;
            character_mc["moveY"]=0;
            this.removeChild(character_mc["charEnd"]);
            character_mc.removeEventListener(Event.ENTER_FRAME, charLoop);



        }

        for (var j:int = 0; j < arrayOfBarrier.length; j++) {
            if (character_mc.hitTestObject(arrayOfBarrier[j])) {
                character_mc.x-=character_mc["moveX"];
                character_mc.y-=character_mc["moveY"];
                character_mc["moveX"]=0;
                character_mc["moveY"]=0;
                this.removeChild(character_mc["charEnd"]);
                character_mc.removeEventListener(Event.ENTER_FRAME, charLoop);

            }
        }

        for (var i:int = 0; i < this.numChildren; i++) {
            this.getChildAt(i).x-=character_mc["moveX"];
            this.getChildAt(i).y-=character_mc["moveY"];

        }

        character_mc.x+=character_mc["moveX"]+.05;
        character_mc.y+=character_mc["moveY"]+.05;


    }

    public function lookAtMouse() {
        var characterMC:MovieClip=character_mc;
        characterMC["charAngle"] = Math.atan2(this.mouseY - characterMC.y, this.mouseX - characterMC.x) / (Math.PI / 180);

        characterMC.rotation=characterMC["charAngle"];
    }
    public function charMove(event:MouseEvent) {
        lookAtMouse();
        this.addChild(characterEndMC);
        characterEndMC.x=this.mouseX;
        characterEndMC.y=this.mouseY;

        character_mc["charEnd"]=characterEndMC;
                    character_mc["charEnd"].visible = false;


        character_mc["moveX"]=Math.cos(character_mc["charAngle"]*Math.PI/180)*character_mc["walkSpeed"];
        character_mc["moveY"]=Math.sin(character_mc["charAngle"]*Math.PI/180)*character_mc["walkSpeed"];



        character_mc.addEventListener(Event.ENTER_FRAME, charLoop);


    }




    //boxadding
    private function eFrame(event:Event):void {
        if (boxAmount<boxLimit) {
            boxAmount++;

            var _box:Box=new Box  ;
            _box.addEventListener(MouseEvent.CLICK,boxclick);
            _box.buttonMode=true;
            _box.y=Math.random()* backgroundpic.height;

            _box.x=Math.random()* backgroundpic.width;

            addChild(_box);

        }
        if (e01Amount<e01Limit) {
            e01Amount++;

            var Enemy1: enemy01=new enemy01  ;
            Enemy1.addEventListener(MouseEvent.CLICK, en01click);
            Enemy1.buttonMode=true;
            Enemy1.y=Math.random()*stage.stageHeight;

            Enemy1.x=Math.random()*stage.stageWidth;

            addChild(Enemy1);

        }

    }

    public function boxclick(event:MouseEvent):void {

        var _box:Box=event.currentTarget as Box;
        logtxt.appendText("You collected " + testnumber +  " boxes" + "\n" );
        character_mc["moveX"] = _box.y + 40 + (character_mc.height / 2);
        character_mc["moveY"]=_box.x;


        logtxt.scrollV=logtxt.maxScrollV;
        var randVal$:Number=Math.random();
        if (randVal$>=0.49) {
            money+=100;
        } else if (randVal$ <= 0.50 && randVal$ >= 0.15) {
            money+=200;
        } else if (randVal$ <= 0.14 && randVal$ >= 0.02) {
            gold+=10;
        } else if (randVal$ == 0.01) {
            money+=200;
            gold+=20;
        }


        testnumber++;



        boxAmount--;


        $box.box$in.box$insins.Moneytxt.text=String(money);
        $box.box$in.box$insins.Goldtxt.text=String(gold);
        removeChild(_box);

    }

    private function startmoving$(event:MouseEvent):void {
        $box.startDrag();
    }
    private function stopmoving$(event:MouseEvent):void {
        $box.stopDrag();
    }
    private function c$mini(event:MouseEvent):void {
        $box.click$.move$.visible=false;
        $box.box$in.visible=false;

        $box.y=200;
        $box.x=100;
        $box.click$.clickmini$.addEventListener(MouseEvent.CLICK, reclickbox$);
        $box.click$.clickmini$.removeEventListener(MouseEvent.CLICK, c$mini);


    }
    private function reclickbox$(event:MouseEvent):void {
        $box.click$.clickmini$.addEventListener(MouseEvent.CLICK, c$mini);
        $box.click$.clickmini$.removeEventListener(MouseEvent.CLICK, reclickbox$);
        $box.y=70;
        $box.x=250;
        $box.click$.move$.visible=true;
        $box.box$in.visible=true;
    }

    public function scroll_text( n:Number ) {

        logtxt.scrollV = Math.round( ( logtxt.maxScrollV - 1 ) * n ) + 1;
    }

    public function en01click (event:MouseEvent){

    }

}
}

1 个答案:

答案 0 :(得分:0)

这是:

var _box:Box = new Box();    
receivingDisplayObjectInstanceName.addChild(_box);