Flex / Actionscript图像显示问题

时间:2010-04-20 10:08:27

标签: flex image actionscript bitmapdata drawrect

我正在尝试扩展Image类,但遇到了一个我无法通过的问题。我有一个加载图像的私有图像(img)和一个捕获该图像并将其复制到父图像上的函数。

调试功能“copyit2”显示图像正常(所以我知道它已加载好)。但功能“copyit”不起作用 - 它只显示一个白色矩形。我无法看到如何使copyit工作,以便将原始图像复制到BitmapData,然后将其复制到父级?

(我们的想法是在显示之前对Bitmap数据进行一些处理,尽管这里没有显示,以保持示例简单。)

我怀疑这与加载图片的安全性有关,但是我从运行应用程序的同一台服务器上加载它 - 所以这应该不是问题?

感谢任何人提供的任何帮助 伊恩

package zoomapackage
{
    import flash.display.Bitmap;
    import flash.display.BitmapData;
    import flash.display.Sprite;
    import flash.events.MouseEvent;
    import flash.geom.Matrix;
    import flash.geom.Point;
    import flash.geom.Rectangle;
    import flash.net.*;

    import mx.controls.Image;
    import mx.events.FlexEvent;

    public dynamic class Zooma extends Image
    {
        private var img:Image;

        public function copyit():void {
            var imgObj:BitmapData = new BitmapData(img.content.width, img.content.height, false);

            imgObj.draw(img);

            var matrix:Matrix = new Matrix();
            this.graphics.beginBitmapFill(imgObj, matrix, false,true);
            this.graphics.drawRect(0, 0, this.width , this.height);
            this.graphics.endFill();
        }

        public function copyit2():void {
            this.source = img.source;
        }

        public function Zooma()
        {
            super();
            img = new Image();
            img.load("http://localhost/Koala.jpg");
        }

    }
}

1 个答案:

答案 0 :(得分:1)

修正了它! (包括这个,以防任何人发现它有用)

该行:

imgObj.draw(img);

如果我将其更改为:

imgObj.draw(img.content);

我生命中失去了2天: - (