Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-08-2004, 18:05   #1 (permalink)
Gott lebt?
 
Registriert seit: Jun 2004
Ort: tiefster Westen
Beiträge: 224
Question Anfänger-Hilfe: zufällige Ereignisse

Hi,

ich hatte vor einen Bildschirmschoner mit Flash zu machen:

Alle 6Minuten findet ein Tag/NAcht-Wechsel statt, und es sollen in einem minimalen Abstand von 30Sekunden zufalls-Ereignisse abgespielt werden (z.B. ein Flugzeug fliegt vorbei).

Ich wollte das ganze so machen: Alle 30Sekunden werden von einem Keyframe 2neue Variablen zufällig festgelegt: "wann" und "was". Der Bereich von "wann" liegt zwischen 1 und 30 und der von "was" im Bereich der verfügbaren unterschiedlichen Ereignisse.

[Das habe ich bis jetzt auch geschafft ]

Jetzt wollte ich für jedes Ereigniss [Alle liegen in Movieclips] ein Scrip schreiben, dass dann startet, wenn der Frame von "wann" dem aktuellen entspricht und außerdem wird jedem Ereigniss eine andere Zahl zu geordnet, die mit "was" verglichen wird. Dann wird das Ereigniss abgespielt. Jetzt zu meiner Frage: Wie realisiere ich den letzten Teil? Kann ich die Fallunterscheidung so gestallten:

PHP-Code:
If (wann == this._currentframe && was == 1); 
?

Und: Wo schreibe ich das hin? Und in welcher Form? Also n einen HAuptlayer mit Hauptkeyframe? Aber dann klappt das ja mit der current.frame überprüfung nicht - also doch nicht als Ereignissprozedur?

Achja, im Hintergrund läuft immer langsam der Tag/NAchtwechsel ab, der darf nicht gestört werden (also die Sonne und Mond, die sich bewegen und die Abdunkelung und Erhellung der Landschaft).

P.S.: Ich arbeite seit gestern mit ActionScript, wäre nett wenn ihr euch relativ.... anfängerfreundlich ausdrücken würdet Achja: Ich bin dankbar für jede Hilfe!!!

P.S.2: Da fällt mir noch ein: Wie findet man eigentlich am einfachsten bestimmte Koordinaten heraus? (ich mein jetzt auf der Bühne nich in AS) und Wo kann man sich die Hirarchie der Moviclips anschauen?

Geändert von TheAn00bis (21-08-2004 um 18:10 Uhr)
TheAn00bis ist offline   Mit Zitat antworten
Alt 22-08-2004, 15:38   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
hallo, sorry, was du schreibst hört sich ziemlich verworren an!?

versuch einer erklärung:
mach deine variablen global, dann sind sie immer verfügbar:
_level0.wann="wann auch immer";
_level0.was="was auch immer";


"..einfachsten bestimmte Koordinaten heraus?.."
indem man sich das linial anzeigen lässt? (Menü Ansicht/Lineale)
bzw.
Objekte anklicken und mal in das Werkzeugfenster "info" reinsehen?


"..Wo kann man sich die Hirarchie der Moviclips anschauen?.."
beschäftige dich einmal mit dem debugger (Menü Steuerung/Debuggen)
bzw.
Menü Steuerung/Film testen
und dann
Menü Debuggen/Objekte auflisten
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-08-2004, 16:08   #3 (permalink)
Gott lebt?
 
Registriert seit: Jun 2004
Ort: tiefster Westen
Beiträge: 224
Zitat:
Zitat von hgseib
hallo, sorry, was du schreibst hört sich ziemlich verworren an!?

versuch einer erklärung:
mach deine variablen global, dann sind sie immer verfügbar:
_level0.wann="wann auch immer";
_level0.was="was auch immer";
Ok, werde ich machen!

Zitat:
Zitat von hgseib
"..einfachsten bestimmte Koordinaten heraus?.."
indem man sich das linial anzeigen lässt? (Menü Ansicht/Lineale)
bzw.
Objekte anklicken und mal in das Werkzeugfenster "info" reinsehen?
Hätte ich selber drauf kommen können!

"..Wo kann man sich die Hirarchie der Moviclips anschauen?.."
beschäftige dich einmal mit dem debugger (Menü Steuerung/Debuggen)
bzw.
Menü Steuerung/Film testen
und dann
Menü Debuggen/Objekte auflisten[/QUOTE]

Ah - Danke!

Aber wie mache ich das mit dem zufälligen starten der Ereignisse?
Ich weiß nicht wie und wohin ich den Code schreiben soll. Und: Klappt das mit dem current.frame?
TheAn00bis ist offline   Mit Zitat antworten
Alt 22-08-2004, 17:49   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
"..Ich weiß nicht wie und wohin ich den Code schreiben soll.."
ja, bei deiner ganzen fragerei merkt man, das dir der prinzipielle zusammenhang in flash noch nicht so ganz klar ist. ich weiss ja nicht, wieviel vorkenntnisse du von anderen programmiersprachen hast.

die zeitleiste:
programmierern ist allgemein bekannt: eine variable in einer funktion bzw. in einem objekt "lebt" so lange, wie die funktion (das objekt) selbst am arbeiten ist. ist in flash genauso.
hinzu kommen die spuren in den ebenen der zeitleiste. hier sieht man sogar die lebensdauer! solange die spur existiert existieren auch alle darin definierten variablen, objekte, funktionen, grafiken usw.
- springe ich in die spur, dann werden diese dinger angelegt.
- bleibe ich in der spur, bleibt alles wie es ist.
- verlasse ich die spur, dann sind auch all die dinger wieder weg.
ist doch irgendwie logisch - oder?
wenn du etwas haben willst, das während der gesamten animation existiert, dann brauchst du nur eine spur anzulegen, die so lange ist, wie die gesamte animation. bzw. du benützt etwas, das es halt immer gibt. das wäre z.b. _root oder _global oder _level0.


"..Klappt das mit dem current.frame?.."
bei mir immer ;-) weiss ja nicht, was du machst.
hab das mit deinem "wann - was" nicht kappiert. klinkt irgendwie extrem umständlich?


"..dem zufälligen starten der Ereignisse?.."
für zufälle gibt es die function random. z.b.
if (Math.random<.1){
// mach was
}
Math.random liefert einen zufälligen wert zwischen 0 und 1 (== 0..100%). folglich sind hier .1 == 10% aller tests true.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 22-08-2004, 18:04   #5 (permalink)
Flash-holic
 
Benutzerbild von DeMoehn
 
Registriert seit: Nov 2003
Ort: Neunkirchen(Saar)
Beiträge: 988
******e alles gelöcsht! Mist dieser ****** iMac.
Srry. Hatte es mir nicht ganz durchgelesen hmm alles nommal neu schreiben
ActionScript:
  1. aktArr = ["obj1","obj2","obj3","..."]
  2. function attachMe() {
  3. zahl = random(aktArr.length)
  4. _root.attachMovie(aktArr[zahl],aktArr[zahl],100+zahl)
  5. }
  6. myAktInterval = setInterval(attachMe,30000)
So. einfach die Sequenzen wie die mit dem Flugzeug innen MC packen, dessen Namen in das Array eintragen und dann im letzten Frame des MC
ActionScript:
  1. this.removeMovieClip()
Muesste gehn. ist aber nicht getestet, weil ich an meinem kleinen iMac im Zimmer kein Flash hab, ok hab ich schon hab aber grad ICQ und den IE auf, und dann geht Flash nimmer
__________________
Wer Großes versucht, ist bewunderswert, auch wenn er fällt.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)


DeMoehn ist offline   Mit Zitat antworten
Alt 30-08-2004, 09:51   #6 (permalink)
Gott lebt?
 
Registriert seit: Jun 2004
Ort: tiefster Westen
Beiträge: 224
PHP-Code:
aktArr = ["obj1","obj2","obj3","..."
function 
attachMe() { 
zahl random(aktArr.length
_root.attachMovie(aktArr[zahl],aktArr[zahl],100+zahl

myAktInterval setInterval(attachMe,30000
Kannst du mir den Code auch erklären? Am Anfang wird alles in ein Array gepackt, aber was genau passiert in der function? Hat bei mir nicht geklappt, die Syntax war richtig, allerdings ist nichts passiert. Ich muss doch die Instanznamen, der Movieclips in das Array schreiben?

Und: Diese ist einer der Movieclips, in dem sich ein Bus durch die Bühne bewegen soll, aber der Code klappt nicht, nichts passiert:

PHP-Code:
duplicateMovieClip("bus""bus1"1); 
setProperty("bus1"_x1500); 
setProperty("bus1"_y650); 
while (
gfrau1._x>-750) {bus1._x -=1;}; 
TheAn00bis ist offline   Mit Zitat antworten
Alt 30-08-2004, 13:49   #7 (permalink)
Flash-holic
 
Benutzerbild von DeMoehn
 
Registriert seit: Nov 2003
Ort: Neunkirchen(Saar)
Beiträge: 988
Hast scho recht. Is schwer zu verstehn.
Ich mache dir gegen 5 Uhr ne Bsp. Fla fertig ok? Hab hier grad kein Flash MX.
__________________
Wer Großes versucht, ist bewunderswert, auch wenn er fällt.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)


DeMoehn ist offline   Mit Zitat antworten
Alt 30-08-2004, 15:30   #8 (permalink)
Gott lebt?
 
Registriert seit: Jun 2004
Ort: tiefster Westen
Beiträge: 224
Zitat:
Zitat von BAdBoYY
Hast scho recht. Is schwer zu verstehn.
Ich mache dir gegen 5 Uhr ne Bsp. Fla fertig ok? Hab hier grad kein Flash MX.
Das ist echt nett!!! Danke schonmal im vorraus!
TheAn00bis ist offline   Mit Zitat antworten
Alt 30-08-2004, 16:57   #9 (permalink)
Flash-holic
 
Benutzerbild von DeMoehn
 
Registriert seit: Nov 2003
Ort: Neunkirchen(Saar)
Beiträge: 988
ok. geht. 1a. musste noch en bissl basteln für deine bedürfnisse. Aber naja. Will dir ja nich alles vorkauen.
Angehängte Dateien
Dateityp: zip timeRandomAttach.zip (4,5 KB, 10x aufgerufen)
__________________
Wer Großes versucht, ist bewunderswert, auch wenn er fällt.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)


DeMoehn ist offline   Mit Zitat antworten
Alt 30-08-2004, 17:16   #10 (permalink)
Gott lebt?
 
Registriert seit: Jun 2004
Ort: tiefster Westen
Beiträge: 224
Zitat:
Zitat von BAdBoYY
ok. geht. 1a. musste noch en bissl basteln für deine bedürfnisse. Aber naja. Will dir ja nich alles vorkauen.
Vielen Dank!!!

Wirklich gut erklärt! Der letzte Satz war weltklasse !

Wäre nett wenn du dir nochmal den MC-Code anschauen könntest:

PHP-Code:
duplicateMovieClip("bus""bus1"1); 
setProperty("bus1"_x1500); 
setProperty("bus1"_y650); 
while (
gfrau1._x>-750) {bus1._x -=1;}; 
Müsste sich der Bus jetzt nicht von x 1500 nach x -750 bewegen? Und wo ist eigentlich der Unterschied zwischen dem Instanznamen und "für Actionscript speichern"?
TheAn00bis ist offline   Mit Zitat antworten
Alt 30-08-2004, 17:32   #11 (permalink)
Flash-holic
 
Benutzerbild von DeMoehn
 
Registriert seit: Nov 2003
Ort: Neunkirchen(Saar)
Beiträge: 988
Das ist egal. Du kannst immer "Für Actionscript speichern" anwählen. Nur ist es eben besonders wichtig weil der MC in der Bibliothek keinen Namen hat wenn du das nicht anwählst. Der MC könnte z.B hallo heissen und die variable für "für Actionscript speichern" tschüss. dann müsstest du tschüss attachen nicht hallo
Zu dem Script. was machst du mit dem setProperty?
und du musst das drum machen
ActionScript:
  1. // dein duplicate
  2. _root.onEnterframe = function() {
  3. //der rest
  4. }
Das ganze bewirkt nun, das sich die "bus" X/y mit jedem betreten des frames ändern.( Wenn du einstellt das sich was ändern soll.)
__________________
Wer Großes versucht, ist bewunderswert, auch wenn er fällt.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)


DeMoehn ist offline   Mit Zitat antworten
Alt 30-08-2004, 17:37   #12 (permalink)
Gott lebt?
 
Registriert seit: Jun 2004
Ort: tiefster Westen
Beiträge: 224
Setzt das Proberty den nicht an die Stelle? Der soll nähmlich bei 1500; 650 starten. Und mit dem on.enterframe wohin packe ich den Code? Ich wolllte nähmlich in das erste Schlüßelbild des Bus-MC's den Code reinpacken das er von x nach y fährt....
TheAn00bis ist offline   Mit Zitat antworten
Alt 30-08-2004, 17:44   #13 (permalink)
Flash-holic
 
Benutzerbild von DeMoehn
 
Registriert seit: Nov 2003
Ort: Neunkirchen(Saar)
Beiträge: 988
das packst du ins erste Frame von _root. da wo auch mein code liegt.
kannst es auch einfach mir _root.bus._x = pos machen +
ActionScript:
  1. this.onEnterFrame = function() {
  2. this._x = 1500
  3. this._y = 650
  4. if(gfrau1._x>-750) {
  5. bus1._x -=1;
  6. };
  7. }
so kannst du es von mir aus auch in den ersten frame des busses machen
__________________
Wer Großes versucht, ist bewunderswert, auch wenn er fällt.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)


DeMoehn ist offline   Mit Zitat antworten
Alt 30-08-2004, 17:54   #14 (permalink)
Gott lebt?
 
Registriert seit: Jun 2004
Ort: tiefster Westen
Beiträge: 224
DANKE, DANKE, DANEK für deine Hilfe!!!

Eine Frage noch: Wie kann ich das mit dem "für actionscript speichern" nachträglich ändern?
TheAn00bis ist offline   Mit Zitat antworten
Alt 30-08-2004, 17:56   #15 (permalink)
Flash-holic
 
Benutzerbild von DeMoehn
 
Registriert seit: Nov 2003
Ort: Neunkirchen(Saar)
Beiträge: 988
Bibliothek->mc anwählen->kleines i unten am rand drücken->einstellen->fertig
__________________
Wer Großes versucht, ist bewunderswert, auch wenn er fällt.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)


DeMoehn 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 08:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele