Zurück   Flashforum > Flex und AIR > Flex allgemein

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-06-2011, 12:25   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2011
Beiträge: 3
Error #1009 beim einbinden einer swf-datei mit player-funktionalität

Hi,

habe folgendes Problem:

Ich würde gerne eine Animation als swf in ein Flex projekt (Flash Builder 4) einbinden.
Dies funktioniert auch, wenn ich nur eine swf ohne actionscript verwende:

PHP-Code:
<mx:SWFLoader source="@Embed('../ani/animation1_deutsch_ohne_player.swf')"
Um einen Player für die animation zu implementieren habe ich in Flash 5.5 ein paar Buttons und einen Slider für einen Player erstellt. Dieser soll zu vordefinierten Frames vor- und zurückspringen können und die Geschwindigkeit über einen slider variieren.
Ein einfachs öffnen der swf direkt im browser funktioniert.
Binde ich jedoch die swf in mein flexprojekt (mit dem gleichen Befehl wie oben) erscheint der Fehler:

Zitat:
TypeError: Error #1009: Der Zugriff auf eine Eigenschaft oder eine Methode eines null-Objektverweises ist nicht möglich.



Hier der actionscript code:
----------------------------------------

PHP-Code:
import flash.events.MouseEvent;
import fl.controls.Slider;
import fl.events.SliderEvent;
import fl.controls.SliderDirection;

slider.addEventListener(SliderEvent.CHANGEspeedslider);

slider.value=stage.frameRate// Wert des Sliders auf den Wert der Stage Geschwindigkeit setzen
slider.minimum=5;
slider.maximum=100;
slider.snapInterval=10;
slider.liveDragging=true;

function 
stopHandler(e:MouseEvent):void {
 
stop();
}

function 
playHandler(e:MouseEvent):void {
 
play();
 
}
/* zahl = zahl + 60;
 if (zahl >= 676) {
  gotoAndStop(1);
 } else {
 gotoAndPlay(zahl);
 trace(zahl);
 trace(zahl >= 676);
 }*/


function backHandler(e:MouseEvent):void{
 
 if((
this.currentFrame >= 0)&&(this.currentFrame <= 310)){
  
gotoAndPlay(310);
  
trace(this.currentFrame);
 } else if((
this.currentFrame >= 310)&&(this.currentFrame <= 501)){
  
gotoAndPlay(501);
 } else
.
. <<
weitere Sprünge wurden übersichtlichkeitshalber entfernt>>
.
}

function 
speedslider(event:SliderEvent){
 
stage.frameRate event.target.value;

}

function 
backReturnHandler(e:MouseEvent):void {
 if((
this.currentFrame >= 0)&&(this.currentFrame <= 310)){
  
gotoAndStop(0);
  
trace(this.currentFrame);
 } else if((
this.currentFrame >= 310)&&(this.currentFrame <= 501)){
  
gotoAndStop(309);
 } else
.
. <<
weitere Sprünge wurden übersichtlichkeitshalber entfernt>>
.
}

function 
backEndHandler(e:MouseEvent):void {
 
gotoAndPlay(0);
}

stopButton.addEventListener(MouseEvent.CLICKstopHandler);
playButton.addEventListener(MouseEvent.CLICKplayHandler);
backButton.addEventListener(MouseEvent.CLICKbackHandler);
backButtonreturn.addEventListener(MouseEvent.CLICKbackReturnHandler);
backEndButton.addEventListener(MouseEvent.CLICKbackEndHandler); 

Hat jemand ne idee, woran das liegen könnte?
Danke schon mal für Hilfen von euch!

Geändert von Martin Kraft (21-06-2011 um 15:03 Uhr)
flash44 ist offline   Mit Zitat antworten
Alt 21-06-2011, 15:10   #2 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Willkommen im Forum!

Ich hab Dir Deinen Code mal als solchen markiert. So ist er für uns alle besser lesbar.


Ursache:
In der SWF wird auf stage zugegriffen. Diese ist aber erst dann definiert, wenn die SWF auch tatsächlich in der DisplayList hängt. Da das noch nicht der Fall ist, wenn dieses Script ausgeführt wird kommt's zu dieser Fehlermeldung.

Lösung:
Auf stage sollte erst aus einer Listener-Funktion herauszugegriffen werden, die auf das Event.ADDED_TO_STAGE wartet.

Mehr dazu findest Du in der Suchfunktion oder über die Referenz (Link s.u.).
__________________
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 21-06-2011, 18:55   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2011
Beiträge: 3
Super schon mal vielen Dank für die Antwort.
Könntest du mir das vllt. genauer erklären ? Wo muss ich das Event dispatchen in Flash im AS Teil oder in Flex wenn ich meine SWF per SWFLoader lade ?
Vielen Dank für die Hilfe.
Grüße
flash44 ist offline   Mit Zitat antworten
Alt 21-06-2011, 19:30   #4 (permalink)
Flash-Designer
 
Benutzerbild von Martin Kraft
 
Registriert seit: May 2006
Ort: Wiesbaden
Beiträge: 6.164
Zitat:
Zitat von flash44 Beitrag anzeigen
Könntest du mir das vllt. genauer erklären ? Wo muss ich das Event dispatchen in Flash im AS Teil oder in Flex wenn ich meine SWF per SWFLoader lade ?
Du musst in der SWF einfach alles, was nicht in einer Funktion steht, in eine Funktion schieben und diese dann bei Event.ADDED_TO_STAGE aufrufen:
PHP-Code:
import flash.events.MouseEvent;
import flash.events.Event;
import fl.controls.Slider;
import fl.events.SliderEvent;
import fl.controls.SliderDirection;

function 
init(event:Event null):void{
    
slider.addEventListener(SliderEvent.CHANGEspeedslider);
    
slider.value=stage.frameRate// Wert des Sliders auf den Wert der Stage Geschwindigkeit setzen
    
slider.minimum=5;
    
slider.maximum=100;
    
slider.snapInterval=10;
    
slider.liveDragging=true;
    
stopButton.addEventListener(MouseEvent.CLICKstopHandler);
    
playButton.addEventListener(MouseEvent.CLICKplayHandler);
    
backButton.addEventListener(MouseEvent.CLICKbackHandler);
    
backButtonreturn.addEventListener(MouseEvent.CLICKbackReturnHandler);
    
backEndButton.addEventListener(MouseEvent.CLICKbackEndHandler); 
}

if(
stageinit();
else 
addEventListener(Event.ADDED_TO_STAGEinit);

// Die anderen Funktionen 
__________________
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 21-06-2011, 20:29   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2011
Beiträge: 3
Ich danke dir wirklich über alles.
Super das war genau was ich gesucht habe.
Du hast gutes Karma.
Also nochmal vielen vielen Dank.
Einen schönen Abend noch.
flash44 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 #1009: Der Zugriff... XML einbinden - AS3 TinySpider ActionScript 3 9 13-01-2010 10:38
Fehler beim Ausführen: TypeError: Error #1009 apfel007 Flex allgemein 5 11-11-2009 16:31
[Flash CS4] Error #1009 audioteufel Flash Einsteiger 7 24-06-2009 20:11
Error #1009 beim ersten Aufruf danach klappst ?! ledirch Flex allgemein 6 04-12-2008 19:56
TypeError: Error #1009 beim einbinden einer swf Aemeath Flash Einsteiger 0 10-07-2008 16:35


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:42 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele