Bädda in SWF-innehåll i HTML

Adobe AIR 1.0 och senare

Du kan bädda in SWF-innehåll i HTML-innehåll i ett AIR-program på samma sätt som i en webbläsare. Bädda in SWF-innehållet med hjälp av en object-tagg, en embed-tagg eller båda två.

Obs! En vanlig webbkodningsmetod är att använda både en object-tagg och en embed-tagg för att visa SWF-innehåll på en HTML-sida. Det är ingen fördel att använda den här metoden i AIR. Du kan använda W3C-standardens object-tagg i innehåll som ska visas i AIR. Du kan förstås fortsätta att använda object- och embed-taggarna tillsammans, om så behövs, för HTML-innehåll som också visas i en webbläsare.

Om du har aktiverat genomskinlighet i objektet NativeWindow där HTML- och SWF-innehållet visas, så visas inte SWF-innehållet i AIR när fönsterläget (wmode) som används för att bädda in innehållet är inställt på värdet window. Om du vill visa SWF-innehåll på en HTML-sida i ett genomskinligt fönster ställer du in parametern wmodeopaque eller transparent. Värdet window är standardinställning för wmode, så om du inte anger ett värde kanske inte innehållet visas.

Följande exempel visar hur object-taggen i HTML används för att visa en SWF-fil i HTML-innehåll. Parametern wmode är inställd på opaque så att innehållet visas, även om det underliggande NativeWindow-objektet är genomskinligt. SWF-filen blir inläst från programkatalogen men du kan använda ett URL-schema som stöds av AIR. (Den plats som SWF-filen blir inläst från bestämmer i vilken säkerhetssandlåda som AIR placerar innehållet.)

<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>

Du kan även använda ett skript för att läsa in innehåll dynamiskt. I följande exempel skapas en object-nod för att visa den SWF-fil som angetts i parametern urlString. I exemplet läggs noden till som underordnad i sidelementet med det ID som angetts av parametern 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>

SWF-innehåll visas inte om objektet HTMLLoader är skalat eller roterat, eller om egenskapen alpha är inställd på ett annat värde än 1.0. Före AIR 1.5.2 visades inte SWF-innehåll i ett genomskinligt fönster oavsett vilket wmode-värde som var angivet.