API ActiveX Flash

Propriétés

Liste des propriétés mises à disposition par l'ActiveX Shockwave.Flash.

Avant toute chose il convient de vous mettre en garde face à la nécessité de respecter la casse utilisée dans la syntaxe des propriétés et méthodes qui vont être citées ici. Cette liste suivra avec exactitude la casse utilisée pour faire appel à ces fonctionnalités. Il vous faudra en faire autant avant de les utiliser aussi bien en Jscript, qu'en VBscript ou quelque soit votre environnement de travail. Cependant, une règle générale allant à l'encontre des conventions adoptées dans les langages orientés objet s'impose: "Toutes les propriétés et méthodes commencent par une majuscule sans exception aucune". Pour le reste, la convention qui s'applique est celle qui veux que chaque composant logique du nom de la propriété ou de la méthode soit commencé par une majuscule .

Cette liste a été obtenue intégralement à partir de l'utilitaire OLEVIEWER disponible en téléchargement libre depuis le site Microsoft en tant que composant à part entière du SDK de développement des ActiveX Microsoft. Je vous en conseille vivement le téléchargement si vous souhaitez approfondir votre connaissance de l'utilisation de ces librairies dans vos développements futurs.

Il est à noter que les types de données sont respectés lors de l'évaluation d'une variable propre à l'ActiveX et lors de l'appel à une de ses méthodes.

ReadyState

  • Evaluation seule
  • Accessible dés la création de l'objet.
  • Nombre [int]

Readystate est une propriété commune à la plupart des ActiveX et objets DOM du tag <object /> qui prend pour valeur l'état actuel de chargement, ou de téléchargement d'un objet interne ou externe à la page HTML. Elle renvoie les valeurs :

Valeur Signification générale Utilisation avec Flash
null Obsolète : Flash implémente cette propriété. L'objet n'implémente pas cette propriété.
0 L'objet n'a pas encore été initialisé par l'arrivée des données attendues. Retournes cettes valeur quand l'objet "ShockwaveFlash.ShockwaveFlash.1" a été crée mais qu'aucune valeur pour la propriété Movie ne lui a été attribuée. Il en vas de même si le tag <object /> ne comporte pas de tag: <PARAM NAME="movie" VALUE="http://www.tekool.net/temp/lourd.swf">
1 L'objet est en train de recevoir les données attendues. Obsolète : La propriété ne prend jamais cette valeur avec l'ActiveX Flash.
2 L'objet a reçu l'intégralité des données. Obsolète : La propriété ne prend jamais cette valeur avec l'ActiveX Flash.
3 Il est possible d'interagir avec l'objet, même si il n'est pas encore complétement chargé. Le SWF associé à l'ActiveX par la propriété movie est en train de se charger, il est possible d'invoquer des méthodes et propriétés.
4 L'objet est complètement initialisé par l'arrivée des données. Le SWF associé à l'ActiveX par la propriété movie est complétement chargé.

Cette propriété est listée sur la MSDN.

Il est absolument essentiel de connaitre l'état de chargement de l'ActiveX Flash quand il est utilisé depuis Jscript , puisque c'est lui qui vas déterminer si les méthodes de l'objet lui sont ou non accessibles, et si l'objet est prêt à accomplir certaines actions qui nécessitent un téléchargement complet ou partiel de l'animation.

Un exemple d'utilisation de cette propriété pourrait-être:

window.onReadyStateInterval = function()
{
    var oAnimation;

    oAnimation = document.getElementById('animation');

    if(oAnimation == null)
        return;

    if(oAnimation.ReadyState == '3' && typeof window.initState3 == 'undefined')
    {
        alert("Il est possible d'accéder aux propriétés et méthodes de l'animation.");
        window.initState3 = true;
    }
   
    if(oAnimation.ReadyState == '4' && typeof window.initState4 == 'undefined')
    {
        alert("L'animation est totalement chargée.");
        window.initState4 = true;
        clearInterval(window.readyStateInterval);
    }
    
}

window.readyStateInterval = setInterval('onReadyStateInterval()',20);

TotalFrames

  • Evaluation seule.
  • Accessible dés le début du téléchargement des données.
  • Nombre [long]

Porte la valeur du nombre total de frames que comporte le fichier SWF associé au _level0 de l'objet Flash. Cette propriété est une illustration parfaite du besoin d'attendre que l'animation ait commencée à être chargée avant de retourner une valeur utile ( ReadyState=3 ou ReadyState =4 ). En effet, le nombre total de frames d'une animation Flash ne peut-être connu avant la lecture du CRC situé dans les premiers octets du fichier SWF, ce qui sans pour autant nécessiter le chargement complet de l'animation, demande à ce qu'un minimum d'une dizaine d'octets du fichier de l'animation soient téléchargés.

D'ailleurs une erreur Javascript trés précise survient si l'appel à cette propriété est fait avant que l'ActiveX Flash ait pu déterminer le nombre total de frames de l'animation:

Illustration de l'alerte d'erreur : "Les données nécessaires pour terminer cette opération ne sont pas encore disponibles."

A ce sujet voici l'exemple générique qui servira dans la suite de ce tutoriel. Il servira en fait à précharger l'animation avant d'effectuer quelque opération de test qu'il soit afin d'éviter ce type d'erreurs.

<html>
<body>
<script type="text/javascript">
<!--

window.onButtonTest = function()
{
    var oAnimation,nTotalFrames;

    oAnimation = document.getElementById('animation');

    if(oAnimation == null || oAnimation.ReadyState < 3)
        return;

    window.onTest(oAnimation);   
}

window.onTest = function(oAnimation)
{
    var nTotalFrames;

    //FONCTIONNALITE DE TEST
    nTotalFrames = parseInt(oAnimation.TotalFrames);
    alert("L'animation comporte " + nTotalFrames + " frames."); 
}

//-->
</script>
<button onclick="window.onButtonTest()">Tester</button>
</body>
</html>

La fonction onButtonTestsera appelée dés lors que l'utilisateur cliquera sur le bouton. Si l'animation est chargée, la fonction onTest sera appelée, sinon il faudra recliquer sur le bouton le temps que le téléchargement soit complet. Pour la suite des documents traitant de ce sujet, seule la fonction onTest sera représentée..

FrameNum

  • Evaluation et affectation.
  • Accessible dés le début du téléchargement des données.
  • Nombre [long]

La propriété n'est pas utilisée en tant que paramètre HTML.

En évaluation, elle précise le numéro de la frame sur laquelle se trouve la tête de lecture. Il faut cependant savoir que si l'animation n'est pas chargée au moment de cette évaluation, la propriété portera la valeur -1.

En affectation, la tête de lecture se déplacera dés que possible sur la frame précisée. En fait, le déplacement ne sera pas pris en compte à la fin de l'espace temps de la frame comme en actionScript, mais dés que possible, et ce au détriment du respect de la continuité de l'animation.

Par exemple :

window.onTest = function(oAnimation)
{
    oAnimation.FrameNum = 50;
    ++oAnimation.FrameNum;
    ++oAnimation.FrameNum;
}

Ici, la tête de lecture de l'animation ne passera ni par la frame 50, ni par la frame 51, mais ira directement à la frame 52, malgré que FrameNum ait porté ces trois valeurs durant l'éxécution de ce court script.

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    alert("La tête de lecture se trouve sur la frame: " + oNaimation.FrameNum );
}

Lorsqu' utilisée pour affecter la valeur Playing de l'animation, ce booléen mettra l'animation en pause ou contraire la fera se lancer:

window.onTest = function(oAnimation)
{
    oAnimation.Playing = true;
    alert("L'animation se lance.");

    oAnimation.Playing = false;
    alert("L'animation s'arrête.");
}

Playing

  • Evaluation et affectation.
  • Accessible dés le début du téléchargement des données.
  • Booléen [VARIANT_BOOL]

La propriété est utilisée en HTML pour l'affectation par le paramètre play.

Précise si la tête de lecture avance ou non sur le _level0 de l'animation courante. Cette propriété porte la valeur que retourne le menu contextuel déployé sur une animation Flash. Elle ne permet en aucun cas de savoir si la tête de lecture est en train de lire le contenu d'un des movieClip utilisé dans les niveaux supérieurs de l'animation.

Attention: Dans le cas où l'animation ne comporte qu'une seule frame, cette propriété portera toujours la valeur false en Jscript à l'initialisation de l'animation et ce quelque soit la valeur passée par le paramétre HTML. Aprés initialisation si le paramétres est modifié par Jscript, il portera la valeur attribuée, même si l'animation ne peut logiquement pas jouer.

HTML Jscript Signification
false false L'animation est arrêtée.
true true L'animation est lancée.

Exemple d'affectation par le paramètre en HTML:

<!-- L'animation sera arrêtée sur sa premiére frame au demmarage -->
<param value="play" value="true" />

<!-- L'animation demmarera dés que sa deuxième frame sera chargée -->
<param value="play" value="false" />

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    if(oAnimation.Playing)
        alert("L'animation est en train de jouer.");
    else
        alert("L'animation est arrêtée.");   
}

Lorsqu' utilisée pour affecter la valeur Playing de l'animation, ce booléen mettra l'animation en pause ou contraire la fera se lancer:

window.onTest = function(oAnimation)
{
    oAnimation.Playing = true;
    alert("L'animation se lance.");

    oAnimation.Playing = false;
    alert("L'animation s'arrête.");
}

Quality

  • Evaluation et affectation.
  • Accessible dés la création de l'objet.
  • Nombre [int]

Attention: Cette propriété est obsolète avec les versions du lecteur Flash supérieures à la version 4, puisque depuis la version 5, il n'existe non plus deux états de qualité différents "LOW" et "HIGH", mais trois : "LOW", "MEDIUM", "HIGH".

Renseigne et affecte le niveau de qualité graphique utilisé pour lire l'animation.

HTML Jscript Signification
LOW 0 La librairie graphique n'applique aucune de ses méthodes d'antialiasing.
MEDIUM 0 La librairie graphique n'applique qu'une partie de ses méthodes d'antialiasing
HIGH 1 La librairie graphique applique toute ses méthodes d'antialiasing.

Pour comprendre pourquoi en Jscript deux états différents de la qualité du rendu graphique de l'animation renvoies et affectes le même résultat , il faut remonter dans l'histoire du lecteur Flash jusqu'à sa version Flash 4, où n'existait encore que deux valeurs possibles pour la qualité du rendu graphique de l'animation contre les 3 valeurs actuelles. Ce n'est que par soucis de compatibilité avec les applications développées pour le lecteur Flash4 que les 3 états ne renvoient encore que deux valeurs. Il est fortement conseillé de vous reporter à la propriété Quality2.

Exemple d'affectation par le paramètre en HTML

<param value="quality" value="high" />

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    var sUserQuality;

    switch(oAnimation.Quality)
    {
        case 1:
            sUserQuality = 'haute';
        break;

        default : 
            sUserQuality = 'basse ou medium';
    }

    alert("L'animation est en qualité " + sUserQuality + ".");

}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.Quality = 0;
    alert('Quality affectée à sa valeur : ' + oAnimation.Quality);

    oAnimation.Quality = 1;
    alert('Quality affectée à sa valeur : ' + oAnimation.Quality);
}

Quality2

  • Evaluation et affectation.
  • Accessible dés la création de l'objet.
  • Chaîne [BSTR]

Renseigne et affecte le niveau de qualité graphique utilisé pour lire l'animation.

HTML Jscript Signification
LOW Low La librairie graphique n'applique aucune de ses méthodes d'antialiasing.
MEDIUM Medium La librairie graphique n'applique qu'une partie de ses méthodes d'antialiasing
HIGH High La librairie graphique applique toute ses méthodes d'antialiasing.

Avec Quality2 contrairement à la propriété Quality, il est possible d'affecter trois niveaux de qualité différents au rendu graphique de l'animation aussi bien en Jscript qu'en HTML.

Exemple d'affectation par le paramètre en HTML

<param value="quality" value="medium" />

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    var sUserQuality;

    switch(oAnimation.Quality2)
    {
        case "Low" :
            sUserQuality = 'basse';
        break;

        case "Medium" :
            sUserQuality = 'moyenne';
        break;
 
        default : 
            sUserQuality = 'haute';
    }

    alert("L'animation est en qualité " + sUserQuality + ".");
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.Quality2 = "Low";
    alert('Quality2 affectée à sa valeur : ' + oAnimation.Quality2);

    oAnimation.Quality2 = "MeDiUm";
    alert('Quality2 affectée à sa valeur : ' + oAnimation.Quality2);
}

ScaleMode

  • Evaluation et affectation.
  • Accessible dés la création de l'objet.
  • Nombre [int]

Renseignes et affecte le méthode utilisée pour recadrer l'animation lorsque sa fenêtre est étirée. Cette propriété n'est pas accessible depuis le HTML contrairement à Scale qui lui est de plus strictement identique.

Valeur Signification
0 L'animation s'adapte à la taille exacte de la fenêtre en fonction de son étirement. L'homotétie est respectée.
1 Identique à 0 avec une températion de la taille de l'animation pour qu'elle ne montre jamais les détails sortant du cadre de la scéne de l'animation.
2 L'animation se déforme pour s'adapter à la taille exacte de la fenêtre en fonction de son étirement. L'homotétie n'est pas respectée.
3 L'animation ne changera pas de taille et cela quelque soit l'étirement de la fenêtre.

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    var sScaleMode;

    //ETABLIT UNE CORRESPONDANCE VERS *Scale*
    switch(oAnimation.ScaleMode)
    {
        case 0:
            sScaleMode = 'showAll';
        break;

        case 1:
            sScaleMode = 'noBorder';
        break;

        case 2:
            sScaleMode = 'exactFit';
        break;

        case 3:
            sScaleMode = 'noScale';
        break;
    }

    alert("La valeur du mode d'étirement de l'animation est : '" + sScaleMode + "' .");

}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.ScaleMode = 3;
    alert("L'animation restera à taille fixe et ce quelque soit l'étirement de sa fenêtre.");
    
}

Scale

  • Evaluation et affectation.
  • Accessible dés la création de l'objet.
  • Chaine [BSTR]

Renseignes et affecte le méthode utilisée pour recadrer l'animation lorsque sa fenêtre est étirée.

Valeur Signification
showAll L'animation s'adapte à la taille exacte de la fenêtre en fonction de son étirement. L'homotétie est respectée.
noBorder Identique à showAll avec une températion de la taille de l'animation pour qu'elle ne montre jamais les détails sortant du cadre de la scéne de l'animation.
exactFit L'animation se déforme pour s'adapter à la taille exacte de la fenêtre en fonction de son étirement. L'homotétie n'est pas respectée.
noScale L'animation ne changera pas de taille et cela quelque soit l'étirement de la fenêtre.

Ces valeurs sont paramétrables en ActionScript depuis Flash MX à partir de l'objet Stage et de la propriété scaleMode en passant les valeurs HTML de la propriété.

Exemple d'affectation par le paramètre en HTML

<param value="scale" value="exactfit" />

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    alert("La valeur du mode d'étirement de l'animation est : '" + oAnimation.Scale + "' .");
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.Scale = 'exactFit';
    alert("L'animation restera à taille fixe et ce quelque soit l'étirement de sa fenêtre.");
}

AlignMode

  • Evaluation et affectation.
  • Accessible dés la création de l'objet.
  • Nombre [int]

Détermine et affecte le positionnement du cadre de l'animation dans sa fenêtre.

La propriété AlignMode n'existe pas en tant que paramètre d'initialisation depuis le HTML.
Pour la petite histoire, cette propriété aurait du être activée depuis Flash 4 et les panneaux de configurations de l'export HTML de l'environnement auteur permettaient d'affecter une propriété d'alignement qui était bien écrite dans la page HTML mais ne fonctionnait en aucun cas à la lecture de l'animation.

En Jscript cette propriété est affectée par un nombre (bit flag) dont le résultat est l'addition de deux des quatre composantes qui qualifient l'alignement de l'animation :

Alignement Valeur decimale Valeur binaire
centre 0 00 00
gauche 1 00 01
droite 2 00 10
haut 4 01 00
bas 8 10 00

En suivant ce tableau il est facile de calculer que pour aligner l'animation en haut et à gauche, il faille additioner les deux valeurs des composantes Haut et Bas

soit : 4 + 1 = 5 ou en utilisant les bits: 01 00 | 00 01 = 01 01

Vertical Horizontal Jscript Valeur binaire
centre centre 0 00 00
centre gauche 1 00 01
centre droite 2 00 10
haut centre 4 01 00
haut gauche 5 01 01
haut droite 6 01 10
bas centre 8 10 00
bas gauche 9 10 01
bas droite 10 10 10

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    var alignArr;

    alignArr = 

    [
        [ 'le centre', 0 ],
        [ 'la gauche', 1 ],
        [ 'la droite', 2 ],
        [ 'le haut', 4 ],
        [ 'le bas', 8 ]
    ];

    //VERTICALEMENT
    for(i=0; i<alignArr.length; i++)
        if(alignArr[i][1] == (oAnimation.AlignMode&12) )
            oVertical = alignArr[i];

    //HORIZONTALEMENT
    for(i=0; i<alignArr.length; i++)
        if(alignArr[i][1] == (oAnimation.AlignMode&3) )
            oHorizontal = alignArr[i];

    alert
    (
        "L'animation est alignée horizontalement par " + oHorizontal[0] + "\n" +
        "et verticalement par " + oVertical[0] + " ."
    );
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    //AFFECTATION DE LA PROPRIETE *AlignMode* DE MANIERE ALEATOIRE
    oAnimation.AlignMode = (Math.round(Math.random()*2)<<2) | (Math.round(Math.random()*2));
}

SAlign

  • Evaluation et affectation.
  • Accessible dés la création de l'objet.
  • Chaîne [BSTR]

Cette propriété est strictement équivalente à AlignMode à la seule différence qu'elle peut s'initialiser par un paramètre HTML et qu'elle s'utilise comme une chaîne.

Cette propriété détermine et affecte le positionnement du cadre de l'animation dans sa fenêtre.

En Jscript cette propriété est affectée par une chaîne dont le résultat est la concaténation de deux des quatre composantes qui qualifient l'alignement de l'animation :

Alignement Composante
Center C
Left L
Right R
Top T
Bottom B

En suivant ce tableau il est facile de calculer que pour aligner l'animation en haut et à gauche, il faille concaténer les initiales des valeurs des deux composantes Top et left

soit : TL

Vertical Horizontal Jscript
Center Center CC
Center Left CL
Center Right CR
Top Center TC
Top Left TL
Top Right TR
Bottom Center BC
Bottom Left BL
Bottom Right BR

Si une des composantes est ommise, elle sera considérée comme étant équivalente à Center , donc, aligné par le centre verticalement ou horizontalement.

Exemple d'affectation par le paramètre en HTML

<param value="salign" value="TL" />

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    var alignArr,sAlign;

    sAlign = oAnimation.SAlign;

    alignArr = 

    [
        [ 'le centre', 'C' ],
        [ 'la gauche', 'L' ],
        [ 'la droite', 'R' ],
        [ 'le haut', 'T' ],
        [ 'le bas', 'B' ]
    ];

    //RECTIFICATION DES ENTREES DE CENTRE MANQUANTES
    if( sAlign.length == 0)
        sAlign = 'CC';

    if( sAlign.length == 1)
        if ( sAlign == 'L' || sAlign == 'R')
            sAlign = 'C' + sAlign;
        else
            sAlign += 'C';
    

    //VERTICALEMENT
    for(i=0; i<alignArr.length; i++)
        if(alignArr[i][1] == sAlign.charAt(0))
            oVertical = alignArr[i];

    //HORIZONTALEMENT
    for(i=0; i<alignArr.length; i++)
    {
        if(alignArr[i][1] == sAlign.charAt(1) )
            oHorizontal = alignArr[i];
    }

    alert
    (
        "L'animation est alignée horizontalement par " + oHorizontal[0] + "\n" +
        "et verticalement par " + oVertical[0] + " ."
    );
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    var alignArr;

    alignArr = 
    [
       'C','L','R',
       'C','T','B'
    ];

    oAnimation.SAlign = 
        alignArr
        [
            Math.round(Math.random()*2)
        ] 

        +

        alignArr
        [
            Math.round(Math.random()*2) + 3
        ];
}

BackgroundColor

  • Evaluation et affectation
  • Accessible dés la création de l'objet
  • Nombre [long]

Permet de connaitre et d'affecter la couleur utilisée pour remplir le fond de l'animation définie dans l'espace RGB et sous sa forme numérique. Pour rappel cela permet d'afficher 0xFFFFFF soit 16777215 couleurs, donc un nombre compris entre 0 et 16777215.

Cette propriété n'existe pas en tant que paramètre HTML, cependant la propriété BGColor la remplace dans ce cas.

Si aucune couleur de fond n'est définie ou que la valeur définie soit invalide, la valeur portée par la propriété équivaudra à -1 et la véritable couleur de fond de l'animation sera celle définie dans le fichier SWF dans l'environnement auteur. Il est donc impossible de déterminer la couleur de fond réellement utilisée par l'animation si celle-ci n'est pas définie auparavant par BackgroundColor ou BGColor.

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    var i,sBgColor;

    //PREVIENS LE CAS OU AUCUNE COULEUR DE FOND N'A ETE DEFINIE AUPARAVANT POUR L'ANIMATION
    if(oAnimation.BackgroundColor == -1)
        return alert("Impossible de déterminer la couleur de fond de l'animation.");

    //RETOURNE LA CHAINE HEXADECIMALE REPRESENTANT LA VALEUR DE LA COULEUR DE FOND DE L'ANIMATION
    sBgColor = oAnimation.BackgroundColor.toString(16);

    while(sBgColor.length<6)
        sBgColor = '0' + sBgColor;

    alert("La couleur de fond de l'animation est : #" + sBgColor);
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
   //AFFECTE UNE COULEUR ALEATOIRE A LA COULEUR DE FOND DE L'ANIMATION
   oAnimation.backgroundColor = Math.floor(Math.random()*0xFFFFFF);    
}

BGColor

  • Evaluation et affectation
  • Accessible dés la création de l'objet
  • Chaîne [BSTR]

Strictement équivalente à BackgroundColor cette propriété permet de connaitre et d'affecter la couleur utilisée pour remplir le fond de l'animation définie dans l'espace RGB mais cette fois-ci sous forme de chaîne au format HTML comme #FFFFFF ou FFFFFF et ce, aussi bien en tant que paramètre HTML qu'en JScript.

Par défaut la valeur portée par la propriété en JScript est raccourcie à sa forme simple FFFFFF. (sans # devant)

Si aucune couleur de fond n'est définie ou que la valeur définie soit invalide, la valeur portée par la propriété équivaudra à chaîne vide et la véritable couleur de fond de l'animation sera celle définie dans le fichier SWF dans l'environnement auteur. Il est donc impossible de déterminer la couleur de fond réellement utilisée par l'animation si celle-ci n'est pas définie auparavant par BackgroundColor ou BGColor.

Exemple d'affectation par le paramètre en HTML

<param value="bgcolor" value="#FFFFFF"/>

ou

<param value="bgcolor" value="FFFFFF"/>

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    var i,sBgColor;

    //PREVIENS LE CAS OU AUCUNE COULEUR DE FOND N'A ETE DEFINIE AUPARAVANT POUR L'ANIMATION
    if(oAnimation.BGColor == '')
        return alert("Impossible de déterminer la couleur de fond de l'animation.");

    //IL FAUT RAJOUTER UN # POUR AFFICHER LA VALEUR SOUS SA FORME #FFFFFF
    alert("La couleur de fond de l'animation est #" + oAnimation.BGColor);
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{

   //AFFECTE UNE COULEUR ALEATOIRE A LA COULEURRDE FOND DE L'ANIMATION
    sColor = Math.round(Math.random()*0xFFFFFF).toString(16);

    while(sColor.length < 6)
        sColor = '0' + sColor;

   oAnimation.BGColor = window.status = sColor;    
}

Loop

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Booléen [VARIANT_BOOL]

Cette propriété permet de modifier le comportement de la tête de lecture du lecteur Flash lors de son arrivée en fin d'animation. Selon la valeur portée par cette propriété la tête de lecture s'arrêtera sur la dernière frame de l'animation ou au contraire la rejouera indéfiniment.

HTML Jscript Signification
false false L'animation s'arrêtera aprés avoir été lue.
true true L'animation sera jouée en boucle indéfinimment.

Exemple d'affectation par le paramètre en HTML:

<!-- L'animation sera jouée en boucle indéfinimment -->
<param value="play" value="true" />

<!-- L'animation s'arrêtera aprés avoir été lue -->
<param value="play" value="false" />

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    if(oAnimation.Loop)
        alert("L'animation sera jouée en boucle indéfinimment.");
    else
        alert("L'animation s'arrêtera aprés avoir été lue.");
}

Lorsqu' utilisée pour affecter la valeur Playing de l'animation, ce booléen mettra l'animation en pause ou contraire la fera se lancer:

window.onTest = function(oAnimation)
{
    oAnimation.Loop = true;
    alert("L'animation sera jouée en boucle indéfinimment.");

    oAnimation.Loop = false;
    alert("L'animation s'arrêtera aprés avoir été lue.");
}

Movie

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Chaîne [BSTR]

Cette propriété permet d'initier le téléchargement d'un fichier .SWF dans le _level0 de l'animation Flash, ce fichier étant le fichier principal associé à l'animation Flash.
La valeur retournée est l'URL absolue du fichier SWF actuellement lu mais si aucun fichier n'est actuellement associé à l'animation, la propriété portera la valeur d'une chaîne vide en Jscript.
Le téléchargement du fichier .SWF associé à l'animation détermine l'état de téléchargement de l'animation elle-même, que l'on peut analyser avec la propriété ReadyState

Exemple d'affectation par le paramètre en HTML

<param value="movie" value="http://www.monsite.com/mon_fichier.swf" />

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    alert("L'URL du SWF rattaché à l'animation est:\n" + oAnimation.Movie)
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.Movie = "http://www.monsite.com/mon_fichier.swf";
}

WMode

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Chaîne [BSTR]

Sert à la gestion de la fenêtre autorisée pour le lecteur Flash dans la page HTML, mais n'est valable que sous Internet Explorer >= 4.0.

Son affectation en JScript est trés mal supportée puisqu'il faut forcer le raffraichissement de la fenêtre de l'animation aprés affectation pour que le changement de mode de fenêtre prenne effet.

L'astuce pour palier à ce problème est d'initialiser l'animation avec le paramètre HTML wmode à opaque. De plus, si votre animation ne comporte qu'une seule frame ou est arrêtée au moment de l'affectation, il vous faudra redéfinir la couleur de fond de l'animation afin de provoquer le raffraichissement de la fenêtre.

La meilleure solution étant de n'utiliser ce paramètre en JScript en évaluation seulement.

HTML Jscript Signification
window Window La fenêtre qui héberge le lecteur Flash n'est pas sélectable et cache tout ce qui se trouve derrière elle
opaque Opaque La fenêtre qui héberge le lecteur Flash est sélectable et cache tout ce qui se trouve derrière elle
transparent Transparent La fenêtre qui héberge le lecteur Flash n'est pas sélectable et laisse transparaitre tout ce qui se cache derrière elle

Exemple d'affectation par le paramètre en HTML

<param value="wmode" value="transparent" />

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    //LA VALEUR EST TOUJOURS SIGNIFICATIVE MEME LORSQU'ELLE N'A PAS ETE INITIALISEE
    alert("Le mode utilisé par la fenêtre est:\n" + oAnimation.WMode)
}

Un exemple d'affectation de la propriété en Jscript:

avec : <param value="wmode" value="opaque" />

window.onTest = function(oAnimation)
{
    oAnimation.WMode = "TrAnSpArEnt";

    //FORCE LE RAFFRAICHISSEMENT
    oAnimation.BackgroundColor = new Number( '0x' + oAnimation.BGColor);
}

Menu

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Booléen [VARIANT_BOOL]

Ce paramètre détermine si le menu contextuel de navigation qui apparait lors d'un clic droit sur l'animation doit être affiché ou non.

HTML Jscript Signification
false false Le menu contextuel sera dépourvu de ses fonctionnalités de navigation.
true true Le menu contextuel offrira ses fonctionnalités de navigation.

Exemple d'affectation par le paramètre en HTML

<param value="menu" value="false" />

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    if(oAnimation.menu)
        alert("Le menu contextuel de navigation sera affiché");  
    else
        alert("Le menu contextuel de navigation ne sera pas affiché");
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.menu = true;
}

Base

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Chaîne [BSTR]

Cette propriété va forcer l'animation à utiliser la valeur qu'elle porte pour recomposer l'URL de base de l'animation pour le téléchargement de toute dépendance activé par la suite. En clair, elle se comporte comme la propriété BASE en HTML définie sur le W3C, mais en précède toujours la valeur pour l'animation.

Il est trés important de noter que l'URL portée par le paramètre Movie de l'animation ne dépends en aucun cas de l'URL définie par le paramètre base .

Exemple d'affectation par le paramètre en HTML

<!--
    L'URL DES DEPENDENCES ETANT: "http://www.monsite.com/mon_dossier/mon_dossier/mon_dossier/
    CELLE DE LA PAGE HTML ETANT: "http://www.monsite.com/index.html
-->

<param value="base" value="http://www.monsite.com/mon_dossier/mon_dossier/mon_dossier/" />
ou
<param value="base" value="mon_dossier/mon_dossier/mon_dossier/" />  

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    alert("L'URL absolue de l'animation est:\n" + oAnimation.Base)
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.Movie = "http://www.monsite.com/mon_fichier.swf";
}


Attention: La valeur portée par la propriété ne recompose en aucun cas l'URL absolue de l'animation pour déterminer le nouveau chemin définie vers son URL, mais se contente de rajouter sa valeur à celle de l'URL d'origine de la page HTML.

Par exemple:

/*
    L'URL DES DEPENDENCES ETANT: "http://www.monsite.com/mon_dossier/mon_fichier.swf"
    CELLE DE LA PAGE HTML ETANT: "http://www.monsite.com/mon_dossier/mon_dossier/mon_dossier/index.html
    <param value="base" value="../../">
    <param value="movie" value="mon_fichier.swf">
*/
 
window.onTest = function(oAnimation)
{
    //SI ON EVALUE LA PROPRIETE BASE
    //CELLE-CI RETOURNES "../../"
    //ET NON PAS "http://www.monsite.com/mon_dossier/mon_fichier.swf"
    alert(oAnimation.Base);
}

En clair ce n'est qu'une implémentation du player Flash qui n'entretient pas de lien direct avec le paramètre BASE de la page HTML.

DeviceFont

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Booléen [VARIANT_BOOL]

Valable sous Windows uniquement: modifie le comportement du player Flash lors de l'affichage des polices définie pour les champs de textes statiques et dans ce type de champ de texte uniquement.

Lorsque cette propriété est activée, toutes les polices utilisées dans l'animation seront remplacées par une police antialiasée correspondant à celle définie pour le champ de texte en question, mais à partir de celle installée sur Windows et non plus celle incluse dans le fichier .SWF.
Si le lecteur ne trouve aucune correspondance pour une des polices définie dans un des champs de texte statique, il y substituera la police antialiasée par défaut définie sur le système cela sera _sans, équivalent à Arial dans ce cas puisqu'elle est antialiasée.

Chose étonnante lorsqu'on s'est penché sur la propriété WMode par exemple, l'affectation de cette propriété en Jscript prend effet instantanément à l'affichage.

HTML Jscript Signification
false false Les polices de caractère des champs de texte statique utiliseront la police incluse dans le fichier .SWF.
true true Les polices de caractère des champs de texte statique utiliseront la police Windows qui sera antialiasée.

Exemple d'affectation par le paramètre en HTML

<param value="devicefont" value="true">

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    if(oAnimation.DeviceFont)
        alert("Les champs de textes statiques seront affichés avec la police incluse dans le .SWF");
    else
        alert("Les champs de textes statiques de l'animation seront affichés avec la police Windows.");
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    //PREND EFFET IMMEDIATEMENT
    oAnimation.DeviceFont = true;
}

EmbedMovie

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Booléen [VARIANT_BOOL]

Ce paramètre est destiné à être utilisé uniquement quand une application hôte autre qu'Internet Explorer héberge l'ActiveX Flash. Ce paramètre sert donc censément à préciser au contrôle d'ActiveX que l'environnement d'exécution n'est pas Internet Explorer, et qu'il doit donc se comporter de manière à ce que l'animation puisse être lue dans cet environnement d'exécution.Cette propriété semble servir à optimiser le rendu dans l'environnement d'Internet Explorer sans interdire à la fois d'éxécuter ce contrôle ActiveX dans une autre application hôte.
Un exemple d'utilisation concret de ce paramètre pour intégrer une animation Flash dans PowerPoint 2002 est donné sur le site Microsoft Office.

Trés important: Si ce paramètre n'est pas activé lorsque le contrôle d'ActiveX Shockwave Flash est inclus dans une application VBscript, la lecture de l'animation ne se fera pas.

HTML Jscript Signification
true true La propriété EmbedMovie est paramètrée pour lire l'animation hors du contexte d'Internet Explorer.
false false La propriété EmbedMovie est paramètrée pour lire l'animation hors du contexte d'Internet Explorer.

Exemple d'affectation par le paramètre en HTML

<param value="embedmovie" value="true">

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    if(oAnimation.EmbedMovie)
        alert("La propriété EmbedMovie est correctement paramètrée pour lire l'animation");
    else
        alert("false");
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.EmbedMovie = true;
}

Un exemple d'affectation de la propriété en VBscript:

/*
En considérant que *ShockwaveFlash1* est une référence qui pointe
vers l'objet Flash chargé dans le formulaire VB. 
*/

With ShockwaveFlash1
    .EmbedMovie = True
    .Menu = False
    .Movie = "mon_fichier.swf"
End With

SWRemote

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Chaîne [BSTR]

Ce paramètre sert à passer une chaîne de caractères grâce au paramètres <param /> du tag <object /> de la page HTML, vers toute application à même d'exploiter l'exécution du contrôle ActiveX Flash. En effet, il est impossible de passer un paramètre HTML imaginaire lors de l'initialisation de l'animation pour le lire par la suite en Jscript par exemple, car l'interface du contrôle ActiveX Shockwave Flash n'est pas conçu pour permettre cela. Ce n'est donc qu'un tampon ouvert à la lecture écriture et n'affecte en rien le comportement direct de l'animation.

La propriété est par exemple utilisée par la Shockmachine de Director et donc le Shockwave Player, afin de transmettre les paramètres nécessaires à initialiser la Shockmachine depuis la page HTML, comme indiqué dans cet exemple: http://www.macromedia.com/support/flash/publishexport/shockmachine_flash4/shockmachine_flash406.html

Pour la petite histoire, il y a eu des problèmes concernant la sécurité du système suite à l'ouverture possible à un buffer-overflow grâce à ce paramètre sur les versions précédant la version 6 du lecteur Flash, comme expliqué ici : http://xforce.iss.net/xforce/xfdb/10650.

Exemple d'affectation par le paramètre en HTML et d'évaluation de la propriété en Jscript:

<param value="SWRemote" value="L'utilisateur est anonyme.">
<param value="bar" value="Une valeur de test">

suvi du script JScript :

window.onTest = function(oAnimation)
{
    //RETOURNES => "L'utilisateur est anonyme."
    alert(oAnimation.SWRemote);

     //RETOURNES => "undefined"
      alert(oAnimation.bar);  
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.SWRemote = "Valeur de test";
}

FlashVars

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Chaîne [BSTR]

Cette propriété est strictement identique à SWRemote puisqu'elle permet de stocker le contenu d'une chaîne de caractère dans le contexte d'exécution du contrôle ActiveX Shockwave Flash. Cependant, ici, si la chaîne est correctement formatée à la manière du passage des paramètres dans une adresse URL, comme par exemple :

http://www.monsite.com/?&var1=value1&var2=value2&var3=value3
ou la chaîne qui nous intéresse est : "&var1=value1&var2=value2&var3=value3"
Ici, le contrôle ActiveX Flash vas parser cette chaîne pour en extraire les variables passées en paramètre puis vas déclarer des variables au nom équivalent sur le _level0 de l'animation Flash et y affecter les valeurs passées. C'est ainsi qu'il est possible d'accéder en ActionScript à des variables passée depuis la page HTML dans le paramètres FlashVars.

Exemple d'affectation par le paramètre en HTML

<param value="flashvars" value="&bar=Hello world!!!">

Un exemple d'évaluation de la propriété en Jscript:

//EN CONSIDERANT QUE L'ANIMATION A ETE INITIALISE AVEC L'EXEMPLE HTML PRECEDENT
window.onTest = function(oAnimation)
{
 
   //RETOURNES => "&bar=Hello world!!!";
   alert(oAnimation.FlashVars);  

   //RETOURNES => "Hello world";
   alert(oAnimation.GetVariable('/:bar'));  
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.FlashVars = "&bar=Hello world!!!";

    //RETOURNES => "Hello world";
    alert(oAnimation.GetVariable('/:bar'));
}

AllowScriptAccess

  • Evaluation et affectation
  • Accessible dés la création de l'objet.
  • Chaîne [BSTR]

Cette propriété n'existe que depuis la version 6,0,40,0 du lecteur Flash, elle permet de bloquer les possibilités par la fonctionnalité ActionScript LocalConnection , qui autorise la communication de scripts entre deux animations ouvertes en même temps sur le même système, même dans des fenêtres différentes. Cet ajout a été fait pour mettre fin à la possibilité d'exploiter le partage des Shared Objects (sorte de cookies) entre des sites de domaines différents, comme expliqué plus précisemment sur une des technotes du site Macromedia.

HTML Jscript Signification
always always L'animation peux communiquer avec une autre animation via un objet LocalConnection.
never never L'animation ne peux pas communiquer avec une autre animation via un objet LocalConnection.

Exemple d'affectation par le paramètre en HTML

<param value="allowscriptaccess" value="never">

Un exemple d'évaluation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    if( oAnimation.AllowScriptAccess == 'Never')
        alert("Cette animation ne peux communiquer avec une autre animation sur ce système");
    else
        alert("Cette animation peux communiquer avec une autre animation sur ce système");
}

Un exemple d'affectation de la propriété en Jscript:

window.onTest = function(oAnimation)
{
    oAnimation.AllowScriptAccess = "Always";
}
  rss rss english xhtml 1.1 css 2.0 wdg