Fehler im Script-Code?

SonMiko

Erfahrenes Mitglied
Ich möchte, das immer wenn die Zahl kleiner als 10 ist,
das dann auf den Frame 2 gesprungen wird.
Andererseits wird der erste Frame auf dem sich die untere Aktion befindet, neugeladen!

Das Resultat ist das eine art Flash zustande kommt also ein
normaler wechsel. Es sollte ein aussetzer sein, immer mal zwischendurch der Frame nummer 2! Dann wird von dort aus zurückgesprungen auf Frame 1.
Dann sollte der Zufallsgenerator so durchlaufen werden, das irgendwann nach einer Pause wieder Frame 2 an die Reihe kommt.Es sind übrigens insgesamt 3 Frames.
Eine Frage: Berechnet der PC den Zufall schneller oder abhängig von der Bildwiederholrate die man in Flash einstellt?
Also durchläuft der Player die frames und rechnet quasi dann ein Programmbefehl aus wenn er den Frame betritt oder unabhängig davon?

zufall=random(100);
if(zufall<10)
{
gotoAndPlay(2);
}
else
{
gotoAndPlay(1);
}
 
Hi,

Code in Frames wird ausgeführt, sobald der entsprechende Frame aufgerufen wird - ist also abhängig von der eingestellten Framerate. Wenn Du Intervalle anlegen willst, die unabhängig von dieser Rate arbeiten, kannst Du mit setInterval in Kombination mit updateAfterEvent arbeiten. Ob die Aktualisierung des Bildschirms per Frameaufruf (gotoAndStop) auf diese Weise funktioniert, ist allerdings fraglich: Einen kurzen "Blitz" durch schnelles Einblenden eines MovieClip solltest Du aber realisieren können. Beispiel mit einem MC mit dem Instanznamen "theflash":
Code:
theflash._visible = false;

var iv1 = 0;
var iv2 = 0;

iv1 = setInterval(doFlash, Math.random() * 2000 + 100); // Zufallsintervall

function doFlash() {
	clearInterval(iv1);
	clearInterval(iv2);
	iv2 = setInterval(clearFlash, 20); // Anzeigedauer in ms
	theflash._visible = true;
	updateAfterEvent();
	iv1 = setInterval(doFlash, Math.random() * 2000 + 100); // Zufallsintervall
}

function clearFlash() {
	clearInterval(iv2);
	theflash._visible = false;
	updateAfterEvent();
}

Gruß
.
 
Hi!

Nene, ich brauch ne einfachere Lösung.
Klar würde das funktionieren, aber so hab ich nicht viel dazugelernt!
Mich interessiert mehr, was ich in meinem Code falsch gemacht habe!

Ich will das eigentlich immer alles auf Frame 1 bleibt!
Nur manchmal, ganz unvorhergesehen soll auf flash 2 gewechselt werden, von wo aus dann bis drei gespielt wird und von dort aus gehts dann wieder auf den ersten Frame!


Gruß,

Mike
 
... dafür nimmst Du am besten eine onEnterFrame-Methode:
Code:
stop();
this.onEnterFrame = function() {
    if (int(Math.random() * 100) == 0) {
        delete this.onEnterFrame;
        play();
    }
}
Dein Fehler wird gewesen sein, dass ein gotoAndPlay(1), wenn Du schon auf Frame 1 bist, keinen Neuaufruf des dort befindlichen Codes zur Folge hat. ;)

Mein erster Vorschlag bezog sich auf Deine Frage nach der Framerate (die Du per gotoAndPlay m.E. nicht austricksen kannst).

Gruß
.
 
Hi!

Okay...
Also ich binde diese Funktion im ersten Frame ein?
Oder was meinst du nun?
Oder nehme ich den MC, setze ihn auf die Hauptbühne und
muss diesem dann die Funktion zuteilen, also quasi dem Paket MC als solches?

Momentan ist der Code IM MC auf dem ersten Frame angegeben, bzw eingegeben.

ROOT-[MC(Frame1=Code)] Meine Version

Und du meinst es nun so

ROOT-(Code[MC()]) ?
 
Hi,

der Code käme in den ersten Frame der Hauptzeitleiste - dahin, wo auch Dein Code bisher stand.

Wenn Du die Datei einmal postest, kann ich es Dir auch einbauen.

Gruß
.
 
Oh ja,
das wäre natürlich super!
Bin nur momentan in der Schule!
Ich poste es wenn ich zuhause bin!

Habe hier auf meiner externen Festplatte nur eine veraltete Version!


Besten Dank,


Mike
 
Wenn ich jetzt noch immer beim abspielen also bei Frame 3 einen Sound von insgesamt 4 (1.mp3, 2.mp3...) die sich in der Libary befinden, wiedergeben möchte, wie mache ich das dann?
Also immer einen Sound von den 4, aber per Zufall.

Gruß,


Mike
 
.. das findest Du am besten selbst heraus, indem Du die Forensuche nach Begriffen wie "Sound", "Zufall" oder "Array" befragst. ;)
.
 
Hab ich!
Aber dazu find ich nichts, ich dachte du könntest mir in diesem Punkt ausnahmsweise nocheinmal helfen :) :) :) ? Oder ein Hinweis! Ich glaub ich bin auf der falschen spur!
Meine Idee wars einen Movieclip zu machen indem dann die Sounds geladen werden.
Allerdings hab ich echt keine Ahnung, wie ich das anfangen soll!
Sind es Objekte? Wie binde ich sie ein? Ich kann
Sie ja schlecht ansprechen, wenn Sie nur in der Libary drin sind!
Ich muss sie also irgendwo "zuordnen".
Eine Möglichkeit wäre es einen MC zu machen, dann einen Frame zu machen in dem der erste Sound läuft, dann dahinter der zweite und immer am ende ein gotoAndStop 1.
Dann könnte ich den Clip (MC_Sounds) ansteuern... Und per Zufall würde ich sagen das beispielsweise Frame 2 (Sound 1) oder Frame 35 (einer davor ist ende von Sound eins, also Beispielsweise) wiedergegeben wird.
Oder ich Bau dein Script um!
Deins hat nur einen zustand, Play oder nicht Play.
Wenn ich jetzt 5 Zustände haben wollte, nämlich "nicht play, play frame1, play frame2, play frame3, play frame4", wie müsste ich dann vorgehen?
Dann könnte ich jedem Fram einen Sound zuordnen...

Aber welche dieser Möglichkeiten ist die effizienteste?

Gibt es nicht ein AS das ein MC aus den teilen der Libary kreiert?


Gruß,


Mike
 

Neue Beiträge

Zurück