【问题标题】:Solid deformed shape mouse trail in AS3AS3 中的实体变形鼠标轨迹
【发布时间】:2011-08-06 04:25:38
【问题描述】:

我正在尝试复制 this 类型的鼠标轨迹。我不知道它是在变形影片剪辑还是在舞台上绘制单独的对象。我可以以慢速复制它,但在高速时我不知道他们是如何做到的。

MouseEvent.MOUSE_MOVE 是一种减慢更新速度以准确绘制鼠标移动方向的方法,因此我尝试使用 curveTo 创建曲线,但不幸的是,您仍然遇到了锐角的点。

任何有关创建此效果的技术的见解将不胜感激,因为此时我只是在桌子上敲打我的头。

【问题讨论】:

    标签: flash actionscript-3 mouse trail


    【解决方案1】:

    查看它几秒钟,他们可能每帧将那个小 mc 传送(绘制)到一个 butmapdata 对象,同时通过使整个位图的 alpha 变小一个优势来使位图数据变暗,不确定具体多少,请尝试一下。

    所以,使用:

    BitmapData.draw 在位图上的某处绘制影片剪辑,然后

    BitmapData.coloTransform 将整个图像的 alpha 每帧降低 1% 左右...

    所以只需将每个乘数设置为 1.0,直到达到 alpha 并将 alpha 设置为 0.98。只需每帧执行一次颜色变换,随着时间的推移,旧 mc 的“痕迹”会消失。

    ColorTransform class

    代码片段,可能有编译错误,只是为了让您了解如何尝试:

    function onEventFrame(e:Event){
         bitmap.colorTransform(new Rectangle(0,0, 300,300), new ColorTransform(1.0, 1.0, 1.0 , 0.98));
         bitmap.draw(dotMC, bla bla bla);
    }
    

    如果您遇到困难,请查阅上面提供的 as3 参考链接或网络上的一些教程(如果您能找到的话)。

    祝你好运。

    【讨论】:

    • 网站终于加载了,是的,这绝对是位图 blitting,尽管您必须使用一些代码通过创建某种速度感知代码来使 mc 像那样“转向”...我会把它留给你......
    • 太棒了,这是正确的方法。还有一件事,你知道我怎样才能加快绘制速度吗?当我扫过屏幕时,计时器(1)和 MOUSE_MOVE 滞后。
    • 当然,如果它是 1 毫秒,它们会滞后……让它像 20-30 毫秒这样现实,它应该可以工作。如果它跳过太多,请尝试通过在 for 循环的中间点中绘制一个以上的 mc 来“插值”......它应该“平滑”它。
    • 另一种可能性是每秒绘制 50 次(20 毫秒)mc,但在 100 毫秒或 150 毫秒上进行位图颜色变换......它应该有助于提高绘制速度并且用户获胜'没有注意到 alpha 有这么小的变化,所以你可以逃脱它......实验
    • 而且不要使用鼠标移动,这很烦人,至少对我来说。每个 mc 都嵌入了一个 mouseX 和 mouseY 属性。它会根据自己的坐标系自动为您计算坐标。
    猜你喜欢
    • 1970-01-01
    • 2012-06-05
    • 1970-01-01
    • 2019-08-05
    • 2011-08-28
    • 2017-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多