Jag har många gånger bråkat med att filer inte laddas in som de ska när man publicerar projekt i en live miljö. Det här är ju besvärligt och aningens svårt att felsöka. Jag har hittat mina verktyg för det och jag hoppas att om du har andra verktyg (ex för Mac) att du tipsar om dessa här nere.
Var uppstår problemen
Innan jag går in på vilka verktyg som kan vara bra att ha, tänkte jag lite snabbt dra ett scenario:
En HTML-fil laddar in en SWF-fil, SWF-filen laddar i sin tur in en XML-fil som håller sökvägar till bilder och FLV-filmer som sedan SWF-filen laddar in.
Se strukturen så här:
HTML -> SWF -> XML
SWF -> Bilder & FLV-filmer
Det är många problem som kan uppstå här. Om inte HTML-filen och SWF-filen ligger i samma katalog, så får man direkt problem med sökvägarna. Man kan ju tycka att bildernas sökvägar borde utgå från SWF-filen eftersom det är den som laddar in dem, tyvärr är det inte så. För att göra det hela ännu svårare så kan man tycka att FLV-filmernas sökvägar borde utgå från samma källa som bilderna. Ingalunda.
Bilder som laddas in av en SWF-fil utgår från HTML-filen, så om du har en relativ sökväg till, säg en bildmapp som heter ”img” som ligger i samma katalog som HTML-filen, så skulle du behöva ange ”img/minbild.jpg” som sökväg till bilden även om SWF-filen ligger någon helt på annat håll.
Filmer som spelas upp av en SWF-fil utgår från SWF-filen, konstigt nog, eller så är det hanteringen av bildernas sökvägar som är konstig. Hur som havre så måste du veta var din SWF-fil ligger i mappstrukturen för att kunna spela upp FLV-filmer med relativa sökvägar – om du vill spela dem progressivt och inte via en mediaserver, för då gäller helt andra saker.
Ok, jag måste veta var min SWF-fil är och var min HTML-fil är för att kunna mata in korrekta sökvägar till bilder och filmer i min XML-fil.
CMS och virtuella sökvägar
Det är många CMS som är uppbyggda kring virtuella sökvägar, vilket innebär att det kan vara omöjligt att med all säkerhet bestämma var alla dessa filer är när de visas utåt.
Tipset här är att använda absoluta sökvägar från sajtroten.
Kommunikation mellan olika domäner
Om filerna som ska laddas in från en annan domän finns det särskilda regler kring hur Flash får kommunicera/hämta/visa data från den domänen. Hur detta regelverk fungerar kan du läsa om här:
http://help.adobe.com/.../WS5b3ccc516d4fbf351e63e3d118a9b90204-7d23.html
Jag ska inte gå in på security sandbox och liknande ämnen men ett måste vi beröra, nämligen policy files, principfiler på svenska. Principfilen som beskriver om mediaservern tänker släppa ut filer till din SWF-fil heter Crossdomain och är av typen XML. Flash kommer att leta i roten efter crossdomain.xml, när den är inladdad, reglerna är tolkade och din domän är ”godkänd”, så får du ladda in filer från den andra domänen. Denna kontroll sköts helt automatisk och är inget du behml;ver bry dig om.
Jag har precis stött på en sajt som har ett antal domäner för varje språk och en domän (.com) som de andra domänerna hämtar gemensamma mediafiler från. Detta CMS är ett helt inbäddat system som är helt uppbyggt av virtuella sökvägar, någon åtkomst till sajtroten finns inte och det har inte stöd för crossdomain principfiler. I det här läget är det helt kört att hämta filer från mediaservern eftersom de aldrig kommer att släppas igenom till min SWF-fil. Dessutom har vi alla de andra problemen som jag tidigare beskrivit. En riktig soppa med andra ord.
Känner någon till sätt för att komma runt detta är jag i idel öra :)
Mina verktyg för felsökning
Fiddler (http://www.fiddler2.com/)
MonsterDebugger (http://www.monsterdebugger.com/)
FireBug som är en plug-in till Firefox (http://getfirebug.com/)
Flash Debug Player
















Kommentarer
Likaså med MonsterDebugger , grym program!
RSS-flöde för kommentarer på denna post.