Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-08-2003, 01:18   #1 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
soundwechsel bei tag und nacht

Ich baue gerade an einer HP, und es soll wie in der Realität ein Tag und Nacht wechsel statt finden.
Nacht ist zwischen 22 Uhr und 6 Uhr, alles andere ist Tag.

PHP-Code:
/*Function wird in Frame 1, da wo der Preloader liegt und alle
anderen Functionen definiert werden, gecodet und in Frame 10 dann aufgerufen*/

function change() {
zeit = new Date();
std zeit.getHours();
mySound = new Sound();

if (
std >= && std <= 22) {
mySound.attachSound("tag");
mySound.start(0999);

else {
mySound.attachSound("nacht");
mySound.start(0999);
}

folgender Fall:

ein nachtfreudiger User sitzt um eine Minute vor 6 am PC und textet freuding im Gästebuch, tja um um 1 Minute vor 6 ist ja noch dem nach Nacht und es wird auch der Nacht loop abgespielt, aber um 6 ist ja dann Tag und es soll ja auch der Tag loop abgespielt werden.

Muss man die function dafür irgendwie immer aktualieseren? weil ich meine doch, dass der Nacht loop solange abgespielt bis die Seite aktualiesiert wird oder neu geladen wird, obwohl es lange nach 6 ist und der Tag loop folgen sollte?

Könnte man das eventuell mit updateAfterEvent machen, oder sehe ich das flash, dass die function städig aktualisiert werden muss, damit er automatisch den Sound wechselt?

also ungefähr so:

PHP-Code:
function change() {
zeit = new Date();
std zeit.getHours();
mySound = new Sound();

if (
std >= && <= 22) {
mySound.attachSound("tag");
mySound.start(0999);

else {
mySound.attachSound("nacht");
mySound.start(0999);
}
updateAfterEvent();

Aber in der Flash hilfe steht, dass FLASH alle updateAfterEvent-Aufrufe ignoriert wenn die nicht in einer onClipEvent-Prozedur enthalten bzw. nicht Teil einer an setInterval übergebenen Funktion oder Methode sind.

Heisst dass ich muss das ganze noch in einen MC packen?!

mit onEnterFrame ist das glaub ich die reinste CPU auslastung!?Oder die Function mehrmals aufruufen, ist aber, denke ich, auch Quatsch!
__________________
www.johannes-erhardt.com | blog | xing me baby

Geändert von FLASHStyler (06-08-2003 um 01:37 Uhr)
FLASHStyler ist offline   Mit Zitat antworten
Alt 06-08-2003, 08:46   #2 (permalink)
Nett hier ...
 
Benutzerbild von makese
 
Registriert seit: Nov 2002
Ort: Berlin
Beiträge: 643
...

ja dat muß dann über einen enterframe passieren .. wenn du nur einen nutz dann ist das scho ok ...kannst ja hier alle abfragen tätigen die permanent gecheck werden sollen

gruß makese
makese ist offline   Mit Zitat antworten
Alt 06-08-2003, 08:59   #3 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
brauchst kein onenterframe, ein interval tut das recht gut

ActionScript:
  1. var verzoegerung = 10;
  2. //
  3. //
  4. var dd = new Date().toString().split(" ");
  5. var bb = dd[3].split(":");
  6. var cc = bb[0].toString()+bb[1].toString()+bb[2].toString();
  7. var dd = Number(cc);
  8. trace(dd);
  9. //
  10. //
  11. inter = setInterval(function () {
  12.     var d = new Date().toString().split(" ");
  13.     var b = d[3].split(":");
  14.     var c = b[0].toString()+b[1].toString()+b[2].toString();
  15.     ausgabe.text = c;
  16.     var d = Number(c);
  17.     if (d>=dd+verzoegerung) {
  18.         trace("hallo");
  19.         clearInterval(inter);
  20.     }
  21. }, 1000);

anstelle der var verzögerung mußt du die zeit bis zum jeweiligen wechsel einsetzen.


grz
warrantmaster ist offline   Mit Zitat antworten
Alt 06-08-2003, 12:03   #4 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
o.k. hab das ganze mal in einen MC gepackt und mit enterFrame versehen:

PHP-Code:
function change() {
    
this.createEmptyMovieClip("soundMc"1);
    
soundMc.onEnterFrame = function() {
    
mySound = new Sound();
    
zeit = new Date();
    
std zeit.getHours();
    
signal false
    
if(std >= && std <= 22) {
        if (
signal == false) {
        
mySound.attachSound("tag");
        
mySound.start(0999);
        
signal true;
        }
    }
    else if (
signal == true) {
        
mySound.attachSound("nacht");
        
mySound.start(0999);
        
signal false;
    }
    }

also ist auch nicht das wahre, weil sich der Sound überschneidet, hab das jetzt den auch mit einem signal gemacht, aber geht auch nicht, der Sound wird nicht syncron abgespielt.


PS:
@warrantmaster, wo soll ich bei deiner function den attachSound und so weiter function einsetzen???
__________________
www.johannes-erhardt.com | blog | xing me baby

Geändert von FLASHStyler (06-08-2003 um 12:05 Uhr)
FLASHStyler ist offline   Mit Zitat antworten
Alt 06-08-2003, 12:29   #5 (permalink)
Nett hier ...
 
Benutzerbild von makese
 
Registriert seit: Nov 2002
Ort: Berlin
Beiträge: 643
...

wird zwar die oop freaks aufregen aber machs doch so

this.onEnterFrame = function() {
change()
// hier alle function aufrufe
}

function change() {
mySound = new Sound();
zeit = new Date();
std = zeit.getHours();
if ((std >= 6) and (std <= 22)) {
mySound.attachSound("tag");
mySound.start(0, 999);

}
else if ((std < 6) and (std > 22)) {
mySound.attachSound("nacht");
mySound.start(0, 999);
}

}

gruß makese
makese ist offline   Mit Zitat antworten
Alt 06-08-2003, 12:36   #6 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
Nee, geht auch nicht! Spiel asyncron ab, versuch mal das gleiche, also die function bei dir aufzurufen, geht nicht
__________________
www.johannes-erhardt.com | blog | xing me baby
FLASHStyler ist offline   Mit Zitat antworten
Alt 06-08-2003, 16:06   #7 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
Also, hab das kurz mit setInerval probiert aber klapt auch nicht...
weiss nicht wieso, er den sound dabei nicht wechselt!


Leute erlich bitte um Hilfe sitzte schon seit spät Nachts dran, und es geht nicht!
__________________
www.johannes-erhardt.com | blog | xing me baby
FLASHStyler ist offline   Mit Zitat antworten
Alt 06-08-2003, 19:09   #8 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
zeig mal dein interval script
warrantmaster ist offline   Mit Zitat antworten
Alt 06-08-2003, 19:13   #9 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
btw....

ActionScript:
  1. soundMc.onEnterFrame = function() {
  2.     mySound = new Sound();
  3. ....usw


wie soll das denn nur funzen ?
warrantmaster ist offline   Mit Zitat antworten
Alt 06-08-2003, 19:53   #10 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
ActionScript:
  1. mysound = new Sound();
  2. var dd = new Date().toString().split(" ");
  3. var bb = dd[3].split(":");
  4. var cc = bb[0].toString()+bb[1].toString()+bb[2].toString();
  5. var dd = Number(cc);
  6. warten_auf_die_nacht = function () {
  7.     _root.mysound.attachSound("tag");
  8.     _root.mySound.start(0, 999);
  9.     inter = setInterval(function () { var d = new Date().toString().split(" ");var b = d[3].split(":");var c = b[0].toString()+b[1].toString()+b[2].toString();ausgabe.text = c;var d = Number(c);if (d>=220000) {trace("gute nacht");stopAllSounds();_root.mysound.attachSound("nacht");_root.mySound.start(0, 999);clearInterval(inter);}}, 1000);
  10. };
  11. warten_auf_den_tag = function () {
  12.     _root.mysound.attachSound("nacht");
  13.     _root.mySound.start(0, 999);
  14.     inter = setInterval(function () { var d = new Date().toString().split(" ");var b = d[3].split(":");var c = b[0].toString()+b[1].toString()+b[2].toString();ausgabe.text = c;var d = Number(c);if (d>=60000) {trace("guten morgen");stopAllSounds();_root.mysound.attachSound("tag");_root.mySound.start(0, 999);clearInterval(inter);}}, 1000);
  15. };
  16. if (dd>60000 && dd<220000) {
  17.     trace("tag");
  18.     warten_auf_die_nacht();
  19. } else {
  20.     trace("nacht");
  21.     warten_auf_den_tag();
  22. }


c&p in frame 1 auf root
das textfeld "ausgabe" muß auf root liegen (so du es brauchst).

grz
warrantmaster ist offline   Mit Zitat antworten
Alt 06-08-2003, 20:52   #11 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
danke sehr, werd ausprobieren!


edit: JUUHU, ich danke dir viel viel mals, es klappt! und ich sass da 8 std dran!


edit: kleines problem gibts doch: und zwar, bis 22 uhr sol ja tag sein, ist es auch, aber nach 22 uhr springt er um in die nacht und dann plötzlich wieder in den tag
__________________
www.johannes-erhardt.com | blog | xing me baby

Geändert von FLASHStyler (06-08-2003 um 21:05 Uhr)
FLASHStyler ist offline   Mit Zitat antworten
Alt 06-08-2003, 22:39   #12 (permalink)
{flasher}
 
Benutzerbild von Majo
 
Registriert seit: Mar 2003
Ort: on water
Beiträge: 2.823
so sollte es klappen:
ActionScript:
  1. //day&night by majo
  2. mysound = new Sound();
  3. checkTime = function(){
  4.     d = new Date();
  5.     b = d.getHours();
  6.     if (b >= 6 && b <= 21) {
  7.         day();
  8.         song2 = false;
  9.     } else {
  10.         night();
  11.         song1 = false;
  12. }
  13.  
  14. }
  15. checkTime();
  16. inter = setInterval(checkTime,1000);
  17. day = function () {
  18.     if(!song1){
  19.         song1 = true;
  20.         _root.mySound.stop();
  21.         _root.mysound.attachSound("tag");
  22.         _root.mySound.start(0, 999);
  23.     }
  24. }
  25. night = function () {
  26.     if(!song2){
  27.         song2 = true;
  28.         _root.mySound.stop();
  29.         _root.mysound.attachSound("nacht");
  30.         _root.mySound.start(0, 999);
  31.     }
  32. };
  33. //eof...
  34.  



good night and sweet dreams to ff
__________________
hang loose
Majo ist offline   Mit Zitat antworten
Alt 06-08-2003, 23:01   #13 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
danke sehr! danke danke danke!
__________________
www.johannes-erhardt.com | blog | xing me baby
FLASHStyler ist offline   Mit Zitat antworten
Alt 06-08-2003, 23:14   #14 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
ActionScript:
  1. if (d>=60000)....


...das script ist aber auch ein beknackter lösungsansatz....!




warrantmaster 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 07:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele