Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2007, 13:35   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 3
DEZENTE Posotionsabfrage

Morgen liebe Flasher,
ich habe auf meiner durchaus unfertigen Seite ein Menü eingebaut, welches sich ab einer bestimmten _x Position der Maus öffnen soll. Hat auch geklappt mit Hilfe von onclipevent und einer if-Abfrage.
Nach kurzer Zeit und etwas mehr Inhalt auf der Seite stellte ich fest, dass es doch ein bisschen systremlastig ist mit dieser Abfragekombi zu arbeiten.
Jetzt überlege ich,

this.onMouseMove = function() {
dann die if abfrage
}

zu verwenden.
Kennt jemand eine elegantere Lösung für dieses Problem (in AS 1)
Vielen Dank
sashilla ist offline   Mit Zitat antworten
Alt 02-10-2007, 01:55   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
Code:
_root.onMouseMove = function() {
  if (_root._xmouse<=111){
    // menü öffnen
  }
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 02-10-2007, 17:42   #3 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 3
ja genau, das meine ich .. hier ein Bespiel mit onMouseMove
Einfach in 1st frame einfügen.

Es ist Systemschonend aber nicht ganz flüssig

Gibt es denn wirklich keine Alternative zu onMouseMove und on clipevent in diesem Fall???

PHP-Code:
function randx(name,no,xvar) {
    
name._x=name._x+((xvar-name._x)/no);
}

//Die Grenze ist bei X = 200
this.onMouseMove = function() {
if(
_xmouse<200){
    
_root.num_x = -90;    
//fährt raus bis:


_root.randx(mfull,3,_root.num_x);


}
if(
_xmouse>200){
_root.num_x = -200;
//wohin es sich versteckt


_root.randx(mfull,3,_root.num_x);
}
}




_root.createEmptyMovieClip"mfull");
with _root.mfull )
{
lineStyle50xff00ff100 );
moveTo200200 );

lineTo100,100 );
lineTo100200 );
lineTo200200 );
lineTo200100 );
lineTo100,100 );
}

_root.createEmptyMovieClip"linie");
with _root.linie )
{
lineStyle50xff00ff100 );
moveTo200200 );

lineTo200,);
lineTo200900 );

sashilla ist offline   Mit Zitat antworten
Alt 02-10-2007, 18:40   #4 (permalink)
Nix Wisser
 
Benutzerbild von nullidee
 
Registriert seit: May 2003
Ort: Würzburg, Kleinstadt
Beiträge: 3.510
du könntest einen unsichtbaren Button/MC drunterlegen

PHP-Code:
_root.createEmptyMovieClip"mfull"1000 );
with _root.mfull ){
    
lineStyle50xff00ff100 );
    
moveTo(00);
    
lineTo100,);
    
lineTo100100 );
    
lineTo0100 );
    
lineTo0);
    
lineTo100,100 );
}

_root.createEmptyMovieClip"linie"1002 );
with _root.linie ){
    
lineStyle50xff00ff100 );
    
moveTo200200 );
    
lineTo200,);
    
lineTo200900 );
}  

_root.createEmptyMovieClip"dummy_btn"10 );
with _root.dummy_btn ){
    
lineStyle();
    
beginFill0x444444);
    
moveTo0);
    
lineTo200,);
    
lineTo200,900 );
    
lineTo0900 );
    
lineTo0);
    
endFill();
}  
mfull._x = -100;

dummy_btn.useHandCursor false;
dummy_btn.onRollOver = function(){
    var 
vx 0;
    
_root.mfull.onEnterFrame = function(){
        var 
dx 100;
        
vx Number(vx*.5)+Number((dx-this._x)*.3);
        
this._x += vx;
    };
};
dummy_btn.onRollOut = function(){
    var 
vx 0;
    
_root.mfull.onEnterFrame = function(){
        var 
dx = -100;
        
vx Number(vx*.5)+Number((dx-this._x)*.3);
        
this._x += vx;
        if(
this._x<=-100delete this.onEnterFrame;
    };
}; 
__________________
nullidee

Abakus GT 10² Kugeln - 80"Leinwand - CARAN D´ACHE SUPRACOLOR®
nullidee ist offline   Mit Zitat antworten
Alt 02-10-2007, 19:03   #5 (permalink)
Nix Wisser
 
Benutzerbild von nullidee
 
Registriert seit: May 2003
Ort: Würzburg, Kleinstadt
Beiträge: 3.510
könntest mit dummy_btn.enabled = false den Button ausschalten
oder mit hitTest prüfen, ob Maus über Button, dann brauchst du aber wieder konstante Abfrage.

PHP-Code:
dummy_btn.onRollOver = function(){
    
this.enabled false;// ----- hier
    
var vx 0;
    
_root.mfull.onEnterFrame = function(){
        var 
dx 100;
        
vx Number(vx*.5)+Number((dx-this._x)*.3);
        
this._x += vx;
    };
}; 
und bei verlassen oder drücken deiner anderen Buttons wieder einschalten
__________________
nullidee

Abakus GT 10² Kugeln - 80"Leinwand - CARAN D´ACHE SUPRACOLOR®

Geändert von nullidee (02-10-2007 um 19:05 Uhr)
nullidee ist offline   Mit Zitat antworten
Alt 02-10-2007, 19:19   #6 (permalink)
Neuer User
 
Registriert seit: Dec 2004
Beiträge: 3
wow, das ist sehr überzeugend auch den getuneten Wabbereffekt finde ich witzig. Der einzige Nachteil ist, das war nämlich für mich der Grund nicht mit einem hinterlegten Button zu arbeiten, die Menüpunkte, die wiederum auch Buttons sind und im Vordergrund liegen, machen Probleme. Ich weiss nicht wie ich die Buttons über dem Button behandeln soll. (Geht die Maus auf einen button der einen anderen überlappt, zählt das als verlassen des Rollovers). Man kann also nicht beide gleichzeitig "roll-overn"
Gibt es dafür eine Lösung?

Was mir noch positiv auffällt:
PHP-Code:
dummy_btn.onRollOut = function(){
    var 
vx 0;
    
_root.mfull.onEnterFrame = function(){
        var 
dx = -100;
        
vx Number(vx*.5)+Number((dx-this._x)*.3);
        
this._x += vx;
        if(
this._x<=-100delete this.onEnterFrame;
    };
}; 
Das ist eine sehr schöne Kombination, aus onEnterFrame und einer Abfrage. Ist es dann nicht egal ob diese dann per unsichtbaren Knopf erfolgt oder über onMouseMove mit abfrage?
Also wäre demnach
onMouseMove mit einer if-Abfrage und dann ein onEnterFrame für die Menübewegeung
(Systemleistungstechnisch) optimal ?
sashilla 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:21 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele