Osadzanie treści SWF w kodzie HTMLAdobe AIR 1.0 i wersje późniejsze W aplikacji AIR treść SWF można osadzić w treści HTML tak, jak przy użyciu przeglądarki. Treść SWF można osadzić za pomocą znacznika object, znacznika embed lub obu. Uwaga: Częstą praktyką w programowaniu stron internetowych jest użycie obu znaczników object i embed w celu wyświetlenia treści SWF na stronie HTML. Ta praktyka nie przynosi korzyści w środowisku AIR. W treści można użyć samego znacznika object w standardzie W3C, aby został on wyświetlony w środowisku AIR. W razie konieczności w tym samym czasie można nadal wspólnie używać znaczników object i embed dla treści HTML, która jest również wyświetlana w przeglądarce.
W przypadku włączenia przezroczystości w obiekcie NativeWindow wyświetlającym treść HTML i SWF środowisko AIR nie wyświetla treści SWF w przypadku, gdy tryb okna (wmode) używanego do osadzania treści jest ustawiony na wartość: window. W celu wyświetlenia treści SWF na stronie HTML przezroczystego okna należy ustawić parametr wmode na wartość opaque lub transparent. Wartość window jest wartością domyślną dla wmode, dlatego w przypadku nieokreślenia wartości treść może nie być wyświetlana. Poniższy przykład ilustruje użycie znacznika HTML object w celu wyświetlenia pliku SWF w zawartości HTML. Parametr wmode jest ustawiany na opaque, co pozwala na wyświetlenie treści, nawet jeśli zasadniczy obiekt NativeWindow jest przezroczysty. Plik SWF ładowany jest z katalogu aplikacji, ale możliwe jest użycie dowolnego schematu URL obsługiwanego przez środowisko AIR. (Lokalizacja, z której ładowany jest plik SWF, wskazuje obszar izolowany zabezpieczeń, w którym środowisko AIR umieszcza treść). <object type="application/x-shockwave-flash" width="100%" height="100%">
<param name="movie" value="app:/SWFFile.swf"></param>
<param name="wmode" value="opaque"></param>
</object>
Można użyć również skryptu, aby załadować treść dynamicznie. Poniższy przykład tworzy węzeł object, aby wyświetlić plik SWF określony w parametrze urlString. Przykład dodaje węzeł jako element podrzędny strony z ID określonym w parametrze elementID: <script>
function showSWF(urlString, elementID){
var displayContainer = document.getElementById(elementID);
var flash = createSWFObject(urlString, 'opaque', 650, 650);
displayContainer.appendChild(flash);
}
function createSWFObject(urlString, wmodeString, width, height){
var SWFObject = document.createElement("object");
SWFObject.setAttribute("type","application/x-shockwave-flash");
SWFObject.setAttribute("width","100%");
SWFObject.setAttribute("height","100%");
var movieParam = document.createElement("param");
movieParam.setAttribute("name","movie");
movieParam.setAttribute("value",urlString);
SWFObject.appendChild(movieParam);
var wmodeParam = document.createElement("param");
wmodeParam.setAttribute("name","wmode");
wmodeParam.setAttribute("value",wmodeString);
SWFObject.appendChild(wmodeParam);
return SWFObject;
}
</script>
Treść SWF nie jest wyświetlana, jeśli obiekt HTMLLoader jest skalowany lub obracany, lub jeśli właściwość alpha zostanie ustawiona na wartość inną niż 1.0. W wersjach wcześniejszych niż AIR 1.5.2 treść SWF nie była wyświetlana w przezroczystym oknie, niezależnie od ustawionej wartości wmode. |
|