2010-04-20 148 views
1

我试图扩展Image类,但遇到了一个我无法过去的问题。我有一个私人图像(img)加载一个图像和一个函数,该图像将其复制到父级。Flex/Actionscript图像显示问题

调试功能“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"); 
     } 

    } 
} 
+0

爱知道为什么这是值得被拒绝??? – IanH 2010-04-21 14:31:34

+0

我想也许是因为你用“我有一个私人图像(img)加载图像”和有人停止阅读那里投票你... 我投票支持你,因为这是一个小错误,你也提供了答案 – Oliver 2010-04-22 11:36:34

回答

1

定了! (如果任何人,包括这个发现它很有用)

行:

imgObj.draw(img); 

的作品,如果我将其更改为:

imgObj.draw(img.content); 

下跌2我一生的日子对:-(