Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 22-09-2008, 13:09   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2006
Beiträge: 28
[AS3] Error nach dem Setzen eines Listeners

Hi Leute,

bin gerade dabei, ein Script für eine kleine Flash-Website zu schreiben. Texte werden aus einer XML geladen. Zu Beginn der Scriptausführung wird speziellen Buttons jeweils eine spezielle Funktion zugewiesen. Und ich denke genau hier liegt das Problem. Hier erst mal einen Ausschnitt aus dem Script:

PHP-Code:
/* ____ X M L ____ */
function loadXML() {
    
xmlLoader.addEventListener(Event.COMPLETExmlLoaded);
    
xmlLoader.addEventListener(Event.UNLOADxmlError);
    
xmlLoader.load(new URLRequest("XML/davinci"+curLocation+".xml"));
    }
function 
xmlLoaded(e:Event):void {
    
xmlData = new XML(e.target.data);
    
wScale();
    
startIndex();
    
fillTextfields();
    
Tweener.addTween(wContainer.preloader, {x:-(curScreen[1]/2-10)+(wContainer.logo.width/2)-0.5time:1.5transition:"easeOutQuint"});
    
Tweener.addTween(wContainer.preloader, {alpha:0time:1transition:"easeOutQuint"});
    }
function 
xmlError(e:Event):void {
    
wContainer.preloader.gotoAndStop(2);
    }
function 
fillTextfields() {
    
1;
    for(
k=1k<6k++) {
        
wContainer.con.conIndex["box"+allScreens[k]].heading.text xmlData.indexsite.contents.(@id==allScreens[k]).heading.toString();
        
wContainer.con.conIndex["box"+allScreens[k]].descrip.text xmlData.indexsite.contents.(@id==allScreens[k]).descriptionTxt.toString();
        
wContainer.con.conIndex["box"+allScreens[k]]["icon"+allScreens[k]].alpha 1;
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.addEventListener(MouseEvent.MOUSE_OVERmoveArrowFor);
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.addEventListener(MouseEvent.MOUSE_OUTmoveArrowBack);
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.addEventListener(MouseEvent.MOUSE_UProot["start"+allScreens[k]]);
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.buttonMode true;
        
wContainer.con.conIndex["box"+allScreens[k]].descrip.wordWrap true;
        
wContainer.con.conIndex["box"+allScreens[k]].descrip.autoSize TextFieldAutoSize.LEFT;
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.box.height wContainer.con.conIndex["box"+allScreens[k]].descrip.height+24;
        }
    }

// hier befindet sich noch anderer Code

// --> Function to start index-screen
function startDrinks(event:MouseEvent):void {
    
trace("Drinks");
    }

// --> Function to start index-screen
function startAbout(event:MouseEvent):void  {
    
trace("About");
    }

// --> Function to start index-screen
function startImages(event:MouseEvent):void {
    
trace("Image");
    }

// --> Function to start index-screen
function startNews(event:MouseEvent):void  {
    
trace("News");
    }
    
// --> Function to start index-screen
function startContact(event:MouseEvent):void  {
    
trace("Contact");
    } 
Erst durch einfügen dieser Zeile: ...

PHP-Code:
wContainer.con.conIndex["box"+allScreens[k]].btnBox.addEventListener(MouseEvent.MOUSE_UProot["start"+allScreens[k]]); 
Erscheint folgende Fehlermeldung:
"TypeError: Error #2007: Parameter listener darf nicht 'null' sein.
at flash.events::EventDispatcher/addEventListener()
at MethodInfo-124()
at MethodInfo-122()
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at flash.net::URLLoader/onComplete()"

Ohne jene Zeile funktioniert alles ohne Einwände. Ich kann mir den Fehler absolut nicht erklären, besonders auch, weil eine Testdatei mit jener Script-Zeile ebenfalls anstandsfrei läuft:

PHP-Code:
// dieses Script funktioniert problemlos
var k:int 1;
var 
allScreens:Array = ["Index""Drinks""About""Images"]

for(
k=1k<4k++) {
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.addEventListener(MouseEvent.MOUSE_UProot["start"+allScreens[k]]);
        }
        
// --> Function to start drinks-screen
function startDrinks(event:MouseEvent):void {
    
trace("Drinks");
    }

// --> Function to start about-screen
function startAbout(event:MouseEvent):void  {
    
trace("About");
    }

// --> Function to start images-screen
function startImages(event:MouseEvent):void {
    
trace("Images");
    } 
Hoffe es kann mir jemand helfen!

Big Thx!
rocco15FN ist offline   Mit Zitat antworten
Alt 06-10-2008, 15:42   #2 (permalink)
Neuer User
 
Registriert seit: Jun 2006
Beiträge: 83
arrayindizes sind nullbasiert (feld 1 = index 0)

PHP-Code:

for(k=0k<6k++) { //k kleiner anzahl funktionsverweise im array!!!!
        
wContainer.con.conIndex["box"+allScreens[k]].heading.text xmlData.indexsite.contents.(@id==allScreens[k]).heading.toString();
        
wContainer.con.conIndex["box"+allScreens[k]].descrip.text xmlData.indexsite.contents.(@id==allScreens[k]).descriptionTxt.toString();
        
wContainer.con.conIndex["box"+allScreens[k]]["icon"+allScreens[k]].alpha 1;
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.addEventListener(MouseEvent.MOUSE_OVERmoveArrowFor);
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.addEventListener(MouseEvent.MOUSE_OUTmoveArrowBack);
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.addEventListener(MouseEvent.MOUSE_UProot["start"+allScreens[k]]);
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.buttonMode true;
        
wContainer.con.conIndex["box"+allScreens[k]].descrip.wordWrap true;
        
wContainer.con.conIndex["box"+allScreens[k]].descrip.autoSize TextFieldAutoSize.LEFT;
        
wContainer.con.conIndex["box"+allScreens[k]].btnBox.box.height wContainer.con.conIndex["box"+allScreens[k]].descrip.height+24;
        } 

Geändert von jacquesr (06-10-2008 um 15:48 Uhr)
jacquesr ist offline   Mit Zitat antworten
Alt 07-10-2008, 01:38   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2006
Beiträge: 28
Das war gar nicht das Problem. Es läuft auch so durch das Array, weil es von Stelle 1 bis zur Stelle 3 läuft, und die sind alle besetzt. Nur durch "Index" läuft es nicht, ist aber auch so gewollt.

Habe nach ewiger Zeit selbst keine Antwort gefunden und meinen kompletten Code erneut und leicht modifiziert geschrieben. Jetzt habe ich das Problem nicht mehr...
rocco15FN 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 16:09 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele