Zurück   Flashforum > Flash > Flash Fortgeschritten > Flash 8

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-05-2007, 00:34   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 33
mc vorwärts/rückwärts -> slidermenü synchronisieren

hallo zusammen,

habe mir sämtliche tutorials zu dem thema durchgelesen, aber komme da ohne hilfe echt nicht mehr weiter.

ich habe ein horiz. slidermenue, zu dessen x-bewegung ein mc vorwärts/rückwärts abgespielt werden soll.

also
maus rechts -> vorwärts
maus links -> rückwärts
maus stop -> stop

wie die vorwärts/rückwärts geschichte grundsätzlich funktioniert weiss ich mittlerweile, habe aber keine ahnung wie ich das an das vorhandene slidermenue anpassen soll.

hier der code, bzw. im anhang die abgespeckte fla.

PHP-Code:
MovieClip.prototype.easeX = function(x) {
    
this.onEnterFrame = function() {
        
this._x x-(x-this._x)/1.2;
        if (
Math.abs(x-this._x)<=1) {
            
delete this.onEnterFrame;
            
this._x x;
        }
    };
};

images = new Array();
xml_file "images.xml";

xmlload = new XML();
xmlload.ignoreWhite true;
xmlload.onLoad = function(ok) {
    if (
ok) {
        
count this.firstChild.childNodes.length;
        for (var 
0i<counti++) {
            
curNode this.firstChild.childNodes[i];
            
images[i] = {path:curNode.childNodes[0].firstChild.nodeValue,link:curNode.childNodes[1].firstChild.nodeValue,caption:curNode.childNodes[2].firstChild.nodeValue};
        }
        
boot();
    } else {
        
trace("Could not load "+xml_file+".");
    }
};
xmlload.load(xml_file);

// ------------------------------------------------------------

spacing 5;
boot = function () {
    for (var 
0i<images.lengthi++) {
        
mc container.attachMovie("thumbMC""thumb"+ii);
        
mc._x i*(60+spacing);
        
mc.path images[i].path;
        
mc.link images[i].link;
        
mc.over.captionMC.caption.text images[i].caption;
    }
    
setRollOver();
};
setRollOver = function () {
    
this.onEnterFrame = function() {
        if (
this.mask.hitTest(_root._xmouse_root._ymouse)) {
            
slideMenu();
            
///////// momentan einfach auf play ////////////

            
rad.play();
            
/////////////////////////////////////////////////////////////            

        
}
    };
};

slideMenu = function () {
    
diff _root._xmouse-this._x;
    
scale diff*100/this.mask._width;
    
target = -scale*(this.container._width-this.mask._width)/100;
    
this.container.easeX(target);
}; 
das wäre wirklich wahnsinnig nett, wenn mir da jemand mal kurz auf die sprünge helfen könnte.
Angehängte Dateien
Dateityp: zip slider.zip (21,7 KB, 11x aufgerufen)

Geändert von Lübke (26-05-2007 um 00:36 Uhr)
Lübke ist offline   Mit Zitat antworten
Alt 26-05-2007, 17:14   #2 (permalink)
_-\_()_/-_
 
Benutzerbild von chaosflasher
 
Registriert seit: Apr 2007
Beiträge: 127
ich verstehe deine frage niocht so richtig...wenn du dich bitte etwas genauer ausdrücken würdest könnte ich dir vielleicht helfen
__________________
Nur der Dumme braucht die Ordnung. Das Genie Überblickt das Chaos!
chaosflasher ist offline   Mit Zitat antworten
Alt 27-05-2007, 05:14   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 33
hi,

ok, ich probiere es nochmal in kurzfassung - weiss nicht, ob du dir die fla kurz angeschaut hast, da habe ich versucht mein vorhaben etwas vereinfacht zu verdeutlichen.

also der obige code für das slidermenü funktioniert auf jeden fall einwandfrei.
nur möchte ich jetzt zusätzlich zu dem slidermenü einen mc, der synchron (zur x-bew der maus auf dem slider/hitarea) seine animation abspielt.

in der fla ist der mc einfach ein drehendes rad.

also so sollte es mal aussehen

-maus nach links -> rad dreht sich linksherum (bzw animation wird rückwärts abgespielt)

-maus nach rechts -> rad dreht sich nach rechts (tween wird vorwärts abgespielt)

- maus stop -> rad bleibt stehen

hoffe das war etwas verständlicher

würde es sich nur um den mc handeln (z.b. rollover) wüsste ich in etwa, wie das mit einer onclipevent oder onenterframe-prozedur aussehen sollte, damit er rückwärts/vorwärts läuft.

nur wie krieg ich das eben mit dem slider in einklang?
Lübke ist offline   Mit Zitat antworten
Alt 27-05-2007, 20:03   #4 (permalink)
_-\_()_/-_
 
Benutzerbild von chaosflasher
 
Registriert seit: Apr 2007
Beiträge: 127
also das mit dem rückwärts/vorwärts abspielen ist kein problem nur das wenn die maus nachlinks das rad nach links...das ist so eine sache da solltest du dir das mal angucken

http://flashforum.de/forum/showthrea...light=gestures

mit dem vorwärts rückwärts hab ich hier mal ein kleines script:

Code:
mc.onEnterFrame = function() {
        if (this._currentframe == 1) {
            delete this.onEnterFrame;
        } else {
            this.prevFrame();
        }
    };

....

mc.onEnterFrame = function() {
        if (this._currentframe == this._totalframes) {
            delete this.onEnterFrame;
        } else {
            this.nextFrame();
        }
    };
das müsstest du dann halt nur noch zusammen abstimmen

gruß
chaosflasher
__________________
Nur der Dumme braucht die Ordnung. Das Genie Überblickt das Chaos!
chaosflasher ist offline   Mit Zitat antworten
Alt 27-05-2007, 21:25   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 33
hehe, danke nochmal für die antwort.

das "nur noch zusammen abstimmen" ist aber leider mein aktuelles hauptproblem,
da fehlen mir gerade ein bissl die nötigen skills. bei deinem link sind die anhänge alle kaputt, bzw. der, der noch funktioniert bringt mir leider noch keine wirkliche erleuchtung.

vielleicht mal eine grundsätzliche verständnisfrage zur herangehensweise...

also hier kommt die funktion rein?!

PHP-Code:
setRollOver = function () {
    
this.onEnterFrame = function() {
        if (
this.mask.hitTest(_root._xmouse_root._ymouse)) {
            
slideMenu();
            
/////////////////////

            
hier die funktion
            
/////////////////////          

        
}
    };
}; 
aber was ist von diesem skript (aus obigen slider) für mich jetzt noch für die x-position der maus relevant.

ist das ausschließlich fürs easing der thumbs zuständig oder hilft mir das irgendwas?

PHP-Code:
MovieClip.prototype.easeX = function(x) {
    
this.onEnterFrame = function() {
        
this._x x-(x-this._x)/1.2;
        if (
Math.abs(x-this._x)<=1) {
            
delete this.onEnterFrame;
            
this._x x;
        }
    };
}; 
das hier sieht ja eigentlich zum teil ganz nützlich aus...

PHP-Code:
slideMenu = function () {
    
diff _root._xmouse-this._x;
    
scale diff*100/this.mask._width;
    
target = -scale*(this.container._width-this.mask._width)/100;
    
this.container.easeX(target);
}; 
ich glaube ja fast da steht schon alles da, was ich eigentlich brauche, aber ich verstehs trotzdem noch nicht ganz.

Geändert von Lübke (27-05-2007 um 21:29 Uhr)
Lübke ist offline   Mit Zitat antworten
Alt 28-05-2007, 15:51   #6 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 33
danke, habe es jetzt so gelöst.

PHP-Code:
      onClipEvent (enterFrame) {
          if (
this.hitTest(_root._xmouse_root._ymousetrue)) {
              
position Math.round((this._xmouse 300) / 10);
              
_root.slider_mc.rad_mc.gotoAndStop(position);
          }
      } 
Lübke ist offline   Mit Zitat antworten
Alt 28-05-2007, 19:09   #7 (permalink)
_-\_()_/-_
 
Benutzerbild von chaosflasher
 
Registriert seit: Apr 2007
Beiträge: 127
ey cool...

könntest du mir jetzt mal die swf schicken würde gern sehen wie das jetzt aussieht.

gruß
__________________
Nur der Dumme braucht die Ordnung. Das Genie Überblickt das Chaos!
chaosflasher ist offline   Mit Zitat antworten
Alt 28-05-2007, 21:12   #8 (permalink)
Neuer User
 
Registriert seit: Jan 2007
Beiträge: 33
klar, siehe anhang...

naja, optimal ist die lösung nicht gerade aber ausreichend.
erstens springt das rad erstmal bei kontakt der hitarea und der zusammenhang
zwischen breite der hitarea und framezahl der animation ist auch eher unpraktisch, aber zumindesst halbwegs das, was ich wollte.
Angehängte Dateien
Dateityp: rar slider.rar (794 Bytes, 19x aufgerufen)
Lübke 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 19:13 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele