Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-12-2010, 14:23   #1 (permalink)
Neuer User
 
Registriert seit: Dec 2010
Beiträge: 1
Question Error #1009 - Fehler im Script? - relativer Newbie

Hallo Flasher!

Ich habe arge Probleme mit den Animationen für meine 2 Webseiten.
Ich versuche sie über XML zu steuern (2 Texte u. 1 Grafik sollen hinzugeladen werden). Anfangs hat es ganz gut geklappt, doch seit einiger
Zeit erhalte ich die Fehlermeldung

Code:
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
	at rentierschlitten_test_fla::MainTimeline/frame1()
Angesteuert wird ein leeres Symbol => Instanzname "logoanzeige",
2x ein Symbol ("zeile1" u. "zeile2") mit je einem Textfeld ("text1" und "text2" - je TLF-Text "Nur zum Lesen").

Wo könnte der Fehler liegen? Hier mein AS3:

Code:
//Objekt für URL-Anfragen importieren
import flash.net.URLRequest;
//Objekt für Stage importieren
import flash.display.*;

//ganze URL des SWF-Files auslesen - http//www.domain.de/pfad/pfad/test.swf...
var urlString:String = root.loaderInfo.url; 

//Die regulären Ausdrücke zum Kürzen
var urlRegExp:RegExp = /^http[s]?:\/\/(www\.|vorschau\.)?([^\/]+)/; //rausholen was zwischen // und dem nächsten / steht

//ganze URL mit regulären Ausdrücken auf www.domain.de
var nurURL:Array = urlString.match(urlRegExp); //search? replace? match?

var loeschen:RegExp = /^http[s]?:\/\/(www\.|voransicht\.)?/;

var domain:String = nurURL[0].replace(loeschen, "/system/animation/xml/");

// Pfad mit eigener SWF-URL kombinieren
var ganzeAdresse:String = nurURL[0]+domain+".xml";

//XML Auslesen
var Kundendaten:Array = [];

var loader:URLLoader = new URLLoader();
loader.load(new URLRequest(ganzeAdresse));
loader.addEventListener(Event.COMPLETE, parseXML);

//XML-Daten zuweisen
function parseXML(evt:Event)
{
	var xml_dokument:XML = new XML(evt.target.data);
	//Leerzeichen ignorieren
	xml_dokument.ignoreWhitespace = true;
	
	// Kommentare in der XML Datei ignorieren
	xml_dokument.ignoreComments = true;   

		var animation = new Object();
		animation.logourl = xml_dokument.Animation.Logo.text();
		animation.text1 = xml_dokument.Animation.Text1.text();
		animation.text1farbe = xml_dokument.Animation.Text1.attributes();
		animation.text2 = xml_dokument.Animation.Text2.text();
		animation.text2farbe = xml_dokument.Animation.Text2.attributes();
		Kundendaten[Kundendaten.length] = animation;

	ladeDaten(1);
}

//XML-Daten an Animation weitergeben
function ladeDaten(nr:int)
{
		var loader_logo:Loader = new Loader();
		loader_logo.load(new URLRequest(Daten[nr - 1].logourl));
		zeile1.text1.text = Kundendaten[nr - 1].text1;
		zeile1.text1.textColor = "0x" + Daten[nr - 1].text1farbe;
		zeile2.text2.text = Kundendaten[nr - 1].text2;
		zeile2.text2.textColor = "0x" + Daten[nr - 1].text2farbe;
		logoanzeige.addChild(loader_logo);
}
a.meisenberg ist offline   Mit Zitat antworten
Alt 16-12-2010, 15:39   #2 (permalink)
Neuer User
 
Benutzerbild von andrelehnert
 
Registriert seit: Oct 2007
Ort: Kölle
Beiträge: 1.229
Zitat:
//ganze URL des SWF-Files auslesen - http//www.domain.de/pfad/pfad/test.swf...
var urlString:String = root.loaderInfo.url;
loaderInfo wird erst später instanziert und ist an diesem Punkt deines Codes noch nicht bekannt

LG ANdré
__________________
Die Hoffnung stirbt zuletzt.
Aber sie stirbt.
andrelehnert ist offline   Mit Zitat antworten
Alt 17-12-2010, 08:57   #3 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 8
Danke für die schnelle Info

In dem Tutorial, das ich nachgebaut habe, war die Reihenfolge so festgelegt - wie kann ich den Fehler denn beheben?
ameisenberg ist offline   Mit Zitat antworten
Alt 17-12-2010, 09:08   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von ameisenberg Beitrag anzeigen
wie kann ich den Fehler denn beheben?
Indem Du den Code in eine Funktion (init) steckst, die erst dann ausgeführt wird, wenn dass Objekt zur Anzeigeliste hinzugefügt wurde:
PHP-Code:
//Klasse für URL-Anfragen importieren
import flash.net.URLRequest;
//Anzeigeklassen importieren
import flash.display.*;

var 
Kundendaten:Array = [];

function 
init(evt:Event null):void {
    
removeEventListener(Event.ADDED_TO_STAGEinit);
    
    
//ganze URL des SWF-Files auslesen - http//www.domain.de/pfad/pfad/test.swf...
    
var urlString:String root.loaderInfo.url

    
//Die regulären Ausdrücke zum Kürzen
    
var urlRegExp:RegExp = /^http[s]?://(www.|vorschau.)?([^/]+)/; //rausholen was zwischen // und dem nächsten / steht

    //ganze URL mit regulären Ausdrücken auf www.domain.de
    
var nurURL:Array = urlString.match(urlRegExp); //search? replace? match?

    
var loeschen:RegExp = /^http[s]?://(www.|voransicht.)?/;

    var 
domain:String nurURL[0].replace(loeschen"/system/animation/xml/");

    
// Pfad mit eigener SWF-URL kombinieren
    
var ganzeAdresse:String nurURL[0]+domain+".xml";

    
//XML Auslesen
    
var loader:URLLoader = new URLLoader();
    
loader.load(new URLRequest(ganzeAdresse));
    
loader.addEventListener(Event.COMPLETEparseXML);
}


//XML-Daten zuweisen
function parseXML(evt:Event) {
    var 
xml_dokument:XML = new XML(evt.target.data);
    
//Leerzeichen ignorieren
    
xml_dokument.ignoreWhitespace true;
    
    
// Kommentare in der XML Datei ignorieren
    
xml_dokument.ignoreComments true;   

    var 
animation = new Object();
    
animation.logourl xml_dokument.Animation.Logo.text();
    
animation.text1 xml_dokument.Animation.Text1.text();
    
animation.text1farbe xml_dokument.Animation.Text1.attributes();
    
animation.text2 xml_dokument.Animation.Text2.text();
    
animation.text2farbe xml_dokument.Animation.Text2.attributes();
    
Kundendaten[Kundendaten.length] = animation;

    
ladeDaten(1);
}

//XML-Daten an Animation weitergeben
function ladeDaten(nr:int) {
    var 
loader_logo:Loader = new Loader();
    
loader_logo.load(new URLRequest(Daten[nr 1].logourl));
    
zeile1.text1.text Kundendaten[nr 1].text1;
    
zeile1.text1.textColor "0x" Daten[nr 1].text1farbe;
    
zeile2.text2.text Kundendaten[nr 1].text2;
    
zeile2.text2.textColor "0x" Daten[nr 1].text2farbe;
    
logoanzeige.addChild(loader_logo);
}

// Dieser Code ruft init auf, sobald stage und root vorhanden sind
if(stageinit();
else 
addEventListener(Event.ADDED_TO_STAGEinit); 
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!

Geändert von Martin Kraft (17-12-2010 um 10:28 Uhr)
Martin Kraft ist offline   Mit Zitat antworten
Alt 17-12-2010, 10:05   #5 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 8
Danke Martin!

Jetzt gibt es jedoch ein Problem mit der Variable "Kundendaten".

Diese wird jetzt in der function "init" definiert, wird jedoch in der function "parseXML" verwendet - ist dort jedoch nicht mehr definiert.

Das Herausnehmen der Definition aus der function "init" führte dazu, dass der function "Falsche Anzahl von Argumenten. 1 erforderlich." zugewiesen werden.

Füge ich die Variable "Kundendaten" (Typ Array) dem Funktionsaufruf "if(Stage) init(Kundendaten);" hinzu, erscheint Error 1067 - "Implizite Umwandlung eines Werts des Typs Array in einen nicht verwandten Typ flash.events:Event".

Die Definition der Variable als "public" verursacht "Error 1114: Das public-Attribut kann nur innerhalb eines Pakets verwendet werden."

Also habe ich alles in ein package {..} gesetzt - "Error 1037:Pakete dürfen nicht verschachtelt sein."

Jetzt stehe ich am Ende meines Wissens - was kann ich noch versuchen?

Hier mein aktueller Stand:

Code:
package {
	
		//Klasse für URL-Anfragen importieren
		import flash.net.URLRequest;
		//Anzeigeklassen importieren
		import flash.display.*;
	
		
		 //XML Auslesen
		public var Kundendaten:Array = [];
		
	function init(evt:Event):void {
		removeEventListener(Event.ADDED_TO_STAGE, init);
		
		//ganze URL des SWF-Files auslesen - http//www.domain.de/pfad/pfad/test.swf...
		var urlString:String = root.loaderInfo.url; 
	
		//Die regulären Ausdrücke zum Kürzen
		var urlRegExp:RegExp = /^http[s]?:\/\/(www.|vorschau.)?([^\/]+)/; //rausholen was zwischen // und dem nächsten / steht
	
		//ganze URL mit regulären Ausdrücken auf www.domain.de
		var nurURL:Array = urlString.match(urlRegExp); //search? replace? match?
	
		var loeschen:RegExp = /^http[s]?:\/\/(www.|vorschau.)?/;
	
		var domain:String = nurURL[0].replace(loeschen, "/portal/animation/xml/");
	
		// Pfad mit eigener SWF-URL kombinieren
		var ganzeAdresse:String = nurURL[0]+domain+".xml";
	
	
	
		var loader:URLLoader = new URLLoader();
		loader.load(new URLRequest(ganzeAdresse));
		loader.addEventListener(Event.COMPLETE, parseXML);
	}
	
	//XML-Daten zuweisen
	function parseXML(evt:Event)
	{
		var xml_dokument:XML = new XML(evt.target.data);
		//Leerzeichen ignorieren
		xml_dokument.ignoreWhitespace = true;
		
		// Kommentare in der XML Datei ignorieren
		xml_dokument.ignoreComments = true;   
	
			var animation = new Object();
			animation.logourl = xml_dokument.Animation.Logo.text();
			animation.text1 = xml_dokument.Animation.Text1.text();
			animation.text1farbe = xml_dokument.Animation.Text1.attributes();
			animation.text2 = xml_dokument.Animation.Text2.text();
			animation.text2farbe = xml_dokument.Animation.Text2.attributes();
			Kundendaten[Kundendaten.length] = animation;
	
		ladeKundendaten(1);
	}
	
	//XML-Daten an Animation weitergeben
	function ladeKundendaten(nr:int)
	{
			var loader_logo:Loader = new Loader();
			loader_logo.load(new URLRequest(Kundendaten[nr - 1].logourl));
			zeile1.text1.text = Kundendaten[nr - 1].text1;
			zeile1.text1.textColor = "0x" + Kundendaten[nr - 1].text1farbe;
			zeile2.text2.text = Kundendaten[nr - 1].text2;
			zeile2.text2.textColor = "0x" + Kundendaten[nr - 1].text2farbe;
			logoanzeige.addChild(loader_logo);
	}
	
	if(Stage) init(Kundendaten);
	else addEventListener(Event.ADDED_TO_STAGE, init);  
} //Package ende
ameisenberg ist offline   Mit Zitat antworten
Alt 17-12-2010, 10:29   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Sorry - da waren noch zwei Fehler im Script. Ich hab's oben korrigiert. Probiers mal aus!
__________________
Viele Grüße // Martin

Martin Kraft // Interaktionsdesign

Hilfreiche Websites:
// Hilfe zur Adobe Flash Plattform
// ActionScript 2 Referenz
// ActionScript 3 Referenz
// ActionScript 3 Arbeitshandbuch
// weitere Flash Ressourcen

Bitte keine Flashfragen per PM oder Profilnachricht! Dafür ist das Forum da!
Martin Kraft ist offline   Mit Zitat antworten
Alt 17-12-2010, 11:50   #7 (permalink)
Neuer User
 
Registriert seit: Sep 2010
Beiträge: 8
Sorry, Martin, das Ergebnis ist nun:

PHP-Code:
TypeErrorError #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
    
at rentierschlitten_vorschau_fla::MainTimeline/init()
    
at rentierschlitten_vorschau_fla::MainTimeline/frame1() 
ameisenberg ist offline   Mit Zitat antworten
Alt 17-12-2010, 11:58   #8 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.139
nurURL kann auch null sein. Kannst du mit dem Debugger umgehen? Wenn nicht, dann traces setzen!
Omega Psi ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
as3, error #10009, instanzen, xml

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
Newbie-Hilfe: #Error 1009 ToniMahoni ActionScript 3 8 24-03-2011 13:46
Fehler beim Ausführen: TypeError: Error #1009 apfel007 Flex allgemein 5 11-11-2009 16:31
Fehler: Error #1009 senfkorn ActionScript 3 6 27-07-2009 10:03
Error #1009 n82 Flex programmieren 4 20-01-2009 15:24
Error 1009, Fehler wo, warum? venom.at ActionScript 3 4 28-10-2008 20:09


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele