Avatar billede karsten_larsen Praktikant
02. november 2003 - 12:49 Der er 17 kommentarer og
2 løsninger

Gøre variable brugbar i flash fra asp

Del 1)(40 point)

I forbindelse med funktionen
  new Color(mit_movieclip1).setRGB(var1);
skal jeg hente værdier ind, når jeg definerer var1 i frame 1.
f.eks. var1 = "0x3366CC"; er der ingen problemer.

Henter jeg den samme værdi ind fra en asp side, får jeg problemer.
Var1 kan sagtens skrives til et dynamisk tekst felt MEN det vil ikke virke i new Color funktionen!

Min asp ser således ud:
<% Response.Write  "var1=0xFFFF00&var2=var0x3366CC&var3=var0xCCCCCC&kontrol=ok&" %>


Min flash ser således ud:
frame 1
loadVariables("data.asp?nocache= + random(65000)","");
frame 2
//tom
frame 3
// løkke så alt hentes ind
if (kontrol eq "ok") {
    gotoAndPlay(4);
    } else {
    gotoAndPlay(2);
}
Frame 4
  new Color(mit_movieclip1).setRGB(var1);
  new Color(mit_movieclip2).setRGB(var2);
  new Color(mit_movieclip3).setRGB(var3);


Del 2)(40 point)
Min løkke i frame 3 kommer ikke videre, når swf-filen kører. Hvorfor ikke?



Jeg bruger MX.

??:-)karsten_larsen
Avatar billede barklund Nybegynder
02. november 2003 - 15:48 #1
Del 1:

Hvad er det der ikke virker? Din var2 og var3 starter med "var" i værdien... (?)

Del 2: Forklar nærmere - jeg forstår det ikke? "kører"? Hvordan tester du så?
Avatar billede karsten_larsen Praktikant
02. november 2003 - 16:55 #2
Del 1)

Sætter jeg værdier i flash i frame 1 f.eks.
var1 = "0x3366CC"; er der ingen problemer, mit movieclip skifter farve.Perfekt

Henter jeg værdien via asp, går det galt. Den værdi jeg henter kan læses af et dynamisk tekstfelt, men ikke i new Color(mit_movieclip1).setRGB(var1);

2) Jeg har testet indtil videre uden frame 2, men har læst at det er en god ide at lave en løkke, når data skal hentes udefra.

??:-) karsten_larsen
Avatar billede karsten_larsen Praktikant
02. november 2003 - 16:57 #3
Vil det hjælpe at få det som en rar-fil til download?

:-) karsten_larsen
Avatar billede barklund Nybegynder
02. november 2003 - 17:03 #4
Hvilken version af Flash bruger du?
Avatar billede karsten_larsen Praktikant
02. november 2003 - 17:14 #5
MX
Avatar billede karsten_larsen Praktikant
02. november 2003 - 17:30 #6
asp-fil
fla-fil
swf-fil
html-fil

kan hentes her http://users.cybercity.dk/~ccc27244/flash.rar
Avatar billede bootlab Nybegynder
03. november 2003 - 12:18 #7
Det skal formateres som en string, ændre flg.:

Response.Write("&var1=0xFFFF00&var2=0x3366CC&var3=0xCCCCCC&kontrol=ok&")

til

Response.Write("&var1=""0xFFFF00""&var2=""0x3366CC""&var3=""0xCCCCCC""&kontrol=ok&")

så virker det :)

/brio
Avatar billede barklund Nybegynder
03. november 2003 - 12:23 #8
De er nu i forvejen strings - hvis du putter quotes omkring, bliver det bare til escapede quotes i strengen:

Altså i flash:

var1 = "\"0xffff00\"";

Hvilket ikke er ønsket...

Fejlen ligger et andet sted (som jeg dog ikke lige har tid til at kigge efter)
Avatar billede bootlab Nybegynder
03. november 2003 - 12:36 #9
hmm.. mybad..

det virker her hos mig med denne :

Response.Write ("&var1=0xFFFF00&var2=0x3366CC&var3=0xCCCCCC&kontrol=ok")

og din kode i frame 3 virker hvis du laver den sådan:

if (kontrol == "ok") {
    gotoAndStop(4);
    } else {
    gotoAndStop(2);
}
Avatar billede kragekjaer Praktikant
03. november 2003 - 14:01 #10
Måske skulle du bruge loadVars, og lave en onLoad-funktion, dvs. en eventhandler som trigger når data er hentet
Avatar billede karsten_larsen Praktikant
03. november 2003 - 19:05 #11
-> bootlab

Jeg har lavet, det som du sagde. Men det virker ikke. Prøv at se denne rar. Som indeholder asp, fla, swf og html filen.

http://users.cybercity.dk/~ccc27244/flash_ver2.rar

??:-)
Avatar billede karsten_larsen Praktikant
03. november 2003 - 19:06 #12
-> booblab: gotoAndstop kører i løkke hele tiden
Avatar billede karsten_larsen Praktikant
03. november 2003 - 19:26 #13
-> kragekjær
Jeg er lidt novice i flash sammenhæng. Hvordan vil det se ud?

Ellers et flot roadtrip du har lavet på din hp.

:-) karsten_larsen
Avatar billede kragekjaer Praktikant
03. november 2003 - 20:17 #14
var c = new LoadVars();
c.onLoad = function() {
  gørNoget(); 
  }
};
c.send("dbquery.asp","","POST");

eller læs næmere her: http://actionscript-toolbox.com/samplemx_loadvars.php
Avatar billede karsten_larsen Praktikant
04. november 2003 - 09:27 #15
I følge http://actionscript-toolbox.com/colorobject.php skal strengen være en numerisk værdi!

Så burde løsningen være

  sRed = "66";
  sGreen = "99";
  sBlue = "cc";
  sColor = sRed + sGreen + sBlue;
  nColor = parseInt(sColor, 16);
  cCircle.setRGB(nColor);

Har ikke testet det, men det virker lidt omstændigt. Der må da være en mere enkel måde.
Avatar billede karsten_larsen Praktikant
05. november 2003 - 14:18 #16
Jeg fundet en løsning på problemet

Det er følgende, at skrive var1, etc ind i html via asp

<param name=movie value=\"flash.swf?var1=0xCCCCCC&var2=0x3366ff&var3=0xFFFFFF etc.

Jeg er stadig interesseret i at forstå, hvorfor det andet ikke vil fungere. Så jeg lukker ikke spørgsmålet endnu.

:-) karsten_larsen

Har oprettet et nyt ? http://www.eksperten.dk/spm/423556
Avatar billede barklund Nybegynder
05. november 2003 - 14:51 #17
Det er ret nemt at bruge LoadVars - så det vil jeg nu foreslå dig at gøre :)
Avatar billede barklund Nybegynder
06. november 2003 - 09:59 #18
OK :)
Avatar billede karsten_larsen Praktikant
06. november 2003 - 10:29 #19
Jeg har delt point mellem kragekjaer og barklund.
1) kragekjaer for at sætte fokus på LoadVars
2) barklund for at gøre LoadVars helt konkret som tillæg til et andet spørgmål [http://www.eksperten.dk/spm/423556]

Til andre som kan bruge dette til noget er den brugbar løsning

farvFelter = new LoadVars();
farvFelter.onLoad = setVariables;
farvFelter.load("data.asp");

farver = new Array();
farver[1] = "0xFFFF00";//gul
farver[2] = "0xFF0000";//rød
farver[3] = "0x3300FF";//blå
farver[4] = "0x00CC00";//grøn

function setVariables() {
    var i, antal_vars = 3;
    var v, coloren, mc;
    for (i = 1; i <= antal_vars; i++) {
        v = this["var"+i];
        coloren = farver[v];
        mc = _root["movieclip"+i];
        new Color(mc).setRGB(coloren);
    }
}


hvor data.asp er
<% Response.Write  "var1=2&var2=3&var3=4" %>

:-)) karsten_larsen
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester