Mike,

You have, quite literally, saved the day! Thanks a lot for the very useful and quick response.

Niclas



Mike Mountain wrote:
I had the same problem a while ago, here was my final solution
[as]
import flash.display.BitmapData;
import flash.geom.Rectangle;
import flash.geom.Point;
import flash.geom.Matrix;
//
function staticCloneMC(target, mc, padding) {
        var bounds = mc.getBounds(mc);
        var offset_y = padding;
        var offset_x = padding;
        bounds.height = bounds.yMax-bounds.yMin;
        bounds.width = bounds.xMax-bounds.xMin;
        var w = bounds.width+offset_x;
        var h = bounds.height+offset_y;
        bounds.x = bounds.xMin-offset_x/2;
        bounds.y = bounds.yMin-offset_y/2;
        var lvl = target.getNextHighestDepth();
        var clip = target.createEmptyMovieClip("dupe_"+mc._name+"_"+lvl, lvl);
        var holder = clip.createEmptyMovieClip("holder", 1);
        clone_bitmap = new BitmapData(w, h, true, 0x00000000);
        holder.attachBitmap(clone_bitmap, 1, "auto", true);
        clone_bitmap.draw(mc, new Matrix(1, 0, 0, 1, bounds.x*-1, bounds.y*-1));
        holder._x = bounds.x;
        holder._y = bounds.y;
        clip._x = mc._x;
        clip._y = mc._y;
        clip.bitmap=clone_bitmap
        return clip;
}
function animCloneMC(target, mc, padding) {
        var lvl = target.getNextHighestDepth();
        var clip = target.createEmptyMovieClip("dupe_"+mc._name+"_"+lvl, lvl);
        var holder = clip.createEmptyMovieClip("holder", 1);
        clip.mc = mc;
        clip.padding = padding;
        clip.onEnterFrame = function() {
                var bounds = this.mc.getBounds(this.mc);
                var offset_y = this.padding;
                var offset_x = this.padding;
                bounds.height = bounds.yMax-bounds.yMin;
                bounds.width = bounds.xMax-bounds.xMin;
                var w = bounds.width+offset_x;
                var h = bounds.height+offset_y;
                bounds.x = bounds.xMin-offset_x/2;
                bounds.y = bounds.yMin-offset_y/2;
                clone_bitmap = new BitmapData(w, h, true, 0x00000000);
                holder.attachBitmap(clone_bitmap, 1, "auto", true);
                clone_bitmap.draw(mc, new Matrix(1, 0, 0, 1, bounds.x*-1, 
bounds.y*-1));
                holder._x = bounds.x;
                holder._y = bounds.y;
        };
        clip._x = mc._x;
        clip._y = mc._y;
        clip.bitmap=clone_bitmap
        return clip;
} [/as]

-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Niclas Åberg
Sent: 10 January 2007 13:50
To: [email protected]
Subject: [Flashcoders] Copy negative pixels from a movie clip using draw()

Hi all,

I'm using the BitmapData.draw method, and I've bumped into a problem. I need to copy all the pixels from a movie clip, including the pixels which are on negative coordinates. I've only succeeded copying the ones on positive coordinates. Has anyone experienced the same thing, and, maybe, have a solution?

I got the basic code from Livedocs, written by Andreas Weber (of this
list?) code below. How would I modify it to accept "negative pixels"?

Thamks,

Niclas

---8<---

// 'snapshot'

import flash.display.BitmapData;

// create a clip with visual content
original = this.createEmptyMovieClip("orig", this.getNextHighestDepth()); original.opaqueBackground = 0xFF0000; original.lineTo(100,100);

// create a BitmapData object with the same size var myBitmapData:BitmapData = new BitmapData(original._width, original._height);

// attach the Bitmap to a clip so that it will be rendered on screen var copy:MovieClip = this.createEmptyMovieClip("cop", this.getNextHighestDepth()); copy.attachBitmap(myBitmapData, this.getNextHighestDepth()); copy._x = 300;

// take a 'snapshot'
myBitmapData.draw(original);
_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training http://www.figleaf.com http://training.figleaf.com




ECM Systems Ltd, Ellifoot Park, Burstwick, East Yorkshire HU12 9DZ

Tel: 01964 672000       
Fax: 01964 671102

Registered in England no. 01646471 The information contained within this email expresses the views of the sender and not necessarily those of the company. It is private and confidential and may be legally privileged. It is intended solely for those authorised to receive it. If you are not the intended recipient you are hereby notified that any disclosure, copying, distribution or action taken in reliance on its contents is strictly prohibited and may be unlawful. If you have received this email in error, please telephone us immediately on 01964 672000 or email a reply to highlight the error and then delete it from your system. This email may contain links to web-sites, the contents of which ECM Systems Ltd have no control over and can accept no responsibility for. Any attachments have been virus-checked before transmission; however, recipients are strongly advised to carry out their own virus checking as ECM Systems Ltd do not warrant that such attachments are virus-free. Please note that this email has been created in the knowledge that Internet email is not a secure communications medium. We advise that you understand and observe this lack of security when emailing us.

ECM Systems Ltd, Ellifoot Park, Burstwick, East Yorkshire HU12 9DZ

Tel: 01964 672000       
Fax: 01964 671102

Registered in England no. 01646471 The information contained within this email expresses the views of the sender and not necessarily those of the company. It is private and confidential and may be legally privileged. It is intended solely for those authorised to receive it. If you are not the intended recipient you are hereby notified that any disclosure, copying, distribution or action taken in reliance on its contents is strictly prohibited and may be unlawful. If you have received this email in error, please telephone us immediately on 01964 672000 or email a reply to highlight the error and then delete it from your system. This email may contain links to web-sites, the contents of which ECM Systems Ltd have no control over and can accept no responsibility for. Any attachments have been virus-checked before transmission; however, recipients are strongly advised to carry out their own virus checking as ECM Systems Ltd do not warrant that such attachments are virus-free. Please note that this email has been created in the knowledge that Internet email is not a secure communications medium. We advise that you understand and observe this lack of security when emailing us.



_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com


_______________________________________________
[email protected]
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to