webForumDet fria alternativet

Hämta variabler från annat ställe?

Flash

9 svar · 327 visningar · startad av bassebhu

Medlem sedan nov. 20016 480 inlägg
Frågan#1

Hur får jag över en variabel från ett movieclip i root, till en inladdad .swf i level2?

Anledningen till att jag vill göra det är för att jag i swf-filen i level2 vill ladda in ytterligare en fil, där filnamnet bestäms av en variabel...

Detta körs på en länk i root:

function myFunc(value) {
	loadMovieNum("filer.swf", 1);
	set(filmen, value); //"filmen" går inte att hämta i en inladdad fil i level2
}

När man kör det där laddas filen filer.swf in i level1, sedan skai sin tur ytterligare en fil laddas in, i level2.

Den sista filen tänkte jag ladda in med:

film = filmen;
loadMovieNum(film+".swf", 2);

Detta ligger alltså i filen filer.swf som i sin tur ligger i nivå1 i huvudfilen ;)

I stället för
set(filmen, value);
har jag testat bland annat dessa:
filmen = value;
var filmen = value;
_global.filmen = value;

och i stället för
film = filmen;
har jag testat bland annat:
film = _root.filmen;
film = _level0.filmen;
film = _root.musik_contents.filmen; //musik_contents är movieclippet där variabeln "filmen" återfinns

Inget av dem funkar =/. Testat alla kombinationer som går!

Vad gör jag för fel?

tack!

Medlem sedan juli 20021 363 inlägg
#2

Jag orkade inte läsa all text ;)

Men gör en liten chansning på vad du menar..

*tips*

Jag kan börja med att påpeka att jag själv föredrar att ladda mina swf in i ett tomt mc iastället för att ladda dem till en viss level... tycker det är mycket smidigare då man kan använda sig av allt ifrån alla mc egenskaper till fritt flytta runt mc't hur man vill i scenen...

Sen är det även mega simpelt att nå en variable vart än den ligger i din flashfilm ...

Ex.

Du har en main swf som du i sin tur laddar en ny swf (target mc.content). Vill du då komma åt en variabel placerad i din main-swf från din inladdade swf är det bara att lägga till _root.din-variabel .. då flash tolkar hela den inladdade swf som en vanlig mc-trädstruktur...

*tips*

:bire

Medlem sedan nov. 20016 480 inlägg
#3

ok, låter vettigt.

har inte tänkt på att det går att ladda in filer i movieclips :e
använder man target i stället för level då?

ska nog bygga om sen...

Medlem sedan juli 20021 363 inlägg
#4

naj.. var lite diffus där :)

Det är samma sak .. bara det att man byter ut _level0 mot sitt mc ..

ex.

loadMovie("swf/something.swf", _parent.content);
Medlem sedan nov. 20016 480 inlägg
#5

tac, löste movieclipsaken, men inte variabelproblemet.

Kör nu:

film = _root.musik.musik_contents.filmen;
loadMovie(film+".swf", _root.filer_text);

i en inladdad swf-fil.

kan man över huvud taget skriva "_root.musik.musik_contents.filmen;" ??
som jag fattat det: först root, sen musik-mc, sen i den musik_contents-mc och sedan vad variabeln heter (filmen). fel?

kan påpeka att stället där variabeln "filmen" skapas ligger i en funktion, om det skulle ställa till problem =/

tack!

Medlem sedan feb. 20002 612 inlägg
#6

bassebhu skrev:

tac, löste movieclipsaken, men inte variabelproblemet.

Kör nu:

film = _root.musik.musik_contents.filmen;
loadMovie(film+".swf", _root.filer_text);

i en inladdad swf-fil.

kan man över huvud taget skriva "_root.musik.musik_contents.filmen;" ??
som jag fattat det: först root, sen musik-mc, sen i den musik_contents-mc och sedan vad variabeln heter (filmen). fel?

kan påpeka att stället där variabeln "filmen" skapas ligger i en funktion, om det skulle ställa till problem =/

tack!

Om du har en variabel vid namn filmen i filmklippet musik_contents och det filmklippet ligger i filmklippet musik så har du skrivit rätt.
Om variabeln ligger i en funktion så beror det lite på hur du har skrivit.
Skriver du: var myVar = "Niclas";
så blir variabeln lokal i funktionen och du däremot skriver: myVar = "Niclas"; så blir den global. :)

Medlem sedan nov. 20016 480 inlägg
#7

jo det är sant. jag bör ha gjort rätt =/

men jag har iofs:
filmen = value; och inte myVar = "Niclas";
eftersom value är en variabel som hämtas från en textfil i musik_contents-clippet.

illa!

tack

Medlem sedan nov. 20016 480 inlägg
#8

AAAAAAAAAAAAAARGHHHHHHHH!!!!!!

FAAAAAAAN! får det ej att funka!!

har läst 5 kurser om variabler men det funkar ej!!!!

kör:
_root.musik.contents.filmen = "sakgjasglkjsadhg";

det funkar ej! musik är clippet som ligger i contents som innehåller variabeln filmen nånstans i tidslinjen.

det funkar om jag hämtar variabeln i clippet contents med:
filmen = "sakgjasglkjsadhg";

Vad gör jag för fel?! tycker det verkar otroligt logiskt med variabelfunktionen och tycker jag gör rätt men ICKE!

Medlem sedan feb. 2003108 inlägg
#9

Hej

jag tror problemet är att du inte ger namnet till clipet i flashfilen uten bara i biblioteket.
kontrolera så instancename är rätt.
det står nere i info-rutan när du markerar clipet i flashen...

nu har jag inte läst hela tråden då jag hamnade här när jag letade efter svar på en annan fråga... men detta är det jag tänkte på när jag läste lite av vad du skrivit

Medlem sedan nov. 20016 480 inlägg
#10

jag trodde också det först, men jag har namngivit objekten.

266 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)