Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-07-2010, 01:53   #1 (permalink)
q00bar @ work
 
Benutzerbild von LilaQ
 
Registriert seit: May 2010
Beiträge: 88
Transformation Point eines Bitmaps / BitmapDatas verschieben?

Hallo zusammen,

ich kenne die Methode wie ich den Ankerpunkt eines MCs o.ä. versetzen kann (Schachtelung in einen Container) - allerdings funktioniert das bei einem Bitmap anscheinend nicht, da immer die Bereiche die nicht im Container liegen, abgeschnitten werden.

Da ich allerdings zwingend den Punkt an einem Bitmap ändern muss (für Rotation, Skalierung etc.) suche ich jetzt nach einer alternativen Methode dafür.

Mir fällt da leider nicht mehr viel ein, hab's selbst über transformationMatrix probiert, jedoch wird da auch nur von (0|0) aus transformiert.

Würde mich freuen wenn da jemand einen Ansatz für mich hat.

Achja, das Bild wird erst während der Runtime reingeladen, also auch keine Möglichkeit den Punkt in Flash zu verändern.

Mfg
LilaQ
LilaQ ist offline   Mit Zitat antworten
Alt 18-07-2010, 02:09   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
wenn du in der 3. zeile das ... ach das kannst du jetzt garnicht sehen?
wir sehen deinen script übrigens auch nicht, zu dem du eine frage hast ;-)

zeig doch bitte deinen script, dann kann man sehen wo der fehler liegt; bzw. wo was ergänzt werden muss.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 18-07-2010, 02:11   #3 (permalink)
q00bar @ work
 
Benutzerbild von LilaQ
 
Registriert seit: May 2010
Beiträge: 88
Wenn ich das ganze Script hier posten würde, würde der Thread explodieren ^^

Geht eigentlich nur darum, wie ich ein einzelnes Bitmap / BitmapData aus dem Zentrum heraus skalieren / rotieren kann.

Edit: Achja, ich muss danach auch wirklich ein Bitmap haben mit dem ich arbeiten kann, keinen MC, Sprite o.ä. als Container, da es sonst zu ressourcenfressend werden würde.

Mfg
LilaQ

Geändert von LilaQ (18-07-2010 um 02:14 Uhr)
LilaQ ist offline   Mit Zitat antworten
Alt 18-07-2010, 03:03   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
na toll. du kannst doch dein ding auf das eigentliche problem reduzieren, oder nicht?
die, die dir eine antwort geben sollen müssen das schliesslich auch tun.
so kann man alles mögliche vorschlagen, ohne je zu wissen, ob's das ist, was du vermisst.

so, was geht deiner meinung nach mit einem bitmap nicht?
Code:
// an stelle eines bildes
var bd1:BitmapData = new BitmapData(40, 40, false, 0x0000FF00);
bd1.fillRect(new Rectangle(0, 0, 20, 20), 0x0000FF);
//
var bmp:Bitmap = new Bitmap(bd1);
addChild(bmp);
//
bmp.x=150;
bmp.y=150;
bmp.scaleX=4;
bmp.rotation=20;
oder z.b. sowas: ein neues bitmap zeichnen.
das muss natürlich gross genug sein, denn was nicht reinpasst passt nicht rein. basda ;-)
und natürlich kann es in einem bitmap keine negativen x/y-positionen geben.
es gibt in einem array ja auch nicht die position -7
Code:
var bd1:BitmapData = new BitmapData(40, 40, false, 0x0000FF00);
bd1.fillRect(new Rectangle(0, 0, 20, 20), 0x0000FF);
//
var mat:Matrix=new Matrix();
mat.scale(3,1);
mat.rotate(.1);
mat.translate(10,5);
var bd2:BitmapData = new BitmapData(140, 60, false, 0x00FF0000);
bd2.draw(bd1,mat);
//
var bmp:Bitmap = new Bitmap(bd2);
addChild(bmp);
bmp.x=150;
bmp.y=150;
wenn du das ding animieren willst, dass es sich um seine eigene mitte drehen soll, dann muss du halt x und y entsprechend berechnen.
Code:
// an stelle eines bildes
var bd1:BitmapData = new BitmapData(40, 40, false, 0x0000FF00);
bd1.fillRect(new Rectangle(0, 0, 20, 20), 0x0000FF);
//
var bmp:Bitmap = new Bitmap(bd1);
addChild(bmp);
bmp.scaleX=2;
//
addEventListener(Event.ENTER_FRAME,loop);

var rad:Number=180/Math.PI;
var mitteX:Number=200;
var mitteY:Number=200;
var bmpB:Number=bmp.width/2;
var bmpH:Number=bmp.height/2;
var bmpW:Number=0;
var rotSpeed:Number=.3;

function loop(evt:Event): void {
	// das kann man natürlich auch via matrix machen
	var s:Number=Math.sin(bmpW);
	var c:Number=Math.cos(bmpW);
	bmp.x=mitteX-c*bmpB+s*bmpH;
	bmp.y=mitteY-s*bmpB-c*bmpH;
	//
	bmp.rotation=bmpW*rad;
	bmpW+=rotSpeed;
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (18-07-2010 um 03:42 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 18-07-2010, 17:01   #5 (permalink)
q00bar @ work
 
Benutzerbild von LilaQ
 
Registriert seit: May 2010
Beiträge: 88
Hey hgseib,

perfekt, genau wonach ich gesucht habe Dank dir für die vielen praktikablen Beispiele.

Mit dem Code, da hätt ich leider wirklich nichts posten können, da momentan nichts anderes da steht als das geladene Bitmap, alles was ich versucht hatte, hat ja nicht geklappt und wurde deswegen wieder gelöscht.

Dank dir nochmal für die tolle Hilfe

Mfg
LilaQ
LilaQ 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
registration point eines MC per AS ändern stickyrice ActionScript 1 1 28-03-2007 14:58
Registration Point eines dyn. generierten MovieClips definieren ~pyropete~ Flash 8 11 07-12-2006 20:29
Pixelkoordinaten eines Bitmaps auslesen fabbsen Flash 8 0 10-08-2006 10:24
dummy-frage: registry point verschieben mc_hammer Flash MX 2004 13 19-07-2005 17:04
Hilfe! Bitmaps verschieben sich beim konverteiren in Movieclip! savvyn Flash MX 9 10-07-2005 17:52


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:35 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele