Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-12-2011, 22:48   #1 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 112
Rekursive Methoden..Aufruf der Methode nicht möglich

Folgendes Skript soll via einer rekursiven Methode mehrere Bitmaps laden.
Kann eine Funktion überhaupt mehr als eine Unterfunktion haben? Innerhalb der makeBitmap()-Funktion ist die loadCover() - Funktion (erste Unterfunktion, nicht verwechseln mit er loadCovers()) nicht aufrufbar.


PHP-Code:
public function loadCovers():void {
            
            
covers = new Array();
            var 
i:Number 0;
            
            function 
loadCover():void {
            
                if (
<= discographyXML.record.length()-1) {
                    
                    var 
loadCover:Loader = new Loader();
                    var 
url:URLRequest = new URLRequest(discographyXML.record[i].coverURL)
                    
                    
loadCover.load(url);
                    
loadCover.contentLoaderInfo.addEventListener(Event.COMPLETEmakeBitmap);
                    
                    function 
makeBitmap(evt:Event):void {
                        
                        var 
cover:Bitmap;
                        
cover Bitmap(loadCover.content); 
                        
covers[i] = cover;
                        
                        
loadCover();
                        
trace("Bitmap loaded");
                    }
                }
                
                
//GO ON
                
else { buildRecords(); }
            }
        } 
BTW: In einem Buch steht folgender etwas seltsam anmutende Aufruf des Bitmap-Konstrukturs.

PHP-Code:
var cover:Bitmap;
cover Bitmap(loadCover.content); 
Also ohne das Schlüsselwort "new". Es funktioniert auch tatsächlich so und mit "new" nicht. Was steckt da dahinter?
Jaro_E ist offline   Mit Zitat antworten
Alt 04-12-2011, 23:17   #2 (permalink)
i ate pixels
 
Benutzerbild von pixelslave
 
Registriert seit: Mar 2004
Ort: Augsburg
Beiträge: 527
Zitat:
Zitat von Jaro_E Beitrag anzeigen
BTW: In einem Buch steht folgender etwas seltsam anmutende Aufruf des Bitmap-Konstrukturs.

PHP-Code:
var cover:Bitmap;
cover Bitmap(loadCover.content); 
Also ohne das Schlüsselwort "new". Es funktioniert auch tatsächlich so und mit "new" nicht. Was steckt da dahinter?
Das was da dahinter steckt ist Typcasting. Da cover eine Instanz der Klasse Bitmap erwartet und loadCover.content womöglich eine Instanz einer anderen DisplayObject Klasse ist.

Grüße

Martin
pixelslave ist gerade online   Mit Zitat antworten
Alt 04-12-2011, 23:46   #3 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
Zitat:
Kann eine Funktion überhaupt mehr als eine Unterfunktion haben?
ja, kann sie, du solltest aber darauf verzichten, das zu nutzen.
Funktionen in Funktionen bereiten dir idr mehr Probleme, als sie lösen.

du legst es aber auch wirklich darauf an, dass Flash durcheinander kommt, oder:
PHP-Code:
function loadCover():void 
// darin:
var loadCover:Loader
// und noch eine Etage tiefer:
cover Bitmap(loadCover.content); 
//sowie:
loadCover(); 
PHP-Code:
private var _todo:Array = [];
private var 
_coverLoader:Loader;

public function 
loadCovers():void 
{
    
covers = [];
    for 
each(var record:XML in discographyXML.record){
        
_todo.push(record.coverUrl.toString());
    }
    
    if(!
_coverLoader){
        
_coverLoader = new Loader();
        
_coverLoader.contentLoaderInfo.addEventListener(Event.COMPLETEmakeBitmap);
    }
    
loadNextCover();
}

private function 
loadNextCover():void
{
    var 
url:String _todo.shift();    //hole ersten Eintrag aus dem todo-Array
    
if(url){
        
_coverLoader.load(new URLRequest(url));
    }else{
        
//keine url mehr in der todo-liste
        
        //der Loader wird nicht mehr benötigt
        
_coverLoader.contentLoaderInfo.removeEventListener(Event.COMPLETEmakeBitmap);
        
_coverLoader null;
        
        
buildRecords();
    }
}

private function 
makeBitmap(e:Event):void
{
    var 
cover:Bitmap Bitmap(_coverLoader.content);
    
covers.push(cover);
    
trace("Bitmap loaded");
    
loadNextCover();

__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist gerade online   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
setter- und getter-Methoden Aufruf fradi ActionScript 3 3 23-04-2008 13:30
Methoden Aufruf Problem Mediautilus24 Softwarearchitektur und Entwurfsmuster 8 30-11-2005 15:18
Aufruf der onStatus Methode von php aus forcieren rivella50 Flash Remoting 6 27-07-2005 21:32
aufruf eines fenster mittels javascript aus flash nicht möglich - serverproblem? orpheus_1 ActionScript 1 4 16-08-2004 04:19
xml und oop - aufruf nicht möglich safari ActionScript 1 2 02-07-2003 11:27


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:36 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele