[ dusan.tatic @ 25.10.2009. 17:24 ] @
Zdravo svima! Imam problem sa komunikacijom i prenosenja vrednosti iz jednog swf-a(loader.swf) koji ucitava drugi swf(loaded.swf). kako da prenosim promenljive i ucitavam funkcije iz jednog u drugi swf. Da li neko moze na sledecen primeru da mi objasni gde gresim?

loader.swf
Code:

var loader:Loader = new Loader();
loader.load(new URLRequest("loaded.swf"));

load_btn.addEventListener(MouseEvent.CLICK, loadSwf);

function loadSwf(event:MouseEvent):void
{
    addChild(loader);
    loader.content.bravo();//ovde je greska, ne prepoznaje funkciju ucitanog swf-a. Upomoc!!!
}

function works():void
{
    trace("It’s Working");
}



loaded.swf
Code:

btn.addEventListener(MouseEvent.CLICK, closeWindow);

function closeWindow(event:MouseEvent):void
{
    this.parent.parent.works();//i ovde je greska Kako ovo naciniti da radi?
}

function bravo():void
{
    trace("bravo");
}


[ StarCraft @ 26.10.2009. 11:53 ] @
Mislim da svi iamju problema sa kontrolisanjem externih swf-ova :)

Struktura bi trebala da bude sledeća:
loader -> mainTimelineUcitanogSWF-a

Tako da ne možeš loaderu da kažeš da odradi neku metodu, nego moraš da kastuješ loader kontent kao muviKlip.

A što se tiče poziva iz učitanog SWF-a probaj da dodaš još jedan .parent
[ gonzos @ 26.10.2009. 14:17 ] @
Naravno da mozes komunicirati izmedju 2 .swf-a.
U tu svrhu koristimo LocalConnection()

Primjer:

Code:

var konekcija = new LocalConnection();
konekcija.client = this;//this=maintimeline


//provjeravamo konekciju
try {
    konekcija.connect("_myMovie");
} catch (error:ArgumentError) {
    trace("Can't connect...the connection name is already being used by another SWF");
}

function sayHallo(msg:String){

trace(msg)//return Hallo

}



//ucitani film

var lc=new LocalConnection();
lc.send("_myMovie","sayHallo","Hallo");


[ dusan.tatic @ 26.10.2009. 21:57 ] @
Sledio sam uputstva, uradio ispravke za navedeni primer i ovo radi!!!
Nadam se da je to ono sto si mi predlozio a ako nije zamolio bih te da mi napises ispravke za prilozeni kod. Hvala puno!!!

loader.swf

Code:

var loader:Loader = new Loader();
var movieclp:MovieClip;

loader.load(new URLRequest("loaded.swf"));

load_btn.addEventListener(MouseEvent.CLICK, loadSwf);

function loadSwf(event:MouseEvent):void
{
    addChild(loader);
    trace(loader.content);
    movieclp=MovieClip(loader.content);
    movieclp.bravo();
    
}

function works():void
{
    trace("It’s Working");
}


loaded.swf

Code:

btn.addEventListener(MouseEvent.CLICK, closeWindow);

function closeWindow(event:MouseEvent):void
{
    MovieClip(this.parent.parent).works();
}

function bravo():void
{
    trace("bravo");
}


Potrudicu se da probam i sa LocalConnection(). Hvala vam!!!