1

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

调试函数“copyit2”可以很好地显示图像(所以我知道它加载正常)。但函数“copyit”不起作用——它只显示一个白色矩形。我看不到如何使 copyit 工作,以便将原始图像复制到 BitmapData,然后再复制到父级?

(想法是在显示位图数据之前对其进行一些处理,尽管此处未显示以使示例简单。)

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

感谢任何人都可以提供的任何帮助。
伊恩

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");
        }

    }
}
4

1 回答 1

1

解决它!(包括这个,以防有人发现它有用)

该行:

imgObj.draw(img);

如果我将其更改为:

imgObj.draw(img.content);

我为此失去了两天的生命:-(

于 2010-04-20T21:24:54.803 回答