0

在这个留言板的帮助下,我已经生成了一段代码,但这是一个接一个的问题。这次我有了它,所以当您单击一个对象时会生成一个新对象,但我需要它以便孩子(已生成的那个)受到重力物理的影响。

这是我的代码:

var drag:Number = 1;
var BlockAppear = new MovieClip;

gotoAndStop(1, "Minigame-Block");

HeartBear.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag_4);

import flash.events.MouseEvent;

HBS.addEventListener(MouseEvent.CLICK, addHeart);

function addHeart(e:MouseEvent):void
{
    var H=new HB;
    H.y = 523;
    H.x = 721;
    addChild(H);  //need the child to be effected by the gravity physics.
}

Block.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey_3);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed_3);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed_3);

function fl_MoveInDirectionOfKey_3(event:Event)
{
    if (leftPressed)
    {
        Blockr.x -= 5;
    }
    if (rightPressed)
    {
        Block.x += 5;
    }
}

function fl_SetKeyPressed_3(event:KeyboardEvent):void
{
    switch (event.keyCode)
    {
        case Keyboard.LEFT:
        {
            leftPressed = true;
            break;
        }
        case Keyboard.RIGHT:
        {
            rightPressed = true;
            break;
        }
    }
}

function fl_UnsetKeyPressed_3(event:KeyboardEvent):void
{
    switch (event.keyCode)
    {
        case Keyboard.LEFT:
        {
            leftPressed = false;
            break;
        }
        case Keyboard.RIGHT:
        {
            rightPressed = false;
            break;
        }
    }
}

function fl_ClickToDrag_4(event:MouseEvent):void
{
    HeartBear.startDrag()
    gravity = 0
}

stage.addEventListener(MouseEvent.MOUSE_UP, fl_ReleaseToDrop_4);

function fl_ReleaseToDrop_4(event:MouseEvent):void
{
    HeartBear.stopDrag();
    gravity = 0.9
}

var gravity = 0.8;
var floor = 523.3;
var onFloor:Boolean = false;

HeartBear.y = floor;
HeartBear.speedY = 0;
HeartBear.jump = 15;
stage.addEventListener(Event.ENTER_FRAME, enterframe);
function enterframe(e:Event) {
    HeartBear.speedY += gravity;
    HeartBear.y += HeartBear.speedY;
    if(HeartBear.y > floor) {
        HeartBear.speedY = 0;
        HeartBear.y = floor;
        onFloor = true;           //gravity physics
    }

}
stage.addEventListener(KeyboardEvent.KEY_DOWN, space);
function space(e:KeyboardEvent) {
    if(e.keyCode == Keyboard.UP && onFloor) {
        HeartBear.speedY = -HeartBear.jump;
        onFloor = false;
    }
}

Shopclicker.addEventListener(MouseEvent.CLICK, fl_ClickToGoToScene_3);

function fl_ClickToGoToScene_3(event:MouseEvent):void
{
    MovieClip(this.root).gotoAndStop(1, "Shop");
}
4

1 回答 1

0

改变

function enterframe(e:Event) {
    HeartBear.speedY += gravity;
    HeartBear.y += HeartBear.speedY;
    if(HeartBear.y > floor) {
        HeartBear.speedY = 0;
        HeartBear.y = floor;
        onFloor = true;           //gravity physics
    }

}

function enterframe(e:Event) {
    e.currentTarget.speedY += gravity;
    e.currentTarget.y += e.currentTarget.speedY;
    if(e.currentTarget.y > floor) {
        e.currentTarget.speedY = 0;
        e.currentTarget.y = floor;
        onFloor = true;           //gravity physics
    }

}

和改变

stage.addEventListener(Event.ENTER_FRAME, enter frame);

HeartBear.addEventListener(Event.ENTER_FRAME, enterframe);

和改变

function addHeart(e:MouseEvent):void
{
    var H=new HB;
    H.y = 523;
    H.x = 721;
    addChild(H);  //need the child to be effected by the gravity physics.
}

function addHeart(e:MouseEvent):void
{
    var H=new HB;
    H.y = 523;
    H.x = 721;
    addChild(H);  //need the child to be effected by the gravity physics.
    H.addEventListener(Event.ENTER_FRAME, enterframe);
}

并尝试将您的变量和函数名以及类名进行驼峰式命名。

于 2014-06-29T23:03:53.803 回答