动作脚本可动点和线

时间:2011-10-26 17:46:27

标签: flash actionscript-3 actionscript instance movieclip

我对动作脚本很陌生,我对我正在制作的游戏有几个问题:

  1. 如何通过鼠标拖动MovieClip对象?
  2. 如果我有两个MovieClip实例,是否可以制作一个新的形状/ MovieClip对象,看起来像一条线,然后连接?
  3. 我有函数检查'nodes'影片剪辑实例是否与'line'影片剪辑实例冲突,现在这些都是不同的函数和条件,但是有可能检查它们是否都是真的吗?
  4. 感谢您的帮助。说真的,任何帮助都很棒。

2 个答案:

答案 0 :(得分:0)

首先制作一个可拖动的MovieClip很简单,你只需要做mc.startDrag();和mc.stopDrag();停止运动...

通常这与MOUSE_DOWN和MOUSE_UP事件示例一起完成:

mc.addEventListener(MouseEvent.MOUSE_DOWN, function (e:MouseEvent):void
{
    e.currentTarget.startDrag();
});

mc.addEventListener(MouseEvent.MOUSE_UP, function (e:MouseEvent):void
{
    e.currentTarget.stopDrag();
});

您还可以定义锁定中心或限制startDrag方法拖动的矩形,基本上如果锁定中心为真,鼠标将在拖动时粘贴到MovieClip的中心,矩形将限制拖动区域,例如画布。

第二个问题,

您可以在AS3中创建一个新的MC,例如var mc:MovieClip = new MovieClip(); 然后用图形绘制MC中的线......

更详细的例子:

var mc:MovieClip = new MovieClip();
mc.graphics.beginFill(0x000000);
mc.graphics.lineStyle(2,0x000000);

//start drawing the line
mc.graphics.moveTo(10,10);
mc.graphics.lineTo(10,100);
mc.graphics.endFill();

//Position your new movie clip
mc.x = 80;
mc.y = 60;
addChild(mc);

最后我不确定你是如何实现碰撞检测的,但是你可以为每个项目创建一个状态数组,并在碰撞时更改它们然后你可以循环到数组中以检查它们是否为真...

答案 1 :(得分:0)

1)查看startDrag/stopDrag方法。然后可以在Sprite或其任何子类

上调用

2)是的,您可以使用任何Sprite的graphics对象绘制任意线条/形状

3)对于碰撞检测多个对象,您必须逐步浏览每个对象。尝试使用for循环