Movieclips über ausgewählte Checkboxen abspielen (Flash MX 2004)

psycho-sid

Grünschnabel
Hallo Flash-Profis,

hab mal wieder ne kurze Anfrage, da ich leider im Netz nichts passendes gefunden hab. Und zwar will ich einen Flashfilm erstellen, in dem zuerst ein Bildschirm mit Checkboxen erscheint (Schlüsselbild1).

Jede Checkbox soll sich auf einen MC beziehen. Dann gibt es noch einen "Abspielen" Button.

Zum Beispiel sind jetzt 8 Checkboxen angelegt. Wählt man nun z.B. 3 davon an und drückt den "Abspielen" Button so springt der Film zu Schlüsselbild 2 und spielt die angewählten MCs in zufälliger Reihenfolge ab.

Nachdem der letzte MC abgespielt wurde springt der Film zum Schlüsselbild 3.

Dürfte eigentlich doch gar nicht so schwer sein, nur leider bin ich in AS nicht so fit.:confused:

Bin für alle Anregungen etc dankbar.

Gruß Sid
 
Hey,

wie genau hattest du dir das denn bisher vorgestellt?

Ich würde die Nummern der aktivierten Checkboxen in ein Array schreiben. Dann kann man per Math.random()*(meinArray.length-1) ein zufälliges Element dieses Arrays auswählen. Du müsstest dieses Element dann löschen und, fals es nicht das letzte im Array war, durch ein höheres ersetzen.

Den Movieclip, der das ausgewählte Element repräsentiert, spielst du dann ab.

Reicht das als Ansatz?

Liebe Grüße,
jens
 
Hallo und danke schonmal für die schnelle Antwort,
der Ansatz ist hört sich richtig an, allerdings wird es jetzt vermutlich am AS scheitern.
Ich würde ja die Komponente Checkbox und Button benutzen. Wo finde ich die Nummern der Checkboxen, die ich dann angeben muss? Oder meinst du damit die label der einzelnen Checkboxen?

Wo muss ich das array dann hinschreiben? In den Abspielen Button?

Sorry für die blöden Fragen, hab bisher leider nur einfache Flashs erstellt ohne viel AS. :rolleyes:
 
Hey,

naja du müsstest eine extra Ebene in der Zeitleiste für den Code schreiben. Dort kannst du dann das Array erstellen:

Code:
abspielen = new Array();

Dann kannst du halt wie folgt gucken. Der Code sollte auch in dem Schlüsselbild stehen:

Code:
meinButton.onRelease = function() {
if(meineCheckBox1.selected == true) {
 abspielen[abspielen.length] = 1;
} else if(meineCheckBox2.selected == true) {
 abspielen[abspielen.length] = 2;
} else ... // usw 
} // onRelease

Reicht das?

Liebe Grüße
.
 
Hoi,
puhh, ich blick gerade nicht mehr durch. Hab mal versucht da grob umzusetzen, hab aber trotzdem noch Porbleme mit dem AS.

Ich hab also den Film mit 2 Ebenen. Ebene 1 AS. Ebene 2 für die Anzeige.
Schlüsselbild 1 Anzeige: 6 Checkboxen (meineCheckBox1 - meineCheckBox6) + Button (meinButton).
Schlüsselbild 1 AS:
Code:
abspielen = new Array();

meinButton.onRelease = function() {
if(meineCheckBox1.selected == true) {
 abspielen[abspielen.length] = 1;
} else if(meineCheckBox2.selected == true) {
 abspielen[abspielen.length] = 2;
} else if(meineCheckBox3.selected == true) {
 abspielen[abspielen.length] = 3;
 } else if(meineCheckBox4.selected == true) {
 abspielen[abspielen.length] = 4;
 } else if(meineCheckBox5.selected == true) {
 abspielen[abspielen.length] = 5;
 } else if(meineCheckBox6.selected == true) {
 abspielen[abspielen.length] = 6;
} // onRelease

Dann hab ich noch 6 MCs testweise erstellt (Film 1 - Film 6).

Wie und wo binde ich nun das Math.random ein und irgendwo muss ja noch eine Anweisung rein dass die Filme im 2ten Bild abgespielt werden sollen....

Ohje ich werds wohl nie verstehen:confused:
 
Zuletzt bearbeitet:
Hallo, hab das gleiche Thema noch in nem anderen Forum geposted. Da hab ich auch schon bissel Code bekommen:



Soviele Checkboxen auf die Buehne wie im Array stehen. Im Bsp sinds 4.
Benenne sie im Array.. my_ch0 usw
Deweiteren einen Button mit Instanznamen "b"

Code:
ry_ch = [
          ["my_ch0", false],
          ["my_ch1", true],
          ["my_ch2", false],
          ["my_ch3", false]
          
];


var checkboxListener:Object = new Object();

checkboxListener.click = function(evt_obj:Object)
{
    if (evt_obj.target.selected)
    {
        ary_ch[evt_obj.target.ID][1] = true;
    }
    
    else
    {
        ary_ch[evt_obj.target.ID][1] = false;
    }
    
};




for(var i = 0; i<ary_ch.length; i++)
{
    this[ary_ch[i][0]].ID = i;
    this[ary_ch[i][0]].label = " >> "+[ary_ch[i][0]]
    this[ary_ch[i][0]].selected = ary_ch[i][1];
    this[ary_ch[i][0]].addEventListener("click", checkboxListener);
}


b.onPress = function()
{
    trace(ary_ch)
    trace(newline)
    
    for(var i = 0; i<ary_ch.length; i++)
    {
        if(ary_ch[i][1] == true) trace( ary_ch[i][1]+ " aktiv \n" )
    }
}

Wenn ich das anwende hauts leider auch noch nicht hin....
Muss ich eigentlich die Checkboxen oder den Button noch in Symbole umwandeln?
 
Muss ich eigentlich die Checkboxen oder den Button noch in Symbole umwandeln?

Nö. Ich hoffe du weißt dass weder meiner noch der von irgendwo anders kommende Code nur ein Auszug ist, der die helfen soll, es selbt hinzubekommen.

Hast du es denn schon selbst probiert? Wie weit bist du da gekommen? Wie sah dein Ansatz aus?
 
Hoi,
is mir schon klar dass hier keine Komplettlösungen gegeben werden sollen sondern nur Lösungsansätze. Bin jetzt erstma arbeiten und dann werd ich mich nochma dran setzen und Bericht erstatten wie weit oder auch nicht ich gekommen bin.

Trotzdem danke für deine Bemühungen.
 
Hallo nochmal.....

ich frag jetzt nochmal ob das grundsätzlich überhaupt einfach zu realisieren ist.
Ich hab also z.B. im ersten Bild meine Auswahlseite mit sagen wir mal 4 Checkboxen.

Dann gibt es zu jeder Checkbox ein Schlüsselbild mit einem Movieclip.

Auf der Auswahlseite gibt es dann noch den Abspielen Button.

Damit es einfacher ist lassen wir das mit dem zufälligen Abspielen weg.

Wenn nun Checkbox Nr. 1 angewählt ist, soll beim Drücken des Abspielen-Buttons zum Schlüsselbild gesprungen. (also bei Checkbox1 --> Schlüsselbild2, bei Checkbox2 -_> Schlüsselbild3 etc.).

Allerdings sollte es natürlich auch eine Mehrfachauswahl geben.

Mit dem letzten Codebeispiel bekomme ich ja beim Film Testen auch schon eine Ausgabe.

Ich bekomm es allerdings nicht geregelt, dass die ausgewählten MCs auch korrekt abgespielt werden.

Vileicht kann ja nochmal wer bissel helfen.
 

Neue Beiträge

Zurück