Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.
Toon posts:

[Flash AS3.0] Uitlezen variabele vanuit een ingeladen swf

Pagina: 1
Acties:

Verwijderd

Topicstarter
Gegroet,

Ik heb het volgende stukje code in mijn main geplakt:

code:
1
2
3
4
// Code for adding the file
var loader:Loader = new Loader();
loader.load(new URLRequest("test.swf"));
this.addChild(loader);


Hierin wordt een .swf ingeladen (test.swf) waarin 1 variabele staat namelijk:
code:
1
var test:String = "hoi";


Nu wil ik deze variabele uitlezen binnen mijn main, maar dit lukt me gewoonweg niet ;(

code:
1
2
trace (loader.content.test);
// geeft een error ;(


Iemand enig idee? Ik moet nogal wennen aan AS3, heb me al helemaal de griep gezocht online maar ben er nog steeds niet uit gekomen (het enige dat ik weet is dat ik het via de loader.content moet doen, maar mijn AS3.0 is niet zo best :( :(

  • Puc van S.
  • Registratie: Maart 2002
  • Laatst online: 14-11 16:16
post eens wat meer van de code?

Kan het zijn dat je de waarde test al opvraagt voordat de externe SWF is ingeladen? (maw, heb je een eventhandler op de event.complete van de loader geplaatst)

en ook niet onbelangrijk: Wat van error geeft die.

[http://www.okbreijnen.nl] [Overwatch] [Cennahysh]


Verwijderd

Topicstarter
Dit is de hele code :D

Ik ben bezig om een test-main te maken en dit vervolgens toe te passen op meerdere en andere externe swf files.

De waarde test is dus nog nergens opgevraagd, ik heb verder geen addEventListener op de Event_COMPLETE geplaatst (is dit nodig?)

De code is een compile error, wat ik doe klopt volgens mij gewoon niet :X

code:
1
2
trace (loader.content.test);
// geeft een compile error

Die werkt dus gewoon niet denk ik, als ik er dit van maak:
code:
1
2
trace)this.content.test);
//ik verwijs nu naar de parent van de child


Krijg ik deze error:
TypeError: Error #1010: A term is undefined and has no properties.
at ShowCase_fla::MainTimeline/tracking()
De tracking is een function waarin de trace staat en is zo gedefineerd:
code:
1
2
3
4
5
6
// EventListeners
this.addEventListener(Event.ENTER_FRAME, tracking);

function tracking(evt:Event):void {
    trace(this.content.test);
}


Ik heb het gevoel dat ik totaal verkeerd bezig ben. Ik krijg ook met geen enkele mogelijkheid invloed op de ingeladen swf (bijvoorbeeld stop(); of play(); )

Ik wil gewoon mijn oude AS2 loadMovie terug ;(

  • Puc van S.
  • Registratie: Maart 2002
  • Laatst online: 14-11 16:16
probeer de volgende code eens:

Flash ActionScript:
1
2
3
4
5
6
7
8
// Code for adding the file
var loader:Loader = new Loader();
loader.contentloaderinfo.addEventListener(Event.Complete, SWFLoaded);
loader.load(new URLRequest("test.swf"));

function SWFLoaded(evt:Event):void {
    trace(evt.content.test);
}


De error spreekt namelijk voor zich, je vraagt aan this.content de waarde test op, echter is this niet het loader object maar de instantie van de class waarvan uit je de aanroep doet.

[http://www.okbreijnen.nl] [Overwatch] [Cennahysh]


Verwijderd

Topicstarter
tnx voor je replies tot nu toe in ieder geval.

Als ik jou suggestie in mijn code implementeer krijg ik de volgende error:
1119: Access of possibly undefined property content through a reference with static type flash.events:Event.
Mij is het compleet onduidelijk wat dit nu inhoud :X

[ Voor 9% gewijzigd door Verwijderd op 20-10-2008 22:03 ]


  • alienfruit
  • Registratie: Maart 2003
  • Laatst online: 23:24

alienfruit

the alien you never expected

code:
1
trace( "test=" + Loader(event.target).content.test );



Zou waarschijnlijk wel werken... je event variabele heeft natuurlijk niet de content-property van je loader.
Je kan natuurlijk ook gewoon je loader instantie gebruiken:
code:
1
trace( "test=" + loader.content.test );

[ Voor 5% gewijzigd door alienfruit op 20-10-2008 22:17 ]


Verwijderd

Topicstarter
;(

Ik ben de weg nu helemaal kwijt.

main.swf, 1 frame, deze code:
code:
1
2
3
4
5
6
7
8
// Code for adding the file
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, SWFLoaded);
loader.load(new URLRequest("test.swf"));

function SWFLoaded(evt:Event):void {
    trace( "test=" + loader.content.test );
}


test.swf, 1 frame, deze code:
code:
1
var test:String = "test";


Uitvoering:
code:
1
trace( "test=" + loader.content.test );

Levert de volgende foutmelding op:
1119: Access of possibly undefined property test through a reference with static type flash.display:DisplayObject.
code:
1
trace( "test=" + Loader(evt.target).content.test );

Levert ook hetzelfde op:
1119: Access of possibly undefined property test through a reference with static type flash.display:DisplayObject.
Wat doet die .content eigenlijk? Ik snap volgens mij niet eens helemaal hoe die hele loader in elkaar steekt :X

Ik wil best de .fla's uploaden maar eigenlijk staat hier alles wat ik tot nu toe gemaakt heb -_-''. Iemand de oplossing voor handen? Dit kan toch niet zo belachelijk moeilijk zijn?

  • Dark Blue
  • Registratie: Februari 2001
  • Laatst online: 20:20

Dark Blue

Compositionista!

Alpenmeisje

Deze krijgt wel even een schopje over de schutting, naar

Webdesign, Markup & Clientside Scripting
Voor problemen die te maken hebben met HTML, CSS, clientsided scripting, Flash, enz.

In dit forum is het ook wat waarschijnlijker dat je andere Flashgebruikers tegenkomt.
:w

heidiulrich.nl | adventura.nl : rugzakavonturen | pathwise.nl : prepping geeks to get jobs


Verwijderd

Topicstarter
Tnx voor de move, ik plaats mij Flash-vragen _altijd_ in het verkeerde subforum :D

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 21 oktober 2008 @ 09:51:
Tnx voor de move, ik plaats mij Flash-vragen _altijd_ in het verkeerde subforum :D
Daarom hebben we de moeite genomen het haarfijn uit te leggen: Waar hoort mijn topic? ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Verwijderd

Topicstarter
code:
1
trace(evt.target.content.test);


Dit is blijkbaar het juiste trace-command. (lang leve google+trailnerror :X

Hiermee kan ik dus in de Event.COMPLETE de waarde van 'test' uitlezen. Maar nu vraag ik me af of het mogelijk is om de waarde uit te blijven lezen (zeg dat mijn test.swf niet uit 1 frame bestaat maar uit 10, elk met hun eigen variabele'

  • XangadiX
  • Registratie: Oktober 2000
  • Laatst online: 26-05 15:01

XangadiX

trepanatie is zóó kinderachtig

code:
1
2
3
4
5
6
private var MCRef:MovieClip

(...)

MCref = evt.target.content as MovieClip
trace(MCref.test)  // .toString() wellicht er bij ?


zou moeten werken?

Stoer; Marduq

Pagina: 1