• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-05-2009, 13:21   #1 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 24
[Tweener] Objekt aus der Mitte heraus animieren

Hi,

ich habe mehrere (dynamisch erzeugte) Objekte gleicher höhe, aber unterschiedlicher Breite und möchte, dass diese bei einem MouseOver skaliert werden. Dafür würde ich gern den Tweener nutzen.

Also ich habe in der dazugehörigen Klasse folgendes stehen:
Code:
Tweener.addTween(this, {scaleX:1.1,scaleY:1.1, time:1, transition:"easeoutelastic"});
..das Problem dabei ist, dass diese zwar skaliert werden aber nicht von der Mitte sondern von oben links (0,0). Gibts da irgendwie eine Möglichkeit, dass man diese von der Mitte aus skaliert? So wie ich das mitbekommen habe, lässt sich der Registerpunkt per AS leider nicht ändern
artart ist offline   Mit Zitat antworten
Alt 14-05-2009, 14:00   #2 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
Wenn ich jetzt keinen Denkfehler hatte sollte es so klappen
mc steht für den MovieClip den Du Tweenen möchtest.
ActionScript:
  1. var xTw:Number = mc.x - (mc.width*1.1/2 - mc.width/2);
  2. var yTw:Number = mc.y - (mc.height*1.1/2 - mc.height/2);
  3. Tweener.addTween(this, {scaleX:1.1,scaleY:1.1, x:xTw, y:yTw time:1, transition:"easeoutelastic"});

Wenn jemand einen Fehler endeckt, bitte melden.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website

Geändert von Linowitch (14-05-2009 um 14:01 Uhr)
Linowitch ist offline   Mit Zitat antworten
Alt 14-05-2009, 14:41   #3 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Ich glaube des ändert nichts am Registerpunkt!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 14-05-2009, 14:44   #4 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
Nein,
aber x und y wird mit animiert, so entsteht der Eindruck, dass sich der mc aus der Mitte scalliert.

Aber wie gesagt, wenn ich keinen Denkfehler hatte.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 14-05-2009, 14:55   #5 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 24
Ja danke, klappt super...
noch mal ne blöde Frage, was muss ich in die Funktion, welche durchs MouseOut ausgelöst wird, hereinschreiben damit das Objekt wieder kleiner wird ...
sonst rückt es bei jedem MouseOver ein Stückchen weiter nach links oben...ich könnt die alten Koordinaten zwar global speichern, aber das find ich irgendwie nicht so schön. Sorry..hab heute irgendwie n Brett vorm Kopf
artart ist offline   Mit Zitat antworten
Alt 14-05-2009, 14:57   #6 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
ActionScript:
  1. var xTw:Number = mc.x - (mc.width/1.1/2 - mc.width/2);
  2. var yTw:Number = mc.y - (mc.height/1.1/2 - mc.height/2);
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 14-05-2009, 15:07   #7 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Wenn es Euch interessiert, hier ist was wo man den Punkt, echt verschieben kann
http://www.darronschall.com/weblog/2...n-with-as2.cfm
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 14-05-2009, 15:16   #8 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
Eigentlich macht der auch nichts anderes.
Nur etwas mehr.
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 14-05-2009, 15:41   #9 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Man braucht sich halt keinen großen kopf mehr machen
PHP-Code:
import com.darronschall.DynamicRegistration;
DynamicRegistration.initialize(square_mc);
square_mc.setRegistration(square_mc._width/2,square_mc._height/2);
function 
rota(){
    
square_mc._rotation2 +=5;
}
this.onEnterFrame rota
gaht easy
Hab ja nicht gesagt das Deines verkehrt ist
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 14-05-2009, 15:45   #10 (permalink)
Alter User
 
Benutzerbild von Linowitch
 
Registriert seit: Nov 2006
Ort: München
Beiträge: 484
War nur eine Anspielung auf
Zitat:
hier ist was wo man den Punkt, echt verschieben kann
__________________
Gruß Linowitch
Wer glaubt gut zu sein hat aufgehört besser zu werden!

Website
Linowitch ist offline   Mit Zitat antworten
Alt 14-05-2009, 16:49   #11 (permalink)
Neuer User
 
Registriert seit: May 2009
Beiträge: 24
Ha! Super..
das mit der Dynamic MovieClip Registration klappt ganz gut (und man muss weniger nachdenken ). Gibts übrigens auch für AS3 http://www.oscartrelles.com/archives...ation_with_as3

man muss nur halt aufpassen, dass man dann alles mit x2 und y2 macht... also

Code:
Tweener.addTween(this, {scaleX2:1.1,scaleY2:1.1, time:1, transition:"easeoutelastic"});
artart ist offline   Mit Zitat antworten
Alt 14-05-2009, 17:29   #12 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Sag ich doch
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 12-03-2010, 18:02   #13 (permalink)
Neuer User
 
Registriert seit: Jan 2008
Beiträge: 3
Matrix MatrixTransformer und transformPoint?

Es gibt aber auch die MatrixTransformer-Klasse, mit welcher der transformPoint ähnlich Eurer setRegistration-Funktion festgelegt werden kann.

Code:
import flash.geom.Matrix;
import fl.motion.MatrixTransformer;

deinMC.addEventListener(MouseEvent.CLICK,ereignisse);

function ereignisse(evt:MouseEvent):void {
	var mat:Matrix = deinMC.transform.matrix;
	mat.transformPoint(new Point(deinMC.width/2,deinMC.height/2));
	deinMC.transform.matrix = mat;
	deinMC.scaleX=1.1;
	deinMC.scaleY=1.1;
}
Und ein Tween lässt sich ja auch ohne Probleme damit verbinden.

Oder hab ich hier nen Denkfehler, weil der Import der Matrixklasse evtl. ein wenig zu performancelastig ist?

Geändert von mediafreak (12-03-2010 um 18:07 Uhr)
mediafreak 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 02:48 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele