【问题标题】:Flash CS5...elements are snapping to pixels while moving?Flash CS5 ...元素在移动时捕捉到像素?
【发布时间】:2013-02-02 03:53:14
【问题描述】:

我在“info_icon”符号中有一个导入的 png。 我在“info_content”符号中有另一个导入的 png。

我有一些代码允许您拖动“地图”符号的实例。此地图符号内部是“info_icon”和“info_content”的实例。

当我慢慢拖动地图时,我可以看到 info_icon 实例和 info_content 实例,它们都在轻微晃动……我想对齐像素。

我正在想办法阻止这种情况。我正在查看 pixelSnapping 属性,但它似乎没有帮助......也许我用错了。

info_button_mc.pixelSnapping = PixelSnapping.NEVER;

【问题讨论】:

    标签: actionscript-3 image


    【解决方案1】:

    确保在位图上将平滑设置为 true。

    尝试将 scaleX 设置为 0.999 或类似的值(换句话说,足够接近 1,以至于您无法判断它正在被缩放)。

    由于某种原因,平滑似乎并没有真正得到应用,除非对象的比例不是 1。

    请记住,您应该在此处使用位图,因此请确保为 ActionScript 导出 PNG(右键单击 PNG->properties)并为其指定类名,然后:

    var bitmap : Bitmap = new Bitmap(new YourPNG(), PixelSnapping.NEVER);
    addChild(bitmap);
    bitmap.smoothing = true;
    bitmap.scaleX = 0.999; 
    

    【讨论】:

    • @Pixel Elephant... 我正在将图像动态加载到 Loader 类中。在那种情况下我将如何使用你的技术(没有双关语)?
    • var bmp:Bitmap = new Bitmap(); bmp = Bitmap(eLoader.content); bmp.smoothing = true; bmp.scaleX = 0.999; bmp.scaleY = 0.999; this.addChild(bmp); 这行得通,但你可以看出图像有点模糊。我已经在图像中渲染了文本,所以你可以完全分辨出来。这是停止烦人的抖动/像素捕捉的唯一方法吗?
    • 您可以拥有完美清晰的图像,也可以在亚像素级别缓慢移动它。
    【解决方案2】:

    info_button_mc 是影片剪辑还是位图?除了 Pixel Elephant 建议的内容外,请确保位图及其容器上的 cacheAsBitmap 属性为 false(如果容器与位图的移动有关)。 CacheAsBitmap 将始终进行像素捕捉,值得注意的是,您可能启用的任何过滤器都会自动将 cacheAsBitmap 设置为 true。

    【讨论】:

      【解决方案3】:

      不要将比例设置为 0.999,这会导致图像模糊,而是尝试以双倍分辨率渲染图像(如在源图像中:png、位图等 - 使其在每个维度上都是实际大小的两倍想要在 swf 中),然后将比例设置为 0.5。以我的经验,这是两全其美的。也就是说,对于文本来说,它可能仍然不够完美 - 但它的质量比将比例设置为 0.999 要好得多。

      【讨论】:

        猜你喜欢
        • 2019-09-02
        • 1970-01-01
        • 1970-01-01
        • 2013-02-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-08-26
        • 1970-01-01
        相关资源
        最近更新 更多