我正在尝试扩展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");
}
}
}
答案 0 :(得分:1)
修正了它! (包括这个,以防任何人发现它有用)
该行:
imgObj.draw(img);
如果我将其更改为:
imgObj.draw(img.content);
我生命中失去了2天: - (