Resumé

ASP.NET AJAX Custom Flash Control

Cristian Merighi () 0,00

Si tratta di un'implementazione di Sys.UI.Control che ha lo scopo di aiutare nella renderizzazione dell'oggetto Flash e nella gestione del passaggio dati tra javascript (markup) e actionscript (e viceversa).
Questo articolo è da considerarsi obsoleto. Alcune funzionalità potrebbero non essere più disponibili e non è possibile aggiungere commenti.

Adoro ASP.NET AJAX: rende più veloce e piacevole lo sviluppo client-side ed assicura riutilizzabilità, in più dà quel tocco di OOP alla sintassi JavaScript che mi esalta! Mi ricorda, non tanto nella sintassi - ovvio - quanto nell'idea e nell'architettura, l'ActionScript (dalla versione 2 in su).

Mmmhh... Flash... Ajax, perché no?! Implementiamo un AJAX custom control (sotto-classe di Sys.UI.Control) che può risultarci utile nel rendering e nella gestione degli eventi e dei passaggi di dati tra SWF e Markup HTML.

Sarò conciso in questo articolo: intendo solo mostrare come utilizzare questo controllo (il cui codice è scaricabile più sotto), sappiatemi dire!

Esempio di utilizzo all'interno di una pagina web .aspx:

<!-- 
    Script is here referenced as embedded in an assembly, 
    but it can be retrieved also using a static path 
-->
<asp:ScriptManager runat="server" ID="sm">
    <Scripts>
        <asp:ScriptReference
            Name="Pacem.Web.Extensions.FlashControl.js"
            Assembly="Pacem.Web.Extensions" />
    </Scripts>
</asp:ScriptManager>

<div id="xcFlashContainer"></div>

<script type="text/javascript">
//<[CDATA[
function createFlashObject(sender, args){
    if (flCtx == null){
        flCtx = new Pacem.UI.FlashControl("pathToSWF.swf", $get("xcFlashContainer"));
        with (flCtx){
            set_width("720");
            set_height("100");
            set_allowScriptAccess(Pacem.UI.FlashAllowScriptAccess.always);
            set_wmode(Pacem.UI.FlashWMode.transparent);
            set_FlashVars(String.format("var1={0}&var2={1}&var3={2}",
                fooGetMyVar1(),                    
                fooGetMyVar2(),
                fooGetMyVar3())
                );
            flush(); // method that writes the flash markup into the container element
        }
    }else flCtx.get_flashObject().SetVariable("_root:alreadyLoaded", true);   
}
var flCtx = null;
Sys.Application.add_load(createFlashObject);
//]]>
</script>

Come potete notare dal codice sopra ho aggiunto diversi oggetti Enum per "irrigidire" un po' la struttura; questi sono:

  • Pacem.UI.FlashQuality
    • low
    • medium
    • high
    • best
  • Pacem.UI.FlashSAlign
    • l
    • r
    • t
    • b
    • tl
    • tr
    • bl
    • br
  • Pacem.UI.FlashScale
    • noScale
    • showAll
    • noBorder
    • exactFit
  • Pacem.UI.FlashAllowScriptAccess
    • always
    • never
    • sameDomain
  • Pacem.UI.FlashAlign
    • center
    • l
    • r
    • t
    • b
  • Pacem.UI.FlashWMode
    • opaque
    • transparent
    • window
// how to declare an Enum object in ASP.NET AJAX
Pacem.UI.FlashAllowScriptAccess = function(){};
Pacem.UI.FlashAllowScriptAccess.prototype = {
    always: 0, never: 1, sameDomain: 2
}
Pacem.UI.FlashAllowScriptAccess.registerEnum("Pacem.UI.FlashAllowScriptAccess");

Il controllo è ottimizzato e testato per l'utilizzo di flash.external.ExternalInterface, allo scopo di scambiare dati einformazioni tra javascript e actionscript.

zip file « download code

Take care. Bye.

Feedbacks

  • Re: ASP.NET AJAX Custom Flash Control

    nana martedì 9 dicembre 2008 0,00

    Cool website

feedback
 

Syndicate

Autore

Cristian Merighi facebook twitter google+ youtube

Ultimi articoli

Top rated

Archivio

Dove sono?

Autore

Cristian Merighi facebook twitter google+ youtube

Le mie letture

Feeds