Mehrere goto- Anweisungen ?

cybersh0t

Grünschnabel
Halli Hallo,


ich lese schon länger hier im forum mit und muß sagen klasse sache :)

Nur habe ich ein Problem das ich auch mit längerem Suchen nicht gelöst bekomme :/

Ich habe einen Button und auf diesen Button ist in einem Movieclip ein goto gelegt, sprich er springt nach dem Click auf diesen (bennanten) Frame.

Klappt auch alles Wunderbar.. Nur wenn ich jetzt mit dem selben Button einen Bereich weiter in dem Movieclip springen möchte komme ich nicht weiter :/

Mein Code sieht bisher so aus :

Code:
on(release){
	
	_root.content_mc.gotoAndPlay("first")
	
	}

Was muß nun dazu um im selben Movieclip ein paar Frames weiter auf ein neues benanntes Frame zu springen ?

Danke schonmal, bin echt guter Hoffnung das Ihr mir helfen könnt :)

gruß

cybersh0t
 
Hi und willkommen im Forum,

Mit den Eigenschaften _currentframe und _totalframes des MovieClip-Objekts kannst Du abfragen, auf welchem Frame sich ein Clip zur Zeit befindet und wie lang die betreffende Zeitleiste ist. Das könnte in Deinem Fall z.B. so aussehen:
Code:
on(release) {
    var fr = _root.content_mc._currentframe;
    if (fr < 10) { // wenn in Frame 1-10 ...
        var zielframe = 11; // ... gehe zu Frame 11
    } else if (fr < 20) { // wenn zwischen 11 und 20 ...
        var zielframe = 21; // ... gehe zu Frame 21
    } else { // ansonsten ...
        var zielframe = 31; // gehe zu Frame 31
    }
    _root.content_mc.gotoAndPlay(zielframe);
}

Gruß
.
 
also ich habe das um ehrlich zusein nicht ganz verstanden ..

da meine frames ja bennant sind und nicht mit framenummern angesprochen werden komme ich da nicht so ganz mit..

wie müßte das aussehen wenn ich 3 - 5 frames (benannt) habe und zu denen nacheinander springen möchte ?


und danke fürs herzlich willkommen :)


gruß

cybersh0t
 
Richtig, aber bitte die Framebezeichner in Anführungsstriche setzen:
Code:
var zielframe = "first";

Der "Nachteil" bei Framebezeichnern ist, dass Du bei Abständen zwischen den benannten Frames nicht herausfinden kannst, wo sich der Abspielkopf dazwischen befindet:
Code:
if (_currentframe < "framebezeichner1") {
So etwas funktioniert nicht.

Du erstellst Dir am besten ein Array, in dem die Positionen der benannten Frames abgelegt sind:
Code:
var bezeichner = new Array({nr:1, id:"bezeichner1"}, {nr=3, id:"bezeichner2", {nr:5, id:"bezeichner3"});

derButton.onPress = function() {
    var currentPos = 0;
    var fr = _root.content_mc._currentframe;
    for (var i=0; i<bezeichner.length; i++) {
        if (fr <= bezeichner[i].nr) {
            currentPos = i;
            break;
        }
    }
    var nextPos = currentPos + 1;
    if (nextPos > bezeichner.length) nextPos = 0;
    _root.content_mc.gotoAndPlay(bezeichner[nextPos].id);
}

Gruß
.
 
hmm, okay nun bin ich total verwirrt.. wie währe es wenn ich anstelle des movieclips worin alle anzusprechenden frames liegen mir lieber einzelne movieclips mache die nacheinander angesprochen werden sollen ?

währe das von der art und weise einfacher ? oder genauso "schlimm" ? :)

also sprich :

ich habe einen button und 3 movieclips und wenn ich den button das erste mal klicke wird movieclip 1 angesprochen drücke ich ihn nochmal wird anstelle von movieclip 1 movieclip 2 angesprochen und denn das selbe bei movieclip 3 ?.. währe das einfacher ?

danke für eure antworten ihr helft mir sehr weiter :)
 
Hi,

ich sehe nicht, was an einer einfachen if-then-Verzweigung besonders kompliziert sein sollte. Nun ja, Du kannst es natürlich auch mit mehreren MC machen:
Code:
// Auf der Hauptzeitleiste:

var mcs = new Array(mc1, mc2, mc3);

var current = 0;
Code:
// Auf Deinem Button:

on(release) {
    _root.mcs[_coot._current].play():
    _root.current ++;
    if (_root.current >= _root.mcs.length) _root.current = 0;
}

Gruß
.
 
Zurück