Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-01-2012, 17:35   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Beiträge: 8
Problem mit Objekt-Instanziierung

Hallo liebe Community,

ich steh mal wieder vor einem Problem.
Ich hab es nun endlich geschafft einen Musikplayer zu basteln. dazu habe ich die Player.as und die dazugehörige Player.fla, in der ich die Symbole der einzelnen Button in der Bibliothek verwalte.
Nun versuche ich in meinem Hauptdokument Musikplayer.fla/as eine Instanz des Players im Konstruktor zu erstellen, doch leider scheitert mein Versuch an einer Nullpointer-Exception:

Code:
public function Musikplayer(){			
	player = new Player();
	addChild(player);			
}
Fehlermeldung:
Code:
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.
	at Player()
	at Musikplayer()
Ich kann das nicht ganz nachvollziehen. Ich habe alle Symbole in meiner Player.fla drin. Der Player müsste sie doch eg kennen? Leider funktioniert es auch nicht, wenn ich die Symbole ins Hauptdokument rüber kopiere.

Ich weiß leider nicht genau, wonach ich googeln muss. Vielleicht kann mir jemand mal ein Suchwort verraten oder mir die Lösung nennen, wenn es einfach ist.
norora ist offline   Mit Zitat antworten
Alt 08-01-2012, 17:44   #2 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
darf ich annehmen, dass du in in der Player.as im Konstruktor auf stage zugreifst?
denn die kennt Player zu dem Zeitpunkt noch nicht, sondern erst wenn es zur Bühne hinzugefügt wurde.
PHP-Code:
//mach mal aus folgendem:
public function Player()
{
    
//Code
}

//das hier:
public function Player()
{
    if(
stageinit();
    else 
addEventListener(Event.ADDED_TO_STAGEinit);
}

private function 
init(e:Event=null):void
{
    
removeEventListener(Event.ADDED_TO_STAGEinit);

    
//Code

__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist gerade online   Mit Zitat antworten
Alt 08-01-2012, 17:57   #3 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Beiträge: 8
Ah! Ich dank dir vielmals für deine rasche Antwort. Und natürlich hat es funktioniert .
Ich versteh nur leider nicht genau wieso.
Wärst du so nett und könntest mir das Prinzip dahinter erklären oder mir mal ein paar Begriffe nennen, damit ich danach googlen und tiefer in die Materie einsteigen kann.

*edit*:
Ich war leider etwas zu vorschnell.
Wenn ich jetzt nen Button drücke, werde ich leider wieder mit Fehlermeldungen überhäuft.
Code:
TypeError: Error #1006: stopDrag ist keine Funktion.
	at Player/endDrag()
*edit2*:
Ich hab den Übeltäter glaube ich gefunden.
In der init von dir, hab ich alles reingehauen was vorher im Konstruktor stand.
auch folgendes:
Code:
stage.addEventListener(MouseEvent.MOUSE_UP,endDrag);
Leider weiß ich auch hier nicht, wie ich das umgehen kann.

Geändert von norora (08-01-2012 um 18:02 Uhr)
norora ist offline   Mit Zitat antworten
Alt 08-01-2012, 18:24   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von norora Beitrag anzeigen
Ah! Ich dank dir vielmals für deine rasche Antwort. Und natürlich hat es funktioniert .
Ich versteh nur leider nicht genau wieso.
Wärst du so nett und könntest mir das Prinzip dahinter erklären oder mir mal ein paar Begriffe nennen, damit ich danach googlen und tiefer in die Materie einsteigen kann.
Die Eigenschaft stage ist in ANzeigeobjekten erst dann mit einem Wert belegt, wenn sie in der Anzeigeliste eine Verbindung zur stage haben - also in der IDE oder per addChild auf in ein anderes mit stage verbundenes Anzeigeobjekt gelegt wurden. Das ist im Konstruktor aber fast nie der Fall, weshalb man mit Event.ADDED_TO_STAGE darauf warten muss...

Weitere Informationen zur Anzeigeliste findest Du hier:
Adobe ActionScript 3.0 * Grundlagen der Programmierung von Anzeigeobjekten
Zitat:
Zitat von norora Beitrag anzeigen
Wenn ich jetzt nen Button drücke, werde ich leider wieder mit Fehlermeldungen überhäuft.
Code:
TypeError: Error #1006: stopDrag ist keine Funktion.
	at Player/endDrag()
__________________
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 (08-01-2012 um 18:25 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 08-01-2012, 18:38   #5 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Beiträge: 8
Aber ich hab Ja alles in der Init() drin, auch die besagte Zeile die Probleme macht.

Der Player erbt von MC und der Button auf den ich den Listener anwenden möchte erbt auch von MC.

Hier ist die endDrag() Methode:

Code:
private function endDrag(event:MouseEvent):void {
	btnVolumeline.stopDrag();
        btnVolumeline.removeEventListener(Event.ENTER_FRAME,checkingVolume);
}
norora ist offline   Mit Zitat antworten
Alt 08-01-2012, 18:43   #6 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.162
Zitat:
Zitat von norora Beitrag anzeigen
Der Player erbt von MC und der Button auf den ich den Listener anwenden möchte erbt auch von MC.
Sicher? Dann dürfte es diese Fehlermeldung nicht geben!
Ist btnVolumeline nicht z.B. ein SimpleButton? Diese besitzen keine Dragfunktionalität!
__________________
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 (08-01-2012 um 18:48 Uhr)
Martin Kraft ist gerade online   Mit Zitat antworten
Alt 08-01-2012, 19:06   #7 (permalink)
Neuer User
 
Registriert seit: Jan 2012
Beiträge: 8
Sry für den irreführenden Bezeichner. Du hast recht, es war mal ein simpleButton, aber als ich gemerkt hatte, dass es keine Dragfunktionalität darauf gibt, habe ich den Button in einen MovieClip geändert.

*edit*:
Ich könnt mich selbst Ohrfeigen. Es war tatsächlich ein simpleButton. Ich hab nur im falschen Dokument geschaut! Kein Kommentar.

- Ich danke Euch! -

Geändert von norora (08-01-2012 um 19:36 Uhr)
norora 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
TypeError: Error #1007: Versuchte Instanziierung für einen Nicht-Konstruktor. intercorni ActionScript 3 4 17-08-2009 15:07
Funktionen einer Funktion zur Instanziierung zuweisen flashslacks ActionScript 3 0 11-05-2009 08:50
Instanziierung - Kontrolle verhindert erneuten Funktionsaufruf flashslacks ActionScript 3 2 07-05-2009 12:57
Parameterübergabe bei instanziierung von Komponenten? Gabbeh Flex programmieren 2 18-02-2009 08:59
Frage zur dynamischen Instanziierung von verschachtelten MC's RotzLöffel Flash Einsteiger 6 28-04-2008 18:07


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

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


Copyright ©1999 – 2012 Marc Thiele