このメッセージボードの助けを借りてコードを生成しましたが、問題が次々と発生します。今回は、オブジェクトをクリックすると新しいオブジェクトが生成されるようにしましたが、子 (生成されたオブジェクト) が重力物理学の影響を受けるようにする必要があります。
これが私のコードです:
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");
}