Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-09-2008, 09:49   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2007
Beiträge: 4
Unhappy stage Zugriffsfehler

Hey Leute
Ich tüftle schon seit etwa 1-2 Stunden an einem Problem mit AS3...
Es gibt bei mir immer folgenden Fehler nach dem Kompilieren:
Zitat:
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
at MatrixCore()
at Matrix_fla::MainTimeline/frame1()
Ich habe es soweit eingrenzen können, so dass es am Zugriff auf stage.stageWidth und stage.stageHeight liegen muss. Meine Klasse in der Datei MatrixCore.as sieht folgendermassen aus:
Code:
package {
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import flash.display.Sprite;
	import flash.text.TextField;
	
	public class MatrixCore extends Sprite {
		private var MovieWidth:Number = 0;
		private var MovieHeight:Number = 0;
		private var RootIndex:Number = 0;
		//static var Snakes:Array = new Array();
		private var SnakeTimer:Timer;

		public function MatrixCore() {
			//var Char:Number;
			
			MovieWidth = stage.stageWidth;
			MovieHeight = stage.stageHeight;

			SnakeTimer = new Timer(70);
			SnakeTimer.addEventListener("timer", TimerHandler);
			SnakeTimer.start();
		}
	}
}
Der restliche Code ist alles auskommentiert bis auf die Funktionsdefinitionen. Also TimerHandler existiert schon.

Und wird so in der Matrix.fla (im 1. Frame) definiert:
Code:
import MatrixCore;
import flash.net.FileReference;

var MatrixController:MatrixCore = new MatrixCore();
Ich finde einfach den Fehler nicht, es scheint so als würde nicht richtig von Sprite geerbt oder so. Habe erst heute angefangen mit AS3 und übersetze zum lernen ältere Projekte von mir welche in AS2 geschrieben wurden. Also nicht zu fest hauen, wenn es ein ganz dummer Fehler ist
Wäre euch sehr dankbar, wenn ihr mir helfen könntet, ich dreh hier sonst noch durch

Cu
MuchoMikE

Geändert von MuCHo_Mike (01-09-2008 um 09:51 Uhr)
MuCHo_Mike ist offline   Mit Zitat antworten
Alt 01-09-2008, 10:46   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Die Fehlermeldung besagt, dass ein Objekt (noch) nicht oder nicht mehr existiert. Versuch mal das Objekt durch trace-Befehle einzugrenzen.
  Mit Zitat antworten
Alt 01-09-2008, 11:09   #3 (permalink)
DeRailed
 
Benutzerbild von klickverbot
 
Registriert seit: Sep 2006
Beiträge: 321
Das Problem liegt wahrscheinlich daran, dass du zu einem Zeitpunkt auf die stage-Referenz zugreifst, an dem sie noch gar nicht gesetzt ist. Das geschieht nämlich erst dann, wenn das Objekt der Display List hinzugefügt wird, also wenn du addChild() aufrufst. Die Dokumentenklasse ist in dieser Hinsicht eine Ausnahme, hier ist die stage schon im Konstruktor verfügbar.

Eine Forensuche sollte unzählige weitere Fragen und Antworten in diese Richtung zu Tage fördern.
__________________
Zum Thema Code im Forum posten:
Mit den [AS]-Tags bekommt man eine tolle farbige Anzeige, bei der sogar die Zeilennummern eingetragen sind.

Wie man aus [AS]-Tags Code direkt ohne die Zeilennummern kopiert:
Einfach auf den 'Beitrag zitieren'-Knopf drücken und Spaß mit Copy&Paste haben ;)
klickverbot ist offline   Mit Zitat antworten
Alt 01-09-2008, 11:43   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2007
Beiträge: 4
Ah danke, das bringt schon bisschen mehr Licht ins Dunkel
Dennoch weiss ich nicht genau, wann ich aufs Stage Objekt zugreifen könnte... Habt ihr vielleicht ein Codebeispiel?
Oder muss ich da bereits ein Event verwenden (hab da bei einem Beitrag etwas gelesen)
Die Suche hab ich vorhin schon mit diversen Stichworten bemüht, aber nichts gefunden was mir weiterhelfen könnte.

Noch eine Frage: Was ist mit der Dokumentenklasse gemeint? Ist das der Code der in einem Frame geschrieben wird? Oder eine Klasse die fest mit der .fla Datei verknüpft ist?

Cu
MuchoMikE
MuCHo_Mike ist offline   Mit Zitat antworten
Alt 01-09-2008, 11:51   #5 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.141
Einen EventListener für den Event Event.ADDED_O_STAGE registrieren.

Die Dokumenten Klasse definiert eine Klasse für die generierte SWF.
Omega Psi ist offline   Mit Zitat antworten
Alt 01-09-2008, 14:01   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2007
Beiträge: 4
Vielen Dank für eure Hilfe
Habs jetzt hingekriegt, indem ich die Bühnenbreite und -höhe der Klasse direkt übergeben habe und in der .fla im ersten Frame nach der Instanzierung addChild angewendet habe. Wäre aber nicht ohne eure Hilfe darauf gekommen, dachte die stage Referenz wäre von Anfang an vorhanden und nicht dass noch ein addChild benötigt wird

Jaja, ich werde noch viel Spass mit AS3 haben, und wenn ich irgendwo wieder hänge, weiss ich ja wo ich fragen muss

Cu
MuchoMikE
MuCHo_Mike 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:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele