Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-05-2006, 16:36   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Beiträge: 338
draw (BitmapData.draw-Methode)

hallo zusammen,

ich schlage mich zur zeit mit der bitmapData rum.
ausschnitte aus bildern kopieren klappt gut, da ich die größe ja beim erstellen der bitmapData angeben kann. nur das verschieben des ausschnitts will nicht wirklich. kann bis jetzt nur von (0/0) aus das bitmap generieren.

vielleicht verstehe ich aber auch nur die draw methode nicht richtig.
wollte mit dem parameter clipRect:Rectangle den ausschnitt verschieben;

public draw(source:Object, [matrix:Matrix], [colorTransform:ColorTransform], [blendMode:Object], [clipRect:Rectangle], [smooth:Boolean]) : Void

aber so wies aussieht verschiebt er nicht die bitmapData sondern das sourceObject. ist das so? kann mir jemand auf die sprünge helfen?

danke schön;



hier das as:

PHP-Code:
import flash.display.BitmapData;  
import flash.geom.Matrix;
import flash.geom.Rectangle;
import flash.geom.ColorTransform;

class 
ProcessPictureClass  
{      
    function 
ProcessPictureClass(processArray:Array)  
    {  
            for (var 
k:Number=0k<processArray.lengthk++)   
            {  
            var 
tempPicture:MovieClip processArray[k].tempHolder;  
            var 
myBitmapData:BitmapData = new BitmapData(100100true0x00FFFFFF);  
            var 
xRectangle:Number Math.random()*(tempPicture._width-100);
            var 
yRectangle:Number Math.random()*(tempPicture._height-100);
            var 
myRectangle:Rectangle = new Rectangle(xRectangle,yRectangle,100,100);
            var 
identityMatrix:Matrix = new Matrix();
            var 
myColorTransform:ColorTransform = new ColorTransform();
            var 
blendMode:String "normal";

            
myBitmapData.draw(tempPicture,identityMatrix,myColorTransform,blendMode,myRectangle);

            
processArray[k].attachBitmap(myBitmapData,processArray[k].getNextHighestDepth());  
            
processArray[k].tempHolder.removeMovieClip();  
            };  
    };  
}; 
__________________
kondome schützen and powder can kill

Geändert von boarter (26-05-2006 um 16:46 Uhr)
boarter ist offline   Mit Zitat antworten
Alt 26-05-2006, 18:14   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
"..nur das verschieben des ausschnitts will nicht wirklich.."

rate mal, wozu das da gebraucht wird: identityMatrix
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-05-2006, 18:55   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Beiträge: 338
hi hgseib;
ich hab mal die identityMatrix in translateMatrix umgeändert:
PHP-Code:
var translateMatrix:Matrix = new Matrix();
            
translateMatrix.translate(xRectangle,yRectangle); 
aber funktionieren tuts immer noch nicht richtig, das bild wir an der seite manchmal abgeschnitten, kann es sein, dass ich den zufallswert falsch gesetzt habe? müsste aber eigentlich stimmen:

PHP-Code:
       var xRectangle:Number Math.random()*(tempPicture._width-100); 
            var 
yRectangle:Number Math.random()*(tempPicture._height-100); 
danke,
boarter

edit: komisch, wenn ich -xRectangle und -yRectangle nehme funktionierts, naja hauptsache es geht.
ich würde noch gerne wissen wozu man das Rectangle braucht, das kann man doch schon in der bitmapData angeben.
gruss,boarter.
__________________
kondome schützen and powder can kill

Geändert von boarter (26-05-2006 um 19:06 Uhr)
boarter ist offline   Mit Zitat antworten
Alt 26-05-2006, 19:09   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
treffer. durch die brust ins auge ;-)

nach dem hinweiss hättest du mal in die hilfe nachsehen können, welche parameter eine matrix hat (und überhaupt alle parameter sind in der hilfe beschrieben):

var identityMatrix = new Matrix();
identityMatrix.tx = 100; // x-versatz
identityMatrix.ty = 200; // y-versatz
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (26-05-2006 um 19:14 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 26-05-2006, 19:30   #5 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Beiträge: 338
ja schon. hatte aber auch in der hilfe nachgeschaut.
dachte dadurch, dass ich bei "new Rectangle" die x und y koordinaten angeben kann, das ich diese funktion bräuchte.
naja, auf jedenfall: vielen dank für deine hilfe.
und zum minuswert: so wie es aussieht verschiebt sich nicht das bitmap über dem source object sondern genau andersrum, das source object unter dem bitmap - dadurch das mit dem minuswert der matrix, oder?
__________________
kondome schützen and powder can kill

Geändert von boarter (26-05-2006 um 19:31 Uhr)
boarter ist offline   Mit Zitat antworten
Alt 26-05-2006, 23:04   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.326
keine ahnung. einfach testen ;-)

jedenfalls die matrix ist zum verschieben, drehen, skalieren, kippen usw. da. was halt so eine matrix macht.

und das rechteck beschneidet die grösse.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 27-05-2006, 14:36   #7 (permalink)
Neuer User
 
Registriert seit: Dec 2001
Beiträge: 338
o.k. danke nochmal.
---
off
__________________
kondome schützen and powder can kill
boarter ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:49 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele