Zurück   Flashforum > Flash > ActionScript > ActionScript 3

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-07-2010, 11:57   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 13
Unhappy Zugriff aus .as Datei auf Variablen aus .fla?

Hallo nochmal folgendes eigentlich simples Problem hat sich mir aufgetan:

Ich habe ein .fla Datei test.fla in dieser erstelle ich ein Array:

Code:
var liste:Array=new Array();
Ebenfalls habe ich eine .as Datei(Klasse) pictureLoader.as welche auf die Datei test.fla zielt.
Diese Datei(KLasse) pictureLoader wird auch in der Datei test.fla aufgerufen:

Code:
var myLoader=new pictureLoader();
addChild(myLoader);
Der Inhalt der Klasse pictureLoader ist folgender:

Code:
package {
   import flash.display.Sprite;
   import flash.events.*;
   import flash.net.URLLoader;
   import flash.net.URLLoaderDataFormat;
   import flash.net.URLRequest;
   
   public class pictureLoader extends Sprite{
	   
	   public function pictureLoader(){
	   
	   var request:URLRequest=new URLRequest("pictures.txt");
	   var loader:URLLoader=new URLLoader();
	   loader.load(request);
	   
	   loader.addEventListener( Event.COMPLETE, handleComplete );
	   
	   loader.dataFormat = URLLoaderDataFormat.TEXT; 
   	   }
	   
	   public function handleComplete(event:Event){
		   
	   var loader:URLLoader = URLLoader(event.target); 
	   var results:Array=loader.data.split(/&/);
	   return results;
	   }
		   
   }
}
Der Inhalt der Datei pictures.txt lautet schlicht und einfach:

Code:
ground.jpg&smili.jpg&test.jpg
Nun würde ich gerne das Array results welches durch das splitten in die einzelnen Dateinamen entsteht in das Array liste übertragen, damit ich die Dateinamen durch as3 in der Datei test.fla weiterverarbeiten kann.

Ich hoffe nun habe ich mein Anliegen klarer geschildert.

lg primat
primate ist offline   Mit Zitat antworten
Alt 16-07-2010, 13:59   #2 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
du hast doch schon alles!!??

public function handleComplete(event:Event){
var loader:URLLoader = URLLoader(event.target);
var results:Array=loader.data.split(/&/);
// so wie du hier das array in results schreibst, so kannst du das auch in jede andere zu diesem zeitpunkt bekannte variable schreiben bzw. funktion übergeben.

return results;
// ein event gibt nichts zurück. wohin sollte dieses auch was zurückgeben? an den server?
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 16-07-2010, 14:49   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 13
Ja klar ich kann es an jeder global Variable im package übergeben was ich jetzt auch mache.

Nur wenn ich aus dem Hauptfilm auf diese Variable durch

myLoader.liste

oder:

myLoader.returnListe (die Function returnListe macht nicht als
Code:
return liste;
)

zugreifen will kommt folgender Fehler.
ReferenceError: Error #1069: Eigenschaft returnListe für pictureLoader nicht gefunden und es ist kein Standardwert vorhanden.
at dynamischerLoader_fla::MainTimeline/frame1()

weswegen?
primate ist offline   Mit Zitat antworten
Alt 16-07-2010, 16:36   #4 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
ich sehe nicht ob und wann du etwas in myLoader.liste reinschreibst. nicht an den scriptfetzen, die du veröffentlicht hast.
wenn nichts drinn ist, dann kann man auch nichts rausholen.

und zugriff hast du sowieso erst, wenn zeitlich gesehen:
handleComplete
aufgerufen wurde. vorher ist auch noch nichts da.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 17-07-2010, 10:37   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2010
Beiträge: 13
-.- das Problem war das weder de Variable liste noch die funktion returnListe public waren -.- ziemlich dummm....

aber das von dir angesprochene Problem habe ich immer noch... wie kann ich denn warten bis handleComplete aufgerufen wurde??
primate ist offline   Mit Zitat antworten
Alt 17-07-2010, 17:09   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.324
Zitat:
Zitat von primate Beitrag anzeigen
wie kann ich denn warten bis handleComplete aufgerufen wurde??
ei genau dafür ist doch das event da. zeitlich nach handleComplete ist das zeugs angekommen. und dann kannst du es benützen. ab dem zeitpunkt ab dem handleComplete aufgerufen wurde. der computer wartet für dich - in der zwischenzeit kannst 'du' andere sachen machen. wenns dann soweit ist, dann wirft der computer das event.
man kann nicht eher in den zug einsteigen, als dass der im bahnhof angekommen ist. irgendwann heisst es dann (event) 'bitte einsteigen' und dann kann man halt.

wenn du deinen kaosladen nicht im griff hast ;-) dann musst du halt vorher testen, ob die sachen existieren, die du benützen willst:
Code:
if (myLoader && myLoader!=null) {
  // existiert und da scheint was drinn zu sein
  if (myLoader.returnListe && myLoader.returnListe!=null) {
    // juchhu, da isses
    trace(myLoader.returnListe);
  } else {
    // kein myLoader.returnListe, was soll dann passieren?
  }
} else {
  // kein myLoader, was soll dann passieren?
}
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (18-07-2010 um 02:13 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 17-07-2010, 18:05   #7 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
um das ganze an dieser Stelle etwas abzukürzen:
ActionScript:
  1. package {
  2.     import flash.events.EventDispatcher;
  3.     import flash.events.Event;
  4.     import flash.net.URLLoader;
  5.     import flash.net.URLLoaderDataFormat;
  6.     import flash.net.URLRequest;
  7.  
  8.     public class PictureLoader extends EventDispatcher
  9.     {
  10.         public static const DEFAULT_URL:String = "pictures.txt";
  11.        
  12.         private var _url:String;
  13.         private var _liste:Array;
  14.        
  15.         public function get url():String {
  16.             return _url;
  17.         }
  18.        
  19.         public function get liste():Array {
  20.             return _liste;
  21.         }
  22.        
  23.         public function PictureLoader(url:String=null):void {
  24.             this._url = ((url!=null && url!="")? url: DEFAULT_URL);
  25.  
  26.             update();
  27.         }
  28.  
  29.         public function update():void {
  30.             var loader:URLLoader = new URLLoader();
  31.                 loader.dataFormat = URLLoaderDataFormat.TEXT;
  32.                 loader.addEventListener(Event.COMPLETE, handleComplete);
  33.                 loader.load(new URLRequest(_url));
  34.         }
  35.        
  36.         //wieso sollte diese Funktion denn public sein?
  37.         private function handleComplete(e:Event):void {
  38.             var loader:URLLoader = URLLoader(e.target);
  39.            
  40.             //split('&') vs. split(/&/)
  41.             //ein String dürfte deutlich performanter sein alr eine RegExp.
  42.             _liste = loader.data.split('&');
  43.             dispatchEvent(new Event(Event.COMPLETE));
  44.         }
  45.     }
  46. }
und
ActionScript:
  1. var myLoader:PictureLoader = new PictureLoader();
  2.     myLoader.addEventListener(Event.COMPLETE, onPicsLoaded);
  3.  
  4. function onPicsLoaded(e:Event):void {
  5.     trace("Bilder geladen:", myLoader.liste);
  6.     // Bitte jetzt das verarbeiten dieser Liste anstossen!!!
  7. }
  8.  
  9. /*
  10. myLoader.update();
  11. myLoader.update();
  12. myLoader.update();
  13. */

@primate: kannst du den Quelltext nachvollziehen?
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
.as, .fla, klassen, variablen auslesen

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
Zugriff auf GET Variablen native Flash Einsteiger 1 25-09-2006 14:27
Zugriff auf XML-Datei (knoten) Kabo Softwarearchitektur und Entwurfsmuster 9 31-01-2006 01:42
zugriff auf variablen svh ActionScript 1 4 10-04-2003 16:29
Zugriff auf geladene swf datei? BiMSi Flash 4 und Flash 5 1 10-03-2002 00:28
Zugriff auf Variablen !?!?! PLEASE HELP ! :-(((( Peppi_der_Arme ActionScript 1 4 14-02-2002 16:56


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:48 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele