| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 321
| mc in drei zuständen?
Hallo, ich hab grad probleme eine idee umzusetzen. Und zwar gehts darum, dass ich eine Navigation mit 5 MC´s als Schaltflächen habe. Da das eine art spiel fungieren soll, soll nicht jeder mc klickbar sein sondern wenn man die swf startet durch zufall ein mc ausgewählt wird welcher freigegeben ist. Dann sollen die anderen mc´s natürlich gesperrt sein, so dass bei, draufklicken nix passiert. Wenn ein button angewählt wurde, soll er aber nicht mehr anwählbar sein sondern für den rest der zeit gesperrt, ers sieht dann auch anders aus. In meinem Beispiel wäre das zum Beispiel eine Vase. Wenn diese ziufällig frei zu klicken ist, kommt man zu einem bestimmten Spiel. Wenn man wieder zurück kommt ist die VAse also gesperrt und kaputt. Also hat man im Prinzip 3 Zustände: 1.Gesperrt 2.aktiv 3.schon gedrückt/ gesperrt Per SCript müsste ich dann ja sagen: Wähle durch ZUfall (Mathrandom?) einen MC aus und aktiviere Ihn. Warscheinlich hätte man dann auf den schalltflächen eine if schleife, in der abgefragt wird ob ein anderer mc aktiv ist. Wenn ja, dann Sperr mich wenn nein, dann geb mich frei.Und mit dem dritten Zustand könnte ich ja einfach ein weiteres Schlüsselbild mit denm schon geklickten Zustand machen, welches dann sowieso nicht mehr klickbar ist, und sagen wenn man drauf kilckt (vorrausgesetzt er ist aktiv) lade den externen Clip in dn container und springe zu SB 2, so dass wenn man wieder kommt man den dritten Zustand hat. Mein Frage ist jetzt ist das so richtig gedacht? Das Problem ist, dass ich mit Actionscript nur sehr schlecht umgehen kann. Hab mich schonmal durchgesucht, aber das einzige Script was ich fand war das: Code: 1. var aktiver_mc;
2. for(var i=0;i<anzahl;i++){
3. this["mein"+i+"_mc"].onRelease=function(){
4. // : deaktivieren des aktuell geklickten BTN
5. this.enabled=false;
6. // : reaktivieren des (falls) aktiven BTN
7. aktiver_mc.enabled=true;
8. // : neu speichern
9. aktiver_mc=this;
10. }
11. } Vielen Dank |
| | |
| | #2 (permalink) |
| Gast
Beiträge: n/a
|
Das Script zeigt doch aber schon mal die wichtigsten Ansätze: du kannst MCs über die enabled-Eigenschaft sperren oder freigeben. Einziges Problem ist bei MCs, die Events in einer for-Schleife bekommen, dass der Schleifenzähler - hier im Script ist das "i" - beim Durchlaufen der Schleife ständig überschrieben wird und nach Ablauf der Schleife höchstens noch der letzte Variableninhalt von "i" bekannt ist. Das bedeutet also, dass bei der Verwendung mehrerer Events die Ziel-MCs sich den Schleifenzähler "i" merken müssen, bspw. als ID. Allerdings wird das in deinem Script nicht unbedingt notwendig sein. Mal ein kleiner Ansatz: PHP-Code: |
|
| | #3 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 321
|
Danke Holger für deine Hilfe! also hab das mal ausprobiert und 5 mc´s erstellt. Dann hab icgh das Script auf die HZ gelegt und bekamm diese Fehlermeldung: Code: **Fehler** Szene=Szene 1, Ebene=Ebene 2, Bild=1:Zeile 6: ';' erwartet
for(var i=1);i <= anzahl;i++){
Anzahl der ActionScript-Fehler: 1 Gemeldete Fehler: 1 Gruß |
| | |
| | #4 (permalink) | |
| Gast
Beiträge: n/a
|
Eine Klammer falsch gesetzt... PHP-Code: Zitat:
BTW: Schaltflächen zu zeigen, die keine Events auslösen können (oder mal gesperrt sind - mal nicht), ist eine schlechte Usability. Du solltest dir da grundsätzlich etwas anderes ausdenken... Geändert von agedoubleju (19-01-2006 um 16:30 Uhr) | |
|
| | #6 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 321
|
Hallo Holger, danke für deine Hilfe. Die Zufallsvergabe scheint einwandfrei zu funktionieren. Leider steh ich schon wieder auf dem Schlauch. also, beim Click auf den freigegebenen MC, soll ein Externer SWF in den "container.swf" geladen werden und der Film soll in das SB 2 des gekickten MC´s springen wo er dann anders aussieht, eine andere position hat und man ihn nicht mehr klicken kann. Hab folgendes Sript draufgelegt: Code: on (release) {
container_mc.loadMovie("spiel1.swf")
gotoAndStop(2);
} Wär schon ganz gut wenn ich das so machen würde, weil ch die mc´s anschließend individuell behandeln kann. Weißt Du was ich falsch mach? |
| | |
| | #8 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 321
|
tatsächlich das wars! Hatte die MC´s falsch benannt! Jetzt ist es im Moment ja noch so, das nur einmal per zufall einer freigegeben wird. Eigentlich soll danach dann ein anderer freigegeben werden, solange bis man alle ienmal angeklickt hat. Ich möchte, ein Spiel in den container laden und nachdem es fertig gespielt ist wird es wieder entladen und man landet auf der Hauptnavigation. Es soll also nach dem klicken auf den MC die Prozedur von vorne starten, mit Ausnahme von den schon geklickten. EIgentlich müsste man das Script dann ja nochmal starten allerdings dann die Clips ausnehmen die schon geklickt wurden, ich hab aber null Ahnung wie ich das komplizierte so umsetzen soll? Ach ja ist es eigentlich möglich, dass man trotzdem bei allen noch nicht geklickten MC´s die Maushand sieht, auch wenn Sie gesperrt sind. So weiß der User, dass dahinter auch irgendwas steckt... Ich hoffe es ist in Ordnung wenn ich soviel frage.. |
| | |
| | #9 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 321
|
hatte grad ne Idee: Ich könnte ja nachdem ich das 1.Spiel in den container geladen hab und fertig bin zum nächsten SB auf der HZ springen wo ich dann nur noch 4 von den 5 MC habe und den Code dann erneut aufrufe mit der entsprechend kleineren Variable. Allerdings ist das ziemlich umständlich oder? Dann müsste ich für jeden Fall ein eigenes SB mit Code anlegen. Man müsste das Script irgednwie in einer Schleife durchlaufen lassen, bis kein MC mehr aktiv sein kann, weil alle schonmal geklickt wurden. Die gecklickten kann man ja mit der ID im Script berücksichtigen so, dass diese gemerkt werden... |
| | |
| | #12 (permalink) |
| Neuer User Registriert seit: Jul 2003
Beiträge: 321
|
hab die Fla. angehängt. Im Prinzip hab ich dank der Hilfe von "agedoubleju" fünf mc´s von denen per zufall einer freigegeben wird. bei klick auf diesen wird ein spiel in einen container geladen. wenn das beendet ist, soll wieder durch zufall der nächste mc freigeschaltet werden, natürlich nicht der schonmal aktivierte. Das soll dann solange passieren bis alle inmal aktiv waren. Code: //auf der Hauptzeitleiste
var anzahl = 5;
//MCs sollten einen fortlaufenden Instanznamen bekommen, bspw. meinMC1 bis meinMC5
for(var i=1);i <= anzahl;i++){
_level0["meinMC"+i].enabled = false;//alle MCs sperren
}
//eine Zufallszahl zwischen 1 und 5 ermitteln:
var zufall = Math.floor(Math.random() * 5)+1;
trace("zufall="+zufall);//diesen Werten zum Überprüfen im Testmodus (STRG-ENTER) ausgeben lassen
//und nur den MC freischalten, der über die Zufallszahl ermittelt wurde:
_level0["meinMC"+zufall].enabled = true;
//sicherheitshalber die Variable "zufall" im MC merken:
_level0["meinMC"+zufall].ID = zufall;
//und diesem MC dann einen Klickevent geben:
_level0["meinMC"+zufall].onRelease = function(){
//nach Loslassen der Maustaste diesen Event wieder sperren
this.enabled = false;
trace("this.ID="+this.ID);//mit this.ID kann dann der MC eindeutig spezifiziert werden
//hier geht es dann weiter bspw. mit dem Aufruf weiterer Funktionen
} |
| | |
| | #13 (permalink) |
| °.oO°O.o°.oO.o°O Registriert seit: Jun 2005 Ort: CH
Beiträge: 1.490
|
Pack die MC's in ein Array und schreib dir ne Funktion, die jeweils die Array-Länge abfragt und dir dann entsprechend ne Zahl ausgibt, die du dann aus dem Array mit splice() entfernst!
__________________ There is no way to happiness, happiness is the way! - Buddha |
| | |
| | #15 (permalink) |
| °.oO°O.o°.oO.o°O Registriert seit: Jun 2005 Ort: CH
Beiträge: 1.490
| PHP-Code:
__________________ There is no way to happiness, happiness is the way! - Buddha |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |