• SpryFlashCMS das Flash CMS
  • TWUMBLE - bald online
  • Adobe User Group
Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-11-2009, 19:45   #1 (Permalink)
Neuer User
 
Registriert seit: Aug 2005
Ort: Hamburg
Beiträge: 175
Alternative zu removeChild

hallo,

habe hier ein swf welches per addChild geladen wird, über
einen close Button soll das ganze nun wieder entfernt werden,
das herausTweenen klappt, nur scheint das anschließende removeChild
fehl am Platz zu sein, da ein erneuter Zugriff auf die selbe swf nicht mehr möglich ist.
Was wäre die alternative oder stimmt hier was anderes nicht?


PHP-Code:
       function onClick(evt:MouseEvent):void
 
         
{             
            
            
TweenLite.from(loader1, {x:0y:-2ease:Quint.easeOut});
            
TweenLite.to(loader1,  {x:0y:20ease:Quint.easeOutalpha:0onComplete:remove});
                         
            function 
remove():void {
            
                        
            
parent.removeChild(loader);
             
                                            }
                
        }

} ; 

hier der komplette code falls es interessiert

PHP-Code:
stop();

import com.greensock.*;
import com.greensock.easing.*;


var 
loader:Loader = new Loader();
    
loader.contentLoaderInfo.addEventListenerProgressEvent.PROGRESSladen );
    
loader.contentLoaderInfo.addEventListenerEvent.COMPLETEfertig );

parent.addChildloader );


hit_1.addEventListener(MouseEvent.MOUSE_DOWNload_motorsport);        

    function 
load_1(event:MouseEvent):void {
        
            
loader.load( new URLRequest"1.swf") );
    
    }

// Preload
function ladenevent:ProgressEvent ):void {
    
    var 
percent:Number Math.roundevent.currentTarget.bytesLoaded 100 event.currentTarget.bytesTotal );
    
}
// Geladen
function fertigevent:Event ):void {
    
    
loader.contentLoaderInfo.removeEventListenerProgressEvent.PROGRESSladen );
    
loader.contentLoaderInfo.removeEventListenerEvent.COMPLETEfertig );
    
       
    
TweenLite.from(loader,1, {x:0y:20ease:Quint.easeOutdelay:1alpha:0.5});
       
TweenLite.to(loader1,  {x:0y:-2ease:Quint.easeOutalpha:1}); 
        
    
event.target.content.close_btn.addEventListener(MouseEvent.MOUSE_DOWNonClick); 
    
       function 
onClick(evt:MouseEvent):void
 
         
{             
            
            
TweenLite.from(loader1, {x:0y:-2ease:Quint.easeOut});
            
TweenLite.to(loader1,  {x:0y:20ease:Quint.easeOutalpha:0onComplete:remove});
                         
            function 
remove():void {
            
                        
            
parent.removeChild(loader);
             
                                            }
                
        }

} ; 
hk1805 ist offline   Mit Zitat antworten
Alt 11-11-2009, 00:04   #2 (Permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.071
warum addest du alles auf parent? ich würde die swf auch ein bißchen anders auf die bühne holen. du machst das alles ein bißchen wild schau mal hier: click!

dein tweenlite-zeugs kannst du also einfach in die unloadSWF-methode schreiben und beim onComplete-event des tweens rufst du eine removeSWF-methode auf, wo dann die jetzige unload-funktion drinsteht. sollte funktionieren!
figure8 ist offline   Mit Zitat antworten
Alt 11-11-2009, 18:44   #3 (Permalink)
Neuer User
 
Registriert seit: Aug 2005
Ort: Hamburg
Beiträge: 175
Auf parent adden tue ich weil sich des button in welchem dieses script liegt innerhalb einer Maske befindet, daher ist es nicht möglich direkt hier zu adden. Vermutlich hätte ich das Script besser ausserhalb anlegen müssen,
bin aber schon froh das es überhaupt so läuft, sauber coden kommt bei mir dann in der nächsten Lektion

Deine Version schaue ich mir morgen mal an, vermutlich würde das swf hier aber auch im selben Ort wie das script öffnen, oder? Oder sollte ich lieber das Script anderswo anlegen?
hk1805 ist offline   Mit Zitat antworten
Alt 12-11-2009, 08:33   #4 (Permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.071
du addest i.d.r nichts "nach oben" hin. leg das script lieber höher und adde das swf in einem container - so ist´s auch in meinem beispiel.
figure8 ist offline   Mit Zitat antworten
Alt 12-11-2009, 18:45   #5 (Permalink)
Neuer User
 
Registriert seit: Aug 2005
Ort: Hamburg
Beiträge: 175
so hab das ganze jetzt mal nach anweisung umgebaut, und es klappt schon fast super, vielen Dank für den Support.

Ein kleiner Bug den ich nicht ganz verstehe-> Nach Betätigung des close button und erneutem Aufruf des selben swf erscheint der Film, zuckt dann kurz weg und ist anschließend wieder da, ne Idee woran es liegen könnte?

Hier noch mal das Script

PHP-Code:
// Laden der Projekt SWF
    
var _swfLoader:Loader;
var 
_swfContent:MovieClip;
 
thumbs_only.hit_motorsport.addEventListener(MouseEvent.MOUSE_DOWNload_motorsport);        

function 
load_motorsport(event:MouseEvent):void {
                
    
loadSWF("1.swf");
 
function 
loadSWF(path:String):void {
    
    var 
_req:URLRequest = new URLRequest();
    
_req.url path;
 
    
_swfLoader = new Loader();
    
setupListeners(_swfLoader.contentLoaderInfo);
   
    
_swfLoader.load(_req);
    
}
 
function 
setupListeners(dispatcher:IEventDispatcher):void {
    
dispatcher.addEventListener(Event.COMPLETEaddSWF);
    
dispatcher.addEventListener(ProgressEvent.PROGRESSpreloadSWF);
}
 
function 
preloadSWF(event:ProgressEvent):void {
    var 
_perc:int = (event.bytesLoaded event.bytesTotal) * 100;

}
 
function 
addSWF(event:Event):void {
    
event.target.removeEventListener(Event.COMPLETEaddSWF);
    
event.target.removeEventListener(ProgressEvent.PROGRESSpreloadSWF);
   
    
_swfContent event.target.content;
    
_swfContent.close_btn.addEventListener(MouseEvent.MOUSE_DOWNunloadSWF);

    
addChild(_swfContent)
    
TweenLite.from(_swfContent,1, {x:0y:20ease:Quint.easeOutdelay:1alpha:0.5});
       
TweenLite.to(_swfContent1,  {x:0y:-2ease:Quint.easeOutalpha:1}); 
    
    }    
    
};


function 
unloadSWF(event:Event):void {
    
    
TweenLite.from(_swfContent1,   {x:0y:-2ease:Quint.easeOut});
    
TweenLite.to  (_swfContent1,   {x:0y:20ease:Quint.easeOutalpha:0onComplete:remove});
    
                 
function 
remove():void {
                            
    
_swfLoader.unloadAndStop();
   
    
removeChild(_swfContent);
    
    
_swfContent null;

    }

}; 
hk1805 ist offline   Mit Zitat antworten
Alt 16-11-2009, 11:00   #6 (Permalink)
Neuer User
 
Registriert seit: Aug 2005
Ort: Hamburg
Beiträge: 175
Hat keiner ne Idee, wieso es hier beim erneuten Aufruf zu einem zucken kommt, bzw. man es beseitigen kann?
hk1805 ist offline   Mit Zitat antworten
Alt 17-11-2009, 12:56   #7 (Permalink)
Neuer User
 
Registriert seit: Aug 2005
Ort: Hamburg
Beiträge: 175
@ figure8: Hast du nicht ne Idee wieso dieser Fehler auftaucht? Hast du diesen Nicht? Was ist an meinem Code anders?
hk1805 ist offline   Mit Zitat antworten
Alt 17-11-2009, 15:08   #8 (Permalink)
lebt in stereo
 
Benutzerbild von figure8
 
Registriert seit: Mar 2008
Ort: karlsruhe
Beiträge: 1.071
deine tweens kommen sich in die quere, das ist anders. außerdem entstehen cache-lücken, wenn du etwas lokal testest, also wenn etwas zuckt immer erst einmal das ganze online testen (or throttlen) und dann nach- und nach die tweens rausnehmen bis du den bösewicht gefunden hast.
figure8 ist offline   Mit Zitat antworten
Alt 17-11-2009, 15:27   #9 (Permalink)
Neuer User
 
Registriert seit: Aug 2005
Ort: Hamburg
Beiträge: 175
Danke, werds gleich mal ausprobieren.
hk1805 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
removeChild Verständnisfrage MaloRox ActionScript 3 10 31-08-2009 13:48
[Flash CS4] add & removeChild? aphratec Flash Einsteiger 15 23-04-2009 22:34
addChild und removeChild uncle.sam ActionScript 3 13 28-02-2009 22:45
removeChild MC thiagojonas ActionScript 3 2 23-02-2009 15:13
[Flash CS3] AS3 - flv in mc - removeChild Duke79 Flash Einsteiger 2 17-11-2008 16:33


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:08 Uhr.

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


Copyright ©1999 – 2010 Marc Thiele und Sascha Wolter.