在 ActionScript 2.0 中轻松拖放

Posted

技术标签:

【中文标题】在 ActionScript 2.0 中轻松拖放【英文标题】:Drag, throw with ease in ActionScript 2.0 【发布时间】:2017-03-02 19:04:54 【问题描述】:

我是名为“throw”的游戏开发者(游戏仅作为 beta 测试版提供给 beta 测试者)。 游戏是使用 Flash 8 中的 ActionScript 2.0 创建的。

我的问题是,是否有人可以帮助我抛出代码。 我是什么意思?我的意思是,如果您拖动名为“Ball”的影片剪辑,它只会跟随您的鼠标直到您放下它。

很简单的代码:

on(press) 
    if (_root.ThrowZone.hitTest(this)) 
        startDrag(this);
    


on(release) 
    if (_root.ThrowZone.hitTest(this)) 
        stopDrag();
    

我也设置了简单的重力代码,但我不想展示它,因为它不是“那个”需要的。 我希望它在你发布影片剪辑时抛出“球”,我的意思是它会以不同的方式直接上升 速度取决于你在释放它之前移动它的速度,我也希望它在它起床时变慢和变慢。 我尝试过稍微覆盖一下我的重力代码,更改它并反转它,反转通灵,但它会 以同样的方式上去,难怪你是怎么扔的。

如果你真的需要测试游戏来看看它是如何工作的,请在评论中告诉我,我会在线程中放上它的链接。

【问题讨论】:

不使用AS2,为什么不使用AS3? AS3比AS2更适合游戏开发 由于我现在没有AS2的测试环境,所以只能建议大家不要拖着投掷物,而是拖动透明的目标物,让投掷物朝着目标物移动在每个enterframe。释放点击后,使用它们之间的剩余距离来计算最终速度。 【参考方案1】:

我会这样。 在你的舞台上(根):

_global.$stage = this;
var isDragging = false;
var dragTarget = null;
$stage.onEnterFrame = function()       
    if(isDragging)
         $stage.dragTarget._x = $stage._xmouse;
         $stage.dragTarget._y = $stage._ymouse;
           

然后在球上:

on(press) 
   $stage.isDragging = true;
   $stage.dragTarget = this;


on(release) 
   $stage.isDragging = false;

【讨论】:

以上是关于在 ActionScript 2.0 中轻松拖放的主要内容,如果未能解决你的问题,请参考以下文章

ActionScript 3 actionscript 3简单的拖放

ActionScript 3 机器人内的AS3空气拖放

ActionScript 2.0 和 ActionScript 3.0 有啥区别

我遇到了矩阵级联代码的/ Actionscript 2.0 问题

flash actionscript 2.0 和 php

ActionScript 2.0 和 swc