Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-01-2006, 14:20   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Schoppernau
Beiträge: 91
Grössenänderung bei Mausnäherung

Hallo zusammen,

ich möchte, dass ein MC (Button) seine Größe ändert, wenn die Maus sich nähert. Dies soll sich auf den absoluten Abstand der Maus zum Objekt beziehen. Also genau genommen möchte ich einen Radius um das Objekt definieren können, ab dem die Skalierung gestartet wird. Wenn die Maus das Objekt erreicht hat, soll ein Maximalwert erreicht werden, also kein endloses Weiterskalieren stattfinden. Wenn die Maus wieder Abstand nimmt, soll das Objekt wieder die übliche Größe annehmen.

Wäre sehr dankbar für etwas Code oder nen Link zu einer Antwort.

Liebe Grüße

Joga

P.S. Der Frager hat gestern freundlicherweise geholfen ein ähnliches Problem zu lösen, allerdings basierte dieses auf hittest und war für die »Näherung ans Objekt« nicht geeignet.
joga ist offline   Mit Zitat antworten
Alt 25-01-2006, 14:30   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Zitat:
Zitat von joga
...allerdings basierte dieses auf hittest und war für die »Näherung ans Objekt« nicht geeignet.
Ging ja auch nicht um Annährung .

PHP-Code:
function onMouseMove() {
    
this.dein_mc._xscale this.dein_mc._yscale=100+(_root._xmouse-this.dein_mc._x)/2;

...mal so als Beispiel.
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 25-01-2006, 14:38   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Schoppernau
Beiträge: 91
Hallo Frager,

erneut vielen Dank. Ich frage mich, warum du als Antworter Frager heisst. Naja, Fragen sind ja oft die besten Antworten, aber bei deinen Antworten bleiben ja keine Fragen offen.

Frohes Schaffen

Johannes
joga ist offline   Mit Zitat antworten
Alt 25-01-2006, 14:57   #4 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Schoppernau
Beiträge: 91
Oh pardon, nochmal kurz:

Ich denke, etwas mißverstanden zu haben.

Stell Dir vor, mein Objekt (50x50) hat eine Größe von 100% und liegt in einem 550x550 Pixel großen Film genau in der Mitte (der Einfachheit halber sind diese Positionen und Größen für das Beispiel gewählt).

Wenn die Maus nun, aus welcher Richtung auch immer, auf das Objekt zukommt, soll es anfangen zu "wachsen", wenn die Maus nur noch 200 Pixel von ihm entfernt ist. Wenn die Maus weiter weg ist, soll es dem Objekt "egal" sein und es soll einfach seine 100% beibehalten. Wenn die Maus jetzt immer näher kommt (Entfernung < 200 aber > 50 Pixel) soll das Objekt bis auf 150% wachsen. Wenn die Entfernung < als 50 Pixel wird, soll das Objekt nicht mehr weiter wachsen.

Fragen über Fragen an den Frager; ich frage mich, ob das der richtige Weg ist, den Frager zu Antworten zu bewegen? Die Antwort(en) weiss nur der Frager, zumindest die Antwort hinsichtlich der Antwort des Fragers usw.

Würde mich freuen, Grüße

Johannes
joga ist offline   Mit Zitat antworten
Alt 25-01-2006, 15:11   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Aha... Dann mal so. Bei schnellen Bewegungen könnte es evtl. nicht so ganz klappen. Müsste man dann (wenn notwendig) noch etwas "verfeinern".
PHP-Code:
function onMouseMove() {
    var 
dist Math.abs(this.dein_mc._x-_root._xmouse);
    if (
dist<=200 && dist>=50) {
        
this.dein_mc._xscale this.dein_mc._yscale=Math.round(100+(200-dist)/3);
    }

__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 25-01-2006, 15:38   #6 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Schoppernau
Beiträge: 91
Danke für Deine schnelle Antwort.

Aber ein - kleines? (Frage) - Problem is leider noch geblieben:

Wenn ich mich dem Objekt vertikal nähere, ist ihm die Entfernung zur Maus egal.

Weiterhin die besten Wünsche

Johannes
joga ist offline   Mit Zitat antworten
Alt 25-01-2006, 15:46   #7 (permalink)
angry > always
 
Benutzerbild von ingohill
 
Registriert seit: Jul 2001
Ort: NRW
Beiträge: 1.635
ActionScript:
  1. function onMouseMove() {
  2.     var dist   = 2/((Math.abs(this.dein_mc._x-_root._xmouse)+Math.abs(this.dein_mc._y-_root._ymouse));
  3.     var dist2 = ;
  4.     if (dist<=200 && dist>=50) {
  5.         this.dein_mc._xscale = this.dein_mc._yscale=Math.round(100+(200-dist)/3);
  6.     }
  7. }
__________________

on air: caliban | neaera | heaven shall burn | hatebreed | the agony scene
ingohill ist offline   Mit Zitat antworten
Alt 25-01-2006, 16:22   #8 (permalink)
Pharao a.D.
 
Benutzerbild von Tut-ench-aton
 
Registriert seit: Jul 2004
Ort: 29°58'33.34'' N, 31°07'49.29'' O
Beiträge: 430
onEnterFrame = function(){
dist=Math.sqrt(Math.pow(_xmouse-deinMC._x,2)+Math.pow(_ymouse-deinMC._y,2))
if(dist>50 && dist<=200){
deinMC._xscale=100-(50-dist)/3
deinMC._yscale=100-(50-dist)/3
} else if(dist<=50){
deinMC._xscale=150
deinMC._yscale=150
}
}
Tut-ench-aton ist offline   Mit Zitat antworten
Alt 25-01-2006, 17:01   #9 (permalink)
Neuer User
 
Registriert seit: Jul 2002
Ort: Schoppernau
Beiträge: 91
Vielen Dank für eure Hilfe.

Ich habe derzeit folgende Lösung gewählt:

onClipEvent (load) {

function onMouseMove() {

var dist = ((Math.abs(this._x-_root._xmouse)+Math.abs(this._y-_root._ymouse)));
if (dist<=200 && dist>=50) {
this._xscale = this._yscale=Math.round(100+(200-dist)/3);
}
}
}

Das gerade gepostete Script von Tut-ench-aton schau ich mir jetzt auch noch an.

Grüße

Joga
joga 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 17:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele