Viser opslag med etiketten Actionscript. Vis alle opslag
Viser opslag med etiketten Actionscript. Vis alle opslag

mandag den 16. januar 2012

Flash reload XML

Til min Flash vejr-widget skulle jeg bruge en opdater-funktion.
I Firefox virker det fint at starte scriptet forfra og dermed reloades ASP/XML'en.
Det virker bare ikke i IE - i hvert fald ikke lokalt.

Der kan med fordel bruges:

xmlFile.load("weather.asp?random="+getTimer()); 

Der sættes bare et timestamp på filnavnet og det dermed er filnavnet unikt og vil blive reload'et. Men en måske bedre måde, er denne med setInterval:
myLoadInteval = setInterval(LoadFile, 10000); //loader hvert 10 sek.

function LoadFile() {
  xmlData.load("weather.asp"); 
}

onsdag den 6. juli 2011

Flash vejr widget

Content on this page requires a newer version of Adobe Flash Player.

Get Adobe Flash player




Så lykkedes det endelig at få min flash-vejr-widget lavet. Der har været problemer undervejs, specielt pga. flash security-policy som gør det besværligt at hente variabler fra andre servere.
Jeg lavede et ASP-Script til at generere XML-siden server-side og dermed tror Flash at den får variablerne fra den lokale server og ikke en remote server.

Jeg henter data fra http://www.weather.com/, hvor jeg har oprettet en konto gratis.

Cross Domain Endelig version

Skal du have XML ind i Flash fra et andet domæne? Så kan du benytte følgende ASP-script:
<% 
url = "DIN-XML-FIL.XML"

set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") 
xmlhttp.open "GET", url, false 
xmlhttp.send "" 

sText = xmlhttp.responseText

Function HTMLDecode(sText)
  Dim I
    sText = Replace(sText, """, Chr(34))
    sText = Replace(sText, "<" , Chr(60))
    sText = Replace(sText, ">" , Chr(62))
    sText = Replace(sText, "&" , Chr(38))
    sText = Replace(sText, " ", Chr(32))
    For I = 1 to 255
    sText = Replace(sText, "&#" & I & ";", Chr(I))
  Next

  HTMLDecode = sText
End Function

response.Write (sText)
'Response.write server.HTMLEncode(xmlhttp.responseText)
%>

tirsdag den 5. juli 2011

Flash cross domain

Jeg har fundet løsningen på cross domain-problemet. Jeg lavede et ASP-script der henter XML-filen og derefter inddeler jeg den i et array.

<%
Response.Buffer = True
Dim objXMLHTTP, xml

Set objXML = Server.CreateObject("Microsoft.XMLHTTP")
url="http://www.DIN-URL.dk/din-xml-fil.xml"

objXML.Open "GET", url , False
objXML.Send

'Response.Write objXML.responseText

myArray = Split(objXML.responseText," ") 

Dim counter 
for counter = 0 to UBound(myArray)
  Response.Write(counter & ": " & myArray(counter) & "<br />")
next

Set objXML = Nothing
%>

Eller hvis der skal hentes XML direkte ind kan det gøres sådan her:

<%
url = "http://www.server.com/DIN-URL.XML"
set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP") 
xmlhttp.open "GET", url, false 
xmlhttp.send "" 

Response.write server.HTMLEncode(xmlhttp.responseText)
%>

fredag den 1. juli 2011

Flash crossdomain problem

Her er en work-around til problemet med at få adgang til XML-data i Flash fra et andet domæne. Jeg har ikke testet endnu.

Klik her!

Bruger man crossdomain.xml skal den ligge på den server man HENTER data fra

lørdag den 18. september 2010

Cross Domain

Har søgt en del på nettet omkring Cross Domain i Flash. Måske - jeg har ikke forsøgt endnu - kan problemet med at hente XML fra et andet sitet løses gennem et script der ligger lokalt på egen server. Måske en ASP-fil der konverterer XML'en - så tror jeg Flash vil tro at variablen kommer lokalt og ikke fra en anden server... Jeg har nu testet en del omkring crossdomain - og det kan godt lade sig gøre at generere et script i ASP/PHP/ASP.NET til at hente variabler ind i flash fra et andet domæne.