【问题标题】:convert masked movieclip into bitmap and save it on server将蒙版的影片剪辑转换为位图并将其保存在服务器上
【发布时间】:2011-02-03 07:35:08
【问题描述】:

我有一个 dsgnArea----> 一个影片剪辑

dsgnArea 被 dsgnAreaMask 屏蔽,而这又是一个影片剪辑

dsgnArea.mask=dsgnAreaMask;

dsgnAreaMask 和 dsgnArea 的宽高位置相同。

我动态地将多个影片剪辑和标签添加到 dsgnArea; 像.. dsgnArea.addChild(movieClip1); dsgnArea.addChild(movieClip2); dsgnArea.addChild(label1); dsgnArea.addChild(label2);等等……

       these movieclips (movieClip1,movieClip2,......) and labels(label1,label2,....) positions can be altered in runtime..

但是当我用 dsgnAreaMask 掩盖了 dsgnArea 时,只有一部分添加的影片剪辑和标签可见...

所以,我的问题是将 dsgnArea 中的可见部分抓取到位图中,就像特定 dsgnArea 的屏幕截图一样,并将其保存在我的服务器中。

请帮我解决这个问题。

【问题讨论】:

    标签: actionscript-3 flash-cs5


    【解决方案1】:

    假设s 是您要捕获的DisplayObject 对象,m 是应用在其上的蒙版。

    var maskRect:Rectangle = m.getRect(s);
    var matrix:Matrix = new Matrix(1, 0, 0, 1, -maskRect.x, -maskRect.y);
    
    var w:Number = Math.min(s.width, maskRect.right) - maskRect.x;
    var h:Number = Math.min(s.height, maskRect.bottom) - maskRect.y;
    
    var bd:BitmapData = new BitmapData(w, h);
    bd.draw(s, matrix);
    

    这行得通吗?

    【讨论】:

    • 嘿,mj。这不适用于蒙面的影片剪辑,但它适用于未蒙面的影片剪辑..
    【解决方案2】:

    BitmapData draw 方法正是您所寻找的。您可以使用它的 clipRect 参数来定义您想要绘制的内容(被遮罩的部分)。

    【讨论】:

      【解决方案3】:

      Quasimondo 做了一个方便的小方法来做到这一点(拍摄整个 displayObject 的快照),它可以在这里找到:http://www.quasimondo.com/archives/000670.php

      我不知道它是否适用于蒙面内容。 如果没有,诀窍是通过掩码的大小翻译整个内容

      var bounds:Rectangle = dsgnAreaMask.getBounds( dsgnAreaMask );
      

      而不是使用剪辑的内容

      var bounds:Rectangle = clip.getBounds( clip );
      

      就保存文件到服务器而言,这个问题被问到(回答了?)这里AS3 Save Media File to server

      【讨论】:

        猜你喜欢
        • 2012-09-18
        • 2013-06-12
        • 2021-01-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-09-18
        • 2010-11-03
        • 2013-10-09
        相关资源
        最近更新 更多