【问题标题】:Create a MovieClip out of another object从另一个对象创建一个 MovieClip
【发布时间】:2011-07-11 15:10:35
【问题描述】:

在我的 Actionscript 程序中,我使用以下方法绘制了一个多边形:

this.graphics.moveTo()

this.graphics.lineTo()

在多边形模型的更新函数中我稍微改了一下,然后重新画一遍。最终,每次调用 update() 函数都会绘制更新后的多边形,我可以看到它发生了变化。

在程序的某些点上,我希望能够将此多边形用作movieclip,所以我 可以在上面附加一个蒙版 - 这样当多边形一遍又一遍地绘制时,我可以看到一个不错的 背景以该多边形的形式填充在里面。

问题是 - 我不知道如何获取我拥有的这个点数组,这是我的多边形表示,并将其变成一个影片剪辑(如果可能的话......)

如果您对如何实现上述内容有任何其他建议,那就太好了。

【问题讨论】:

    标签: actionscript-3


    【解决方案1】:

    您可以创建一个新的 MovieClip 并使用它的图形进行绘图。所以不要使用 this.graphics.moveTo / lineTo,试试这个:

    var mc:MovieClip = new MovieClip();
    
    mc.graphics.moveTo(...);
    mc.graphics.lineTo(...);
    
    this.addChild(mc);
    

    如果你想少打字,一个方便的绘图方法是这样做:

    var mc:MovieClip = new MovieClip();
    
    with(mc.graphics) {
        clear();
        lineStyle(...);
        moveTo(...);
        lineTo(...);
        ...
        ect.
    }
    
    this.addChild(mc);
    

    【讨论】:

      【解决方案2】:

      我建议你看看 Point 类。例如,

      var p1:Point = new Point(100,150);
      

      那么你可以有一个点数组

      var arrPoints:Array = new Array(p1,p2,p3);
      

      使用 for 循环,您可以决定是否 i==0 使用 moveTo,其余使用 lineTo。你可以在最后有一个特殊条件来关闭你的多边形,i==arrPoints.length-1。

      所以,基本上创建一个movieclip 对象,使用它的图形属性来填充你在数组中定义的点。只要您的点在影片剪辑中,您就可以对其进行屏蔽。最后,您使用的“this”符号可能指的是主要的电影剪辑,即舞台。

      var mc:MovieClip = new MovieClip();
      mc.graphics.moveTo(p1.x,p1.y);
      

      会将您的图形绘制到您的 mc 中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-23
        • 1970-01-01
        • 1970-01-01
        • 2020-05-02
        • 1970-01-01
        • 2012-03-07
        相关资源
        最近更新 更多