Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-01-2004, 16:48   #1 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
externe SWF per Variable steuern | keine Wirkung

Hi,

folgendes:

Ich habe 8 swf die per loadMovie(); nacheinander geladen werden.

Am Anfang gibt es einen main.swf die die navigation enthält und die loader.swf auf ein level lädt. Dann diese loader.swf die sämtliche „grundfilme“ lädt. In dieser Loader ist auch ein Skip-Button, da der Kunde diesen möchte.
Ich hab auf diesen Button ein gotoAndStop(); für die swf selbst gesetzt, die dann zu der Flag „Skip“ springt, sowie auch alle Aktionen, die normalerweise im Laufe der übersprungenen Zeitleiste geschehen wären.

ActionScript:
  1. on (release)
  2.     {
  3.          _level0.navi.lauf.gotoAndStop("skip");
  4.     _level2.gotoAndStop("skip");   
  5.     _level0.navi.gotoAndPlay("skip");
  6.     _root.gotoAndStop("skip");
  7.     _root.grau.gotoAndStop("skip");
  8.     _root.balken.gotoAndStop("skip");
  9.     _root.frame.gotoAndStop("skip");
  10.  
  11.     loadMovieNum("home.swf", 10);
  12.     loadMovieNum("sound.swf", 20);
  13.  
  14. //das funktioniert alles bis hierhin
  15.  
  16.  
  17.     _level10.gotoAndStop("skip"); //tut es nicht
  18.     set(_level666.skip, 1); //alternativer Versuch eine Var zu setzen
  19.     _level666.skip == 1; //auch ein Versuch
  20.     }


Die Variablen werden auf jedenfall nicht gesetzt. Ich habe in der home.swf, die hier den Ärger macht, ein Script gesetzt, das sagt:

ActionScript:
  1. if (_level666.skip == 1)
  2. {
  3. _root.gotoAndStop("skip");
  4. }


Alleine der gotoAndStop aus der loader.swf die die Aktion in der home.swf ausführen soll, würde schon reichen. Mit den Variablen musst nicht sein.

Wo liegt mein Fehler?

Liebe Grüße

yves

Geändert von 409coffeemaker (14-01-2004 um 16:50 Uhr)
  Mit Zitat antworten
Alt 14-01-2004, 19:13   #2 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
ActionScript:
  1. loadMovieNum("home.swf", 10);
  2.         loadMovieNum("sound.swf", 20);
  3.        
  4.         //das funktioniert alles bis hierhin
  5.        
  6.        
  7.         _level10.gotoAndStop("skip"); //tut es nicht
  8.  

mit dem laden der home.swf in level 10 schießt dein nachfolgendes goto in's leere.

grz
warrantmaster ist offline   Mit Zitat antworten
Alt 14-01-2004, 19:24   #3 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
warum?

wie mache ich es denn besser?


liebe grüße

yves
  Mit Zitat antworten
Alt 14-01-2004, 19:25   #4 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
in welcher swf ist denn "skip" ?
warrantmaster ist offline   Mit Zitat antworten
Alt 14-01-2004, 19:37   #5 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
- main.swf lädt die loader.swf
- in der loader.swf ist der skip button.


yves
  Mit Zitat antworten
Alt 14-01-2004, 19:43   #6 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
das ist jetzt mal nicht die frage gewesen...

in welcher swf ist die bildmarkierung, auf die
dein goto abzielt ?
warrantmaster ist offline   Mit Zitat antworten
Alt 14-01-2004, 19:49   #7 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
in der home.swf auf dem letzten bild in der _root ebene mit dem bildanker skip.

home.swf wird auf _level10 geladen (loadMovieNum("home.swf", 10);


  Mit Zitat antworten
Alt 14-01-2004, 20:06   #8 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
ok,

flash ist nicht so ganz schnell, daß die swf drei code-zeilen
weiter schon da ist, mußt also ein wenig warten.
man könnte das mit einem preloader vergleichen,
du brauchst also eine abfrage per onenterframe oder interval,
um zu prüfen, ob das teil schon da ist.

ActionScript:
  1. loadMovieNum("home.swf", 10);
  2. loadMovieNum("sound.swf", 20);
  3. to_skip = function ()
  4. {
  5.     _level10.gotoAndStop("skip");
  6. };
  7. inter = setInterval(to_skip, 100);

flash versucht jetzt ständig den befehl auszuführen,
bis es dann klappt.
im bild "skin" der home.swf mußt du dann das interval deleten.

ActionScript:
  1. clearInterval(inter)
warrantmaster ist offline   Mit Zitat antworten
Alt 14-01-2004, 21:29   #9 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Hi,

sehr sehr genial!

Funktioniert auf Anhieb.

Was macht denn das Interval?

Warum der delete hinterher?


liebe Grüße

Yves
  Mit Zitat antworten
Alt 14-01-2004, 22:28   #10 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
setInterval ruft die angegebene funktion (hier "to_skip") in
definierten zeiträumen (intervallen) auf, die man im zweiten parameter in der klammer in millisekunden ( hier 100) bestimmen
kann.

wenn du das teil nicht nach "gebrauch" deletest, dann hört das ding auch nicht damit auf, d.h., die anweisung "goto..." in der funktion würde alle 100 millisekunden ausgeführt werden.
ist im übrigen in der flash-referenz recht gut beschrieben
warrantmaster ist offline   Mit Zitat antworten
Alt 15-01-2004, 01:10   #11 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
ok danke *daumen hoch*
  Mit Zitat antworten
Alt 15-01-2004, 16:54   #12 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
Hi,

mir ist aufgefallen, das sich mit

ActionScript:
  1. clearInterval(inter);


das Intervall nicht deleten lässt.

Was mache ich falsch?

Auch

ActionScript:
  1. this.onEnterFrame
  2. {
  3. clearInterval(inter);
  4. }

funktioniert nicht.

Liebe Grüße

Yves
  Mit Zitat antworten
Alt 15-01-2004, 22:40   #13 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
du mußt auf die zeitleiste zurück, auf der du das interval geparkt hast ! (pfadeeee.....!)
warrantmaster ist offline   Mit Zitat antworten
Alt 16-01-2004, 00:14   #14 (permalink)
409coffeemaker
Gast
 
Beiträge: n/a
geht aber trotzdem nix
  Mit Zitat antworten
Alt 16-01-2004, 14:25   #15 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
ActionScript:
  1. to_skip = function ()
  2.         {
  3.             _global.inter==true ? clearInterval(inter) :0;
  4.            _level11.gotoAndStop("skip");
  5.         };
  6.     inter = setInterval(to_skip, 100);
  7.    
  8.    
  9.     to_skip2 = function ()
  10.         {
  11.         _global.inter2==true ? clearInterval(inter2) :0;
  12.         _level20.gotoAndStop("skip");
  13.         _level20.loop.on_off0.gotoAndStop("on");
  14.         };
  15.     inter2 = setInterval(to_skip2, 100);

in die bilder "skip":

_global.inter=true

und

_global.inter2=true






postfach leeren !
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 09:03 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele