Flashhilfe.de - Flash Community

Anfängerfrage: Start-Schaltfläche funktioniert nicht [Flash 10]

Forum > ActionScript 2.0 > Anfängerfrage: Start-Schaltfläche funktioniert nicht

 


AntwortenRegistrieren Seite1  

 07.03.2009, 11:28 
Benutzerbild von HZingel
Beiträge: 3
Wohnort: Erfurt
Registriert: Mar 2009

Anfängerfrage: Start-Schaltfläche funktioniert nicht
Liebe Leute,

das ist mein erstes Flash-Werk, und hoffentlich ist das hier keine dumme Frage:

Ich will einen Flash-Film mit einer Start-Schaltfläche verstehen. Der Nutzer soll auf die Schaltfläche klicken, um den Film zu starten. Schaltfläche, Film usw. sidn alles fertig. Die Schaltfläche ist als Schatflächen-Instanz eingefügt. Die Schaltfläche funktioniert auch (Mausover usw. werden angezeigt). Klicke ich auf der Bühne die Schaltfläche rechts, so habe ich in Aktionen stehen:

ActionScript:
1
2
3
4
on(release)
{
  play();
}


Das funktioniert leider nicht. Wird der Film veröffentlicht, so sieht man nur die Schaltfläche, aber klicken führt zu nix.

Was mache ich falsch?
 07.03.2009, 12:10Re1
Benutzerbild von HZingel
Beiträge: 3
Wohnort: Erfurt
Registriert: Mar 2009

Themenautor/in

Noch vielleicht die folgenden möglicherweise relevanten Infos: In den Einstellungen für Veröffentlichungen --> HTML steht [x] Angehalten. Wenn ich diese Option ausklicke, startet der Film ohne daß die Taste funktioniert. Ist [x] Angehalten aktiviert, startet der film nicht, aber die Taste geht auch nicht...

Ich bin ratlos...
 07.03.2009, 17:30Re2
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

Nabend,

es gibt keine dummen Fragen!! ;)

Prinzipiell ist dein Script schon richtig, es fehlt einfach nur die richtige Zuweisung. Du hast dein Script sicher direkt auf deine Schaltfläche gelegt. Wenn du nun auf den Button klickst, wird die Funktion play() ausgeführt. Nur eben nicht an der richtigen Stelle. Wenn du eine Funktion ausführen willst, die du nicht explizit zugewiesen hast, wird sie immer mit dem Objekt ausgeführt, in dem sie sich befindet. Das klingt jetzt sicher ein bissl verwirrend, also nochmal an deinem Beispiel: Deine play()-Funktion versucht die Schaltfläche "abzuspielen", weil das Script ja in der Schaltfläche steht. Du willst aber deinen Film starten, also musst du die Funktion auch dem Film zuweisen. Wichtig ist dabei erstmal, dass dein Film auch einen Instanznamen hat. Nennen wir ihn hier einfach mal "film". Vorausgesetzt, dein Film-MovieClip und deine Schaltfläche liegen auf der Bühne, muss dein Script nun wie folgt lauten:

ActionScript:
1
2
3
on(press) {
   _root.film.play();
}


Die play()-Funktion ist nun also dem MovieClip mit dem Instanznamen film, welches direkt auf der Bühne _root liegt, zugewiesen.

Aber von mir noch einen Tipp:
Vermeide es, Scripte direkt auf Schaltflächen/MovieClips zu legen. Erstelle dir lieber in der Hauptzeitleiste eine neue Ebene z.B. mit dem Namen Aktionen und schreib NUR dort deine Scripte rein. Wenn du mal irgendwann 20 Schaltflächen und noch ein paar MovieClips hast, jeweils mit einem Script versehen, und du willst mal was ändern, suchst du dir nen Wolf. Wenn du aber alle Scripte an einer Stelle hast, sind Änderungen viel einfacher und alles ist viel übersichtlicher.

In deinem Fall müsstest du dann wieder der Schaltfläche und dem Film Instanznamen (z.B. "schaltflaeche" und "film") geben und das Script würde dann wie folgt aussehen:

ActionScript:
1
2
3
schaltflaeche.onPress = function() {
  film.start();
}


Ich hoffe, damit kommst du weiter.

Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
Geändert von Sleepingbeast am 07.03.09 um 17:31 Uhr

 
nicht sichtbar bei eingeloggten Mitgliedern
 08.03.2009, 10:29Re3
Benutzerbild von HZingel
Beiträge: 3
Wohnort: Erfurt
Registriert: Mar 2009

Themenautor/in

Moin Patrick,

vielen Dank für den Tip. Ich sollte möglicherweise nochmal ein bißchen damit rumprobieren, denn normalerweise mache ich Datenbanken und schreibe Bücher; da war bisher nix mit AS. Ich habe es jedenfalls gestern auch mit dem ursprünglichen Code hingekriegt. Es scheint einen Weg zu geben, der darin besteht, eine "Steuerung" in die Zeitleiste einzubauen, und die mit

ActionScript:
1stop();


zu beginnen. Das habe ich an der richtigen (?) Stelle plaziert, und es erscheint am Anfang nur die Taste. Wird die geklickt, dann geht es los. Das Ergebnis ist jetzt in http://www.bwl-bote.de/20090314.htm zu besichtigen. Kannst ja mal vorbeischauen... es geht um Rechnungswesen. Nicht alle finden das interessant ;-)
 09.03.2009, 07:14Re4
Benutzerbild von Sleepingbeast
Beiträge: 579
Wohnort: Halle
Registriert: Apr 2005

Guten Morgen,

och naja, es gibt schlimmeres als Rechnungswesen :) Ich durfte m ich im Rahmen meines Studiums auch damit "rumschlagen" und das ein oder andere ist schon recht interessant.
Du hast das richtig erkannt, es ist sogar sehr sinnvoll, die eigentliche Steuerung ausschließlich über die Hauptzeitleiste vorzunehmen. Wie bereits erwähnt, wird so alles viel übersichtlicher und viel einfacher, wenn mal was geändert werden soll. Prinizipiell benötigst du bei entsprechendem Aufbau nicht einmal das von dir erwähnte stop(). Dafür musst du nur alle verwendeten "Unter-MovieClips" in separate MovieClips in der Bibliothek abzulegen und dann nur bei Bedarf in die Bühne laden. Aber das kommt schon mit der Zeit, wenn du dich eine Weile mit ActionScript beschäftigst. Wenn du ohnehin mit Datenbanken und den damit verbundenen Programmiersprachen (ich verwende hauptsächlich MySQL/SQlite in Verbindung mit PHP) arbeitest, wird dir der Einstieg nicht allzu schwer fallen, da doch etliche Parallelen zwischen den verschiedenen Programmiersprachen bestehen. So ist das Wissen um Variablen, Funktionen und eventuell OOP elementar und wird dir auch bei ActionScript nutzen.
Ich kann dir da etwa die Seiten von Lee Brimelow (englischsprachige ActionScript-Videotutorial) empfehlen.
Ich selbst bin Mitinhaber einer kleinen Webentwicklungsfirma und werde in Zukunft auch das ein oder andere Tutorial veröffentlichen.

Zu deiner Seite:
Funktioniert tadellos! Was mir dagegen etwas fehlt, ist eine Art Stop-Button oder sogar eine Art kleine Navigation mit der man die verschiedenen Teilbereiche deiner Ausführungen anspringen kann. Letzteres dient wohl eher der Nutzerfreundlichkeit. Aber oftmals ist es so, dass man einen bestimmten Abschnitt einfach nochmal hören will, weil man etwas nicht verstanden hat. Bis jetzt muss man dafür die Seite erneut laden und deine Ausführungen von vorn anhören.
Aber das kann ja ein Ziel für die Zukunft sein ;)

Patrick
_________________________________________________________
Um Rekursion wirklich zu verstehen, muss man zuerst Rekursion verstehen.
null != 'null' != 0 != '0'
 
Themen
Ähnliche Beiträge zum Thema
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de