1

Imageクラスを拡張しようとしていますが、乗り越えられない問題が発生しました。画像を読み込むプライベート画像(img)と、その画像を取得して親にコピーする関数があります。

デバッグ関数「copyit2」は画像を正常に表示します(したがって、正常にロードされていることがわかります)。ただし、関数「copyit」は機能しません。白い長方形が表示されるだけです。元の画像がBitmapDataにコピーされ、続いて親にコピーされるようにcopyitを機能させる方法がわかりませんか?

(例を単純にするためにここには示されていませんが、表示される前にビットマップデータに対して何らかの処理を行うという考え方です。)

画像の読み込みのセキュリティに関係しているのではないかと思いますが、アプリケーションの実行元と同じサーバーから画像を読み込んでいます。これは問題ではないでしょうか。

誰もが提供できる助けをありがとう。
イアン

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

そのために私の人生の2日間を失いました:-(

于 2010-04-20T21:24:54.803 に答える