tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
12
ZUGRIFFE
490
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Registriert seit
    Jul 2006
    Beiträge
    6
    hallo, ich bin nicht nur ganz neu hier auf dieser seite, sondern auch ein totaler flash neuling. wir muessen fuer die schule eine internetseite programmieren und nun habe ich folgendes problem:
    ich habe eine hauptflaeche, die auf allen unterseiten vorhanden ist, und sich je nach bestimmter seite auf- oder zuziehen soll. mein professor hat mir nur gesagt, dass ich das ganze mit setIntervall loesen muss und nun habe ich ein kleines programmierproblem, weil ich eben erst einsteiger bin und keine ahnung habe, was er damit meint. wenn ich also diese flaeche auf meiner szene1 habe und es innerhalb der menuepunkte programmieren soll, so dass es je nach klick und unterschiedlicher unterseite mehr oder eben weniger weit nach rechts geht. falls mir jemand bei diesem kleinen problemschen helfen kann waere ich sehr dankbar, ich werde naemlich bald verrueckt...
     

  2. #2
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Hi, willkommen im Forum.

    Da Du in diesem Wust von Buchstaben irgendwas von Flash sagst pack ich den Thread mal in das entsprechende Forum.

    Es waere, fuer die Flasher hier, wirklich nett wenn Du Deinen Beitrag etwas lesbarer gestalten koenntest, vor allem denke ich da an Gross- und Kleinschreibung.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  3. #3
    Registriert seit
    Jul 2006
    Beiträge
    6
    Wird gemacht! Ich werd mich anstrengen.

    Danke auf jeden Fall, ich kenn' mich ja wie gesagt hier noch nicht so gut aus. Also danke für den guten Tip...
     

  4. #4
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Nichts zu danken. Ich wuensch Dir hier auf jeden Fall viel Erfolg.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  5. #5
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi und willkommen auch von mir,

    ich habe nicht ganz verstanden, wie (bzw. wo) bei dieser Aufgabenstellung "setInterval" benötigt wird, also gehe ich mal davon aus, dass die Bewegung ansich mit einem Intervall realisiert werden soll (und nicht etwa, eine Verzögerung vor der Animation oder so). Ich würde so etwas meist mit onEnterFrame lösen, aber per setInterval gehts auch.

    Im Anhang findest Du ein kleines Beispiel, mit dem Du einen Balken mit einer bestimmten Geschwindigkeit an eine bestimmte Position gleiten lassen kannst (beim Klick auf den Balken wird testweise eine zufällige Zielposition und Geschwindigkeit gewählt).

    Der Parameter "dx" der Funktion "slideTo" bestimmt die Zielkoordinate, der Parameter "speed" das Intervall zwischen zwei Bewegungsschritten: Bei einem kleinen Wert (z.B. 5) bekommst Du also eine schnellere Animation, bei höheren Werten (z.B. 50) eine etwas langsamere.

    Gruß
    .
     

  6. #6
    Registriert seit
    Jul 2006
    Beiträge
    6
    Danke, danke, danke.

    Ich werd das gleich später mal ausprobieren

    Ich meld mich dann wahrscheinlich später nochmal, ich hoff ich schaffs, falls nicht, schreib ich einfach nochmal...

    Retter in der Not
     

  7. #7
    Registriert seit
    Jun 2004
    Ort
    Zürich
    Beiträge
    1.359
    Blog-Einträge
    8
    Hallo,

    setInterval ist eine Methode, mit der du in Flash selbst erstellte oder vordefinierte Funktionen wiederholt ausführen lassen kannst. In deinem Fall würde das wohl bedeuten, dass du eine Funktion, die die Höhe bzw. Breite deiner Fläche um einen gewissen Wert ändert, solange wiederholen lässt, bis sie die gewünschte Grösse hat.
    Solche Funktionen sind in der Regel nicht allzu komplex, erfordern aber doch ein gewisses Basiswissen. Wenn du dich in Zukunft näher mit ActionScript befassen willst, empfehl ich dir mal, die doch sehr ausführliche Flash-Hilfe zu konsultieren.
    Wenn du jedoch bloss dieses eine Projekt zurechtklopfen willst, empfehl ich dir z.B. das hier.

    Hier findest du noch den Eintrag zu setInterval in der Flash-Referenz.

    gruss

    EDIT: Argh
    Geändert von luke_the_duke (03.07.06 um 11:25 Uhr)
     

  8. #8
    Registriert seit
    Jul 2006
    Beiträge
    6
    Also jetzt gleich nochmal...

    Leider wars das ganz falsche...

    Nochmal zur kurzen Erklärung:

    Ich hab also eine selbstausgeschnittene Fläche, die von der Mitte der Startseite bis ganz nach rechts an den Rand reicht. Das ist meine Hauptfläche auf der alles Wichtige draufstehen soll (in den Unterseiten).
    Jetzt soll also diese Fläche beim Anklicken einer der Unterseiten (z.B. der Impressumsseite)
    nach rechts verschoben werden, aber nicht ganz verschwinden, weil da ja immer noch was draufsteht. Und dann muss diese Fläche an einer bestimmten Stelle (also noch weiter rechts) stehenbleiben.
    Sie bewegt sich also dann gar nicht mehr.
    Auf den anderen Unterseiten (z.B. Kontakt) muss die Fläche allerdings wieder an einer anderen Stelle stehenbleiben...

    Falls also irgendjemand eine Lösung hätte, wärs super
     

  9. #9
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    das ist im Prinzip schon das, was mein Beispiel macht (und Du mit lukes Prototypen erreichen kannst): Mit meiner Funktion "slideTo" kannst Du ja eine Fläche (sprich: einen MovieClip) an einen bestimmten Punkt verschieben und dort anhalten lassen - oder reden wir komplett aneinander vorbei?

    Eine "komplette" Lösung in dem Sinne, dass die Fläche auf verschiedene Menüeinträge und Inhalte reagiert, können wir Dir hier nicht bieten: Zum einen fehlen uns nötige Informationen (wie ist Dein Projekt ansonsten aufgebaut, wie bestimmt sich die Größe der Inhalte, wie funktioniert Dein Menü), zum anderen liegt der Sinn dieses Forums im Lerneffekt - wenn das eine Übung für die Schule sein soll, hättest Du nichts von einer fertigen Lösung.

    Gruß
    .
     

  10. #10
    Registriert seit
    Jul 2006
    Beiträge
    6
    Versteh ich natuerlich...

    Danke trotzdem fuer die vielen Umstaende.
     

  11. #11
    Registriert seit
    Jul 2006
    Beiträge
    6
    Hallo nochmal.

    Ich habe mich jetzt also brav mit dem Code auseinandergesetzt und vielleicht sogar eine Loesung gefunden. Jetzt habe ich nur noch ein kleines Problem...

    Ich hab meine Menuepunkte auf meiner _root programmiert und muesste jetzt aber fuer die neue Programmierung alle zusammen irgendwie benennen koennen (Instanznamen fuer mehrere Objekte auf der Hauptzeitleiste)

    Oder ist _root["hm"+i+"_mc"].intRot das gleiche wie _root.mp_mc.intRot wenn es um Referenzen geht.

    Bei dem Zweiten (_root.mp_mc.intRot) sind meine Menuepunkte als extra MovieClip in der this. Zeitleiste. (Meine einzelnen Menuepunkte auf meiner Unterzeitleiste haben jeweils den Instanznamen hm?_mc .) Dann hab ich alles auf meine Szene 1 geschoben und als Instanz mp_mc genannt. Weils ja dann nur ein MovieClip ist...

    Beim Ersten (weil mir mein Professor empfohlen hat alles auf der Szene 1 zu machen) hab ich jetzt eben das Problem, das ich nicht weiss, ob diese beiden Sachen gleich sind.

    Und die Programmierung ist noch nicht ganz fertig
    Und wenn ich wenigstens schon mal wuesste, was Sache ist, muesst ich nicht Stundenlang umsonst einen knallroten Kopf haben, weil einfach nichts mehr funktioniert...

    Ich hoffe man sieht schon etwas Lerneffekt durchkommen. Ich strenge mich an

    Hoffe jemand kann mein Problem loesen und ausserdem hoffe ich das ich mich diesmal nicht wieder so unverstaendlich ausgedrueckt hab
     

  12. #12
    Registriert seit
    Mar 2004
    Ort
    Basisrealität
    Beiträge
    12.118
    Blog-Einträge
    7
    Hi,

    wenn ich Dich richtig verstanden habe ...

    Angenommen, Du hast auf _root drei MCs mit den Instanznamen "clip1_mc", "clip2_mc" und "clip3_mc". Dann kannst Du sie mit einer Schleife in der Tat so (Arrayoperator) ansprechen:
    Code :
    1
    2
    3
    
    for (var i=1; i<=3; i++) {
        _root["clip" + i + "_mc"]._visible = false; // mal unsichtbar schalten ;)
    }

    Zweite Möglichkeit: Sind mehrere Clips, die Du gemeinsam ansprechen willst, nicht mit fortlaufenden Nummern benannt (z.B. "erster_mc", "zweiter_mc"), so kannst Du die Clips in einem Array ablegen und dann ebenfalls in einer Schleife durchlaufen:
    Code :
    1
    2
    3
    4
    
    var meine_clips = new Array(erster_mc, zweiter_mc);
    for (var i in meine_clips) {
        meine_clips[i]._visible = false;
    }

    Dritte Möglichkeit: Hast Du überhaupt keine Instanznamen vergeben, so kannst Du dennoch alle MCs in einer Zeitleiste "durchsuchen". Packe dazu am besten alle Clips, die Du ansprechen willst, in einen gemeinsamen "Container-MC" (hier im Beispiel mal mit dem Instanznamen "container") und probier es so:
    Code :
    1
    2
    3
    4
    5
    6
    
    for (var i in container) {
        if (typeof(container[i]) == "movieclip") { // Wichtig, da wir nur MCs, aber keine Funktionen
        // oder Variablen ansprechen wollen
            container[i]._visible = false;
        }
    }

    Gruß
    .
     

  13. #13
    Registriert seit
    Jun 2004
    Ort
    Zürich
    Beiträge
    1.359
    Blog-Einträge
    8
    Hallo,

    zu deinem Punkt 1:

    Bezüglich dem Object-Access liegst du richtig:
    Code actionscript:
    1
    2
    3
    4
    5
    
    var i = 6;
     
    if (this["hm"+i+"_mc"] == this.hm6_mc) {
        trace (this.hm6_mc);
    }

    Zu Punkt 2:

    Ich versteh dein Problem nicht ganz. Du hast einen MovieClip in Szene 1, der deine Untermenüs beinhaltet, deren Instanznamen hmX_mc sind....und nun willst du keinen knallroten Kopf . Erklär doch nochmals, worum es dir hier geht.


    gruss

    EDIT: Argh Vol. II
     

Ähnliche Themen

  1. Berechnung der Polygonfläche einer Nutzungsart und Max-, Minwert dieser Flaechen
    Von ala im Forum Algorithmen & Datenstrukturen mit Java
    Antworten: 3
    Letzter Beitrag: 23.06.10, 00:40
  2. Wachsende und bewegende Pfeile
    Von mailme im Forum Cinema 4D
    Antworten: 6
    Letzter Beitrag: 28.04.08, 14:04
  3. Bewegende Figur
    Von deforation im Forum Cinema 4D
    Antworten: 8
    Letzter Beitrag: 14.03.06, 15:30
  4. sich bewegende Galerie
    Von Blackylein im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 26.06.05, 11:42
  5. Keine Flaechen mehr?
    Von Collateral im Forum Cinema 4D
    Antworten: 2
    Letzter Beitrag: 07.12.03, 05:45