Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-06-2010, 22:47   #1 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 38
externen film laden und überblenden

Hallo,

ich habe ein script programmiert, das einen externen flashfilm laden soll. Dieser soll dann durch eine Funktion eingeblendet werden. Komischerweise wird der alte Film nicht ausgeblendet. Ich bekomme den Fehler auch irgendwie nicht richtig eingegrenzt.
Wenn der neue Film eingeblendet werden soll, rufe ich zunächst folgende Funktion auf:
PHP-Code:
url.url urls[urls.indexOf("BilderOhnePreloader.swf")];
laden[urls.indexOf("BilderOhnePreloader.swf")].load(url); 
Das array mit den Loader Objekten habe ich vorher schon deklariert und entsprechende eventListener usw. zugewiesen. Wenn der film dann fertig geladen ist, wird folgende funktion aufgerufen:
PHP-Code:
Hauptmenue.addChild(laden[b]);
hauptmenue(); 
Die variable Hauptmenue ist ein Movieclip, in den ich das loaderObjekt hineinlade. In der Funktion hauptmenue() werden die verschiedenen objekte zum überblenden dann bestimmt und festgelegt.
PHP-Code:
function hauptmenue() {
    
timerObj = new Array();
    
timerNeu = new Array();
    var 
h:int 0;
    while(
numChildren) {
        
timerObj[h] = getChildAt(h);
        
h++;
    }
    
timerNeu[0] = Hauptmenue;
    
addChild(Hauptmenue)
    
Hauptmenue.alpha 0;
    
Hauptmenue.45;
    
Hauptmenue.140;

    
timer.addEventListener(TimerEvent.TIMERAlpha);
    
timer.start(); 
Der Timer (timer mit verzögerung 50 und unendlich wiederholungen) ruft dann die funktion zum überblenden öfter auf:
PHP-Code:
function Alpha(evt:TimerEvent) {
    for (var 
h:int 0timerObj.lengthh++) {

        if (
timerObj[h].alpha 0) {
            
timerObj[h].alpha -= 0.05;
        }
    }
    
    for (var 
l:int 0timerNeu.lengthl++) {
        if (
timerNeu[l].alpha 1) {
            
timerNeu[l].alpha += 0.05;
        }
    }

    for (var 
k:int 0timerObj.lengthk++) {
        if (
timerObj[k].alpha <= 0) {
            if (
contains(timerObj[k]) == true) {
                
removeChild(timerObj[k]);
            }
            
        var 
res1:Boolean timerObj.every(alpha0);
        function 
alpha0(element:*, index:intarr:Array):Boolean {
                       return (
element.alpha <= 0);
            }
            
            var 
res2:Boolean timerNeu.every(alpha1);
        function 
alpha1(element:*, index:intarr:Array):Boolean {
                       return (
element.alpha >= 1);
            }
            if ((
res1 == true) && (res2 == true)) {
                
timer.removeEventListener(TimerEvent.TIMERAlpha);
                
timer.reset();
            } 
Vielen Dank schon mal jetzt fürs helfen.

Gruß
Manuel
Boost ist offline   Mit Zitat antworten
Alt 26-06-2010, 05:53   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Zitat:
Der Timer (timer mit verzögerung 50 und unendlich wiederholungen) ruft dann die funktion zum überblenden öfter auf
Ich würde Ein- und Ausfaden mit der Tweenklasse machen, ist viel einfacher und übersichtlicher...
  Mit Zitat antworten
Alt 26-06-2010, 12:37   #3 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 38
Hi,
danke für die schnelle Antwort. Ich hab das jetzt so umgeändert, dass die Objekte mit Tweens ein- ausgefadet werden. War übrigens wirklich sehr gut, weil ich viel Code eingespart habe. Danach ging das Script trotzdem nicht. Nach langen testen habe ich den eigentlichen Fehler entdeckt. Bei einer if Abfrage lag ein fehler, sodass diese immer true ergab.

Gruß
Manuel
Boost ist offline   Mit Zitat antworten
Alt 26-06-2010, 18:18   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2009
Beiträge: 38
Hallo nochmal!

In einem geladenen Flashfilm ist bei mir ein Scrollbalken eingebaut, der mit startDrag() bewegt werden soll. Das funktioniert bis hierhin auch ganz gut. Wenn man von diesem Film aber in einen anderen wechselt und dann wieder zurück in den Film mit dem Scrollbalken, wird der Scrollbalken zwar angezeigt, aber man kann ihn nicht ziehen. Die Funktion zum starten des Drag wird aber aufgerufen. Ich schätze, dass das daran liegt, dass noch andere eventListener registriert sind, die auch ein mouseDown Ereignis abfangen und einen drag starten sollen. Wie kann ich diese vorhanden eventListener entfernen?
Wenn ich in den Hauptfilm schreibe:
PHP-Code:
stage.removeEventListener(MouseEvent.MOUSE_DOWNdrag)
stage.removeEventListener(MouseEvent.MOUSE_UPdrop
Dann wird ein error ausgelöst, weil die funktionen drag und drop in einem anderen film liegen.

Vielen Dank schon jetzt für die Antworten !!

Gruß
Manuel
Boost ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
externer, film, laden, überblenden

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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
externen swf in film laden goeksel Flash MX 1 24-06-2004 15:35
Externen Film in einen Film laden!!!! DRock Flash 4 und Flash 5 4 09-05-2003 11:13
Externen Film laden und stoppen malthoff Flash MX 3 28-06-2002 23:46
externen film laden crazy_hemorid Flash 4 und Flash 5 1 05-03-2002 01:25
Externen Film an best. Pos. laden Darson ActionScript 1 5 24-08-2001 20:54


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele