Actionscript 3 Flash cc as3如何使子对象以与父对象相同的方式生效

Actionscript 3 Flash cc as3如何使子对象以与父对象相同的方式生效,actionscript-3,flash,physics,gravity,flash-cc,Actionscript 3,Flash,Physics,Gravity,Flash Cc,在这个留言板的帮助下,我已经生成了一段代码,但它是一个接一个的问题。这一次,当你点击一个物体时,一个新的物体会产生,但我需要它,这样产生的子物体会受到重力物理的影响 这是我的密码: var drag:Number = 1; var BlockAppear = new MovieClip; gotoAndStop(1, "Minigame-Block"); HeartBear.addEventListener(MouseEvent.MOUSE_DOWN, fl_ClickToDrag_4);

在这个留言板的帮助下,我已经生成了一段代码,但它是一个接一个的问题。这一次,当你点击一个物体时,一个新的物体会产生,但我需要它,这样产生的子物体会受到重力物理的影响

这是我的密码:

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");
}
改变

改变

stage.addEventListener(Event.ENTER_FRAME, enter frame);
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.
}

改变

stage.addEventListener(Event.ENTER_FRAME, enter frame);
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.
}


并尝试将变量名、函数名以及类名简化成驼峰大小写。

如何使它们也受拖放物理的影响???我已经有了这段代码,但它只影响父级。为了让它也影响到孩子我应该把HeartBear改成e.currentTarget吗???@user3406023首先,你做了我回答中所说的改变了吗?它正在添加enter frame事件,该事件将重力应用于每个新创建的HB类和事件。currentTarget应用于事件正在修改的电影剪辑。此外,重力不会影响该对象,直到父对象的另一个对象被放下,所以它将在半空中保持。@user3406023更改函数fl\u ClickToDrag\u 4event:MouseEvent:void{HeartBear.startDrag gravity=0}要运行fl_ClickToDrag_4event:MouseeEvent:void{event.currentTarget.startDrag gravity=0}然后将H.AddEventListenerMouseeEvent.MOUSE_向下添加,fl_单击ToDrag_4;到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.
}
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);
}