Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-09-2005, 14:05   #1 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 15
MC per Knopfdruck rauf/runter scrollen

Hallo...

Ich habe ein MC(1) auf der Bühne. In diesem MC(1) ist ein Button. Nun soll bei OnPress auf den Button von oben ein anderer MC(2) runterfahren. Auf MC(2) ist ein Pfeil um den MC(2) wieder nach oben zu bringen.

Wie kann ich das per Action Script hinkriegen? Es sollen auch noch weitere MCs runterscollen können, das heisst meherer Buttons auf MC (1) die dann runter- und raufscrollen sollen. Dabei sollen sich die einzelnen MCs überlappen.

Hat jemand ne Idee? Brauch nicht unbedinbt das gesamt Script, nur eine ungefähre Vorgehensweise.
SlimboKarvell ist offline   Mit Zitat antworten
Alt 02-09-2005, 14:50   #2 (permalink)
Neuer User
 
Registriert seit: Apr 2005
Beiträge: 44
Ich würde es auf diese Weise machen:

Wir gehen davon aus, dass mc1 und mc2 sich jeweils direkt auf der Hauptbühne (also _root) befinden. Wenn nicht sind die Pfade entsprechend anzupassen.

Zuerst erzeuge ich einen MC, der quasi unsichtbar ist. Den nutzen wir später als Dummy-Objekt. (In der Bibliothek nicht vergessen unter Eigenschaften des MC "Export für ActionScript" zu aktivieren).

Dann geht es mit dem Scripten los.

Wir holen uns das Dummy-MC auf die Bühne (und achten darauf, dass es nicht in einer Ebene erzeugt wird, in der schon ein MC existiert. Hier z.B. Ebene 999):

PHP-Code:
_root.attachMovie("playerMC","dummy",999); 
Diese Dummy-Object benötigen wir, damit der MC2 nacher nicht sofort an der Endposition erscheint sonder langsam runterfährt. Wir lösen es nämlich über ein onEnterFrame-Aufruf auf das Dummy-Objekt.

Wir definieren uns eine Variable mc2ZielY, in der Ziel-Y-Wert, auf den der MC2 abgesenkt werden soll gespeichert wird.

PHP-Code:
mc2ZielY=250
Wir definieren uns eine Variable, die die Fallgeschwindigkeit des MC2 festlegt.

PHP-Code:
mc2Tempo=5
Weiter gehts: Wir bauen uns die Abfrage, ob auf den Button in MC2 gedrückt worden ist. Benutzt du einen Button-MC sieht das dann ungefähr so aus:

PHP-Code:
on (press){
  
_root.dummy.onEnterFrame = function () {
       if (
_root.mc2._y<mc2ZielY) {
          
_root.mc2._y=_root.mc2._y+mc2Tempo;
       } else {
          
_root.mc2._y=mc2ZielY;
          
delete this.onEnterFrame;
       }
   }

Erkärung: Wird der Button gedrück erzeugen wir auf den Dummy MC eine Funktion, die bei jedem abgespielten Frame den MC2 um die Strecke nach unten bewegt, die in der Variable mc2Tempo deklariert worden ist. DIes passiert genau so lange, bis MC2 als Höhe den Wert der Variable mc2ZielY erreicht hat. Da ja nach aufaddiertem Tempowert die Zielhöhe unterschritten werden kann wird nach erfüllen der Zielbedingung der Höhenwert nach mal auf den wirklich gewünschten Wert gesetzt. Die Funktion wird danach gelöscht, damit der MC2 sich beim Eintritt in den nächsten abgespielten Frame nicht mehr weiter bewegt.

Das Bewegen in die andere Richtung geht äquivalent nur mit umgekehrter Abfrage.

Willst du auf den Button verzichten und das Fallen von MC2 gleich beim Klick auf MC1 auslösen kannst du das auch so machen:

PHP-Code:
_root.mc1.onMouseDown = function () {
  
_root.dummy.onEnterFrame = function () {
       if (
_root.mc2._y<mc2ZielY) {
          
_root.mc2._y=_root.mc2._y+mc2Tempo;
       } else {
          
_root.mc2._y=mc2ZielY;
          
delete this.onEnterFrame;
       }
   }


Diese Lösung ist natürlich ohne gewähr ;-).

Geändert von Questor (02-09-2005 um 14:52 Uhr)
Questor ist offline   Mit Zitat antworten
Alt 02-09-2005, 14:53   #3 (permalink)
Neuer User
 
Registriert seit: Aug 2005
Beiträge: 15
Danke für die ausführliche Antwort! Werde das gleich mal ausprobieren!

Naja...

Also das mit dem Dummy versteh ich nicht ganz... ich hab die Variablen in einen Frame im MC gestellt, das on (press) auf den Buttonun die Zielpfade angepasst. Gibt keine Fehler, passiert aber auch nichts!

Geändert von SlimboKarvell (02-09-2005 um 15:11 Uhr)
SlimboKarvell ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele