Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-06-2008, 07:33   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
Sklieren mit der Maus

Hi,

ich habe dieses Script : (Auszug)

PHP-Code:
function scale_f ()
{


    
//this._height = Math.abs (_root._ymouse - sY);
    //this._xscale = this._yscale;

    
this._width Math.abs (_root._xmouse sX);
    
this._yscale this._xscale;


sX bzw. sY ist die Mausposition beim Drücken der Maustaste.
Die Function wird durch onEnterFrame aufgerufen.

Der MC soll proportional skaliert werden.
So wie es jetzt ist reagiert die Skalierung nur wenn ich die Maus in der
x-Position verschiebe. Bei den auskommentierten Zeilen auf die y-Position.

Wie bekomme ich es nun hin, das der MC in allen Fällen proportional
skaliert wird?
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page
harego ist offline   Mit Zitat antworten
Alt 16-06-2008, 10:29   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
z.b.
Code:
function scale_f() {
  var maxSize = 300;
  var minSize = 30;
  //
  var dx = this._x-_xmouse;
  var dy = this._y-_ymouse;
  this._width = Math.max(minSize, Math.min(maxSize, Math.sqrt(dx*dx+dy*dy)));
  this._yscale = this._xscale;
}
_mc.onEnterFrame = scale_f;
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 16-06-2008, 10:58   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
Hi,

danke für den Tip.

Aber die Größe ändert sich bei Press sprungartig....
Angehängte Dateien
Dateityp: rar Unbenannt-1.rar (5,7 KB, 4x aufgerufen)
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page
harego ist offline   Mit Zitat antworten
Alt 16-06-2008, 23:03   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
http://www.seibsprogrammladen.de/fra...ispiele/flash6
-> auswahl
... Auswahlrechteck mit 8 Knubbel
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 17-06-2008, 04:23   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
Hi,

danke für das schöne Beispiel.

Das Problem ist nur, das nicht proportional skaliert wird.
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page
harego ist offline   Mit Zitat antworten
Alt 17-06-2008, 08:46   #6 (permalink)
immer gerne hier
 
Registriert seit: Sep 2005
Beiträge: 347
Hallo.

Ich hab dir mal eine Skizze gemacht wie dus lösen könntest.
Ich hoffe, es ist ein guter Anstoss.



EDIT:Schneiden kannst du so:

M=this._height/this._width
B=-M*this._x+this._y

Schnittpunkt Variante 1 (Mauszeiger rechts neben dem Objekt)
x = _root._xmouse
y = M*_root._xmouse+B

Schnittpunkt Variante 2 (Mauszeiger unter dem Objekt)
x = (B-_root._ymouse)/M
y = _root._ymouse

Keine Gewähr auf das, habs schnell ausm Kopf gezaubert.
Das heisst übrigens "Schneiden mit Funktionen"...


Gruss
Kenji
__________________
Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft.
Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal
Interese für: Sicherheit, Kryptologie, Performance

Geändert von Kenji (17-06-2008 um 09:44 Uhr)
Kenji ist offline   Mit Zitat antworten
Alt 17-06-2008, 09:55   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von harego Beitrag anzeigen
Das Problem ist nur, das nicht proportional skaliert wird.
das hatten wir aber schon. du kannst nach jeder änderung noch ergänzen:
this._yscale = this._xscale;
oder umgekehrt
this._xscale = this._yscale;
je nachdem, ob die breite oder die höhe ausschlaggeben sein soll.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 17-06-2008, 10:11   #8 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
Dann reagiert doch die Skalierung nur entwerder wenn sich der Y-Wert
der Maus ändert oder umgekehrt.

Es sollte sich aber die Sklierung in beiden Fällen proportional ändern?
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page
harego ist offline   Mit Zitat antworten
Alt 17-06-2008, 10:57   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
mit 'ziehen' geht das nur, wenn du dich exakt auf der linie bewegen würdest, die dir Kenji aufgezeichnet hat. jede abweichung davon kann keine proportionale veränderung ergeben. dann musst du dich für breite oder höhe als bezugsgrösse entscheiden.

als beispiel siehe flash:

ein rechteck aufziehen
frei transformieren - werkzeug auswählen
und mit gedrückter shift-taste die rechteckgrösse verändern.

die nehmen offensichtlich den jeweils kleinsten x/y wert von 'gegenüber liegender eckpunkt minus mausposition'.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (17-06-2008 um 11:02 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 17-06-2008, 11:43   #10 (permalink)
immer gerne hier
 
Registriert seit: Sep 2005
Beiträge: 347
Ich habs ja geschrieben wie ers machen kann... Er muss einfach die Mausposition waagrecht bzw. senkrecht mit der Diagonalen schneiden, dann bekommt er einen Punkt und er muss die width, bzw. die height so erhöhen dass der eckpunkt dort ist.
__________________
Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft.
Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal
Interese für: Sicherheit, Kryptologie, Performance
Kenji ist offline   Mit Zitat antworten
Alt 17-06-2008, 11:53   #11 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
eben, harego muss sich entscheiden, entweder die x- oder die y- position. beide zusammen geht einfach nicht (ausser dem erwähnten spezialfall, die diagonale, bei dem beide den selben skalierungsfaktor ergeben. mithin überdefiniert)

oder z.b. das in #2 gezeigte, das hat aber nichts mit ziehen von eckpunkten zu tun.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 17-06-2008, 12:24   #12 (permalink)
Neuer User
 
Registriert seit: Jan 2002
Beiträge: 1.244
Es muß aber dafür eine Lösung geben.

Siehe hier: http://www.123plakat.de/motiv/

Da ein Bild deiner Wahl hochladen.
__________________
Mfg aus Brandenburg.

harego

Spiel

Zur Page
harego ist offline   Mit Zitat antworten
Alt 17-06-2008, 12:33   #13 (permalink)
immer gerne hier
 
Registriert seit: Sep 2005
Beiträge: 347
Zitat:
Zitat von hgseib Beitrag anzeigen
eben, harego muss sich entscheiden, entweder die x- oder die y- position. beide zusammen geht einfach nicht (ausser dem erwähnten spezialfall, die diagonale, bei dem beide den selben skalierungsfaktor ergeben. mithin überdefiniert)
Nein, eben nicht. Er muss sich nicht entscheiden. Er kann ja eine Abfrage machen ob sich der Mauszeiger unter dem Rechteck befindet -> horizontal schneiden
oder rechts davon -> vertikal schneiden.

Dann hat ers so wie im PowerPoint...
__________________
Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft.
Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal
Interese für: Sicherheit, Kryptologie, Performance

Geändert von Kenji (17-06-2008 um 12:50 Uhr)
Kenji ist offline   Mit Zitat antworten
Alt 17-06-2008, 12:53   #14 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von Kenji Beitrag anzeigen
Er muss sich nicht entscheiden. Er kann ja eine Abfrage machen
eine abfrage ist eine entscheidung.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 17-06-2008, 13:52   #15 (permalink)
immer gerne hier
 
Registriert seit: Sep 2005
Beiträge: 347
Nein!! *sich die Haare rauf*

Wenn er nach rechts geht mit der Maus dann wird der rechte Rand zur Maus ausgedehnt, und die _height verändert sich proportional.

Wenn er nach unten geht mit der Maus dann wird der Untere Rand zur Maus gezogen, und die _width wird proportional angepasst.

So ist es im PowerPoint wenn man shift gedrückt hält.

Naja, ich komme wol nicht drum herum nach dem Feierabend das Teil zu programmieren...


EDIT: Bald fertig, vllt. mach ich es noch derhbar um es unnötig kompliziert zu machen
__________________
Flashforum-Könige: der Frager und hgseib. Ein fettes Lob an die beiden für unendliche Hilfsbereitschaft.
Erfahrung mit: Actionscript 2, 3, PHP, MySQL, HTML, CSS, .htaccess, JavaScript, C++, Pascal
Interese für: Sicherheit, Kryptologie, Performance

Geändert von Kenji (18-06-2008 um 07:30 Uhr)
Kenji 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 05:39 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele