C# - A t:SEQ elem használata

HTML+TIME lehetőségei a Web-alkalmazásokban 2. rész

forráskód letöltése
Az Internet Explorer 5.0 verziójának egyik újítása, hogy a HTML+TIME (Timed Interactive Multimedia Extensions) első, majd második verziója segítségével képes összehangolt időzítési és média-szinkronizációs támogatást nyújtani a HTML oldalaknak. A sorozat első részében megismerhettük, hogyan érhetjük el a technológia lehetőségeit, milyen instrukciókat kell adni a böngészőnek. Sorozatunk jelenlegi számában bemutatjuk a t:SEQ elem tulajdonságait, felhasználásának egy lehetőségét.
A mellékelt példa megnyitása előtt szükséges egy HTMLPlusTIME02 nevű virtuális könyvtár létrehozása, mely a példa könyvtárára mutat. Ehhez futtassa le a mellékelt CreateVD.js parancsállományt.
A HTML + TIME 2.0 továbbfejlesztett objektum-modelljének egyik eleme a t:SEQ objektum. Segítségével szekvenciális időzítést valósíthatunk meg a HTML kódban a tag gyermekobjektumain. Ez azt jelenti, hogy a gyermekobjektumok, mint példánkban a DIV kontrolok, meghatározott sorrendben hajthatják végre műveleteiket, adott esetben egy szöveg megjelenítését.
A SEQ elem számtalan property-vel és metódussal rendelkezik, melyekkel az időzítés és a kontrolok viselkedése befolyásolható. Lássuk a leggyakrabban használható property-ket.
BEGIN attribútum
Az Internet Explorer 6.0 verziójától kezdve érhető el a property, melynek segítségével meghatározható az a várakozási idő, melynek el kell telnie a folyamat megindulása előtt. A folyamat kezdetének időpontja megadható szabályos időformátumban, melynek a szintaxisa a következő: h:min:s. A formátum egyes elemei:
  • h: óra-összetevő
  • min: perc-összetevő
  • s: másodperc-összetevő
A kezdet megadható egy egész szám formájában is. Például BEGIN=”5”. Az alapértelmezett érték nulla.
A harmadik megadási mód az „indefinite” kulcsszó feltüntetésével történik, amikor nem definiáljuk a kezdetet, hanem valamilyen eseményhez köthetjük azt. Ilyen lehet a beginElement metódus meghívása.
DUR attribútum
A DUR property segítségével adhatjuk meg, hogy mennyi ideig tart egy-egy folyamat a szekvencián belül. Ezek az egyes folyamatoknál eltérők is lehetnek. Megadhatjuk ezt egy egész számmal, mely másodperces időtartamot jelent, vagy megtehetjük, hogy nem definiáljuk, ekkor az „indefiniate” kulcsszót használhatjuk.
RESTART attribútum
A property segítségével megadhatjuk, hogy milyen feltételekkel indulhat újra egy folyamat az egész szekvencián belül. A property lehetséges értékei a következők lehetnek:
  • always: a folyamat minden esetben újraindulhat
  • never: a folyamat a szekvencia időtartama alatt semmilyen körülmények közt nem indulhat újra
  • whenNotActive: a folyamat akkor indulhat újra, ha éppen nem az aktív folyamatról van szó a szekvencián belül
Az alapértelmezett érték ALWAYS.
SPEED attribútum
Megadható az egyes folyamatok végrehajtási sebessége. Az alapértelmezett érték az egység, vagyis 1.0. Megadhatunk egy tetszőleges lebegőpontos számot, például 0.5. Ekkor az egységnyi sebesség fele a végrehajtási sebesség.
REPEATCOUNT attribútum
Az attribútum segítségével megadható, hogy a folyamat a szekvencián belül hányszor indulhat újra. Az alapértelmezett érték 1, vagyis egyszer hajtódik végre a folyamat. Az újraindulás számát egész számként adjuk meg.
A SEQ elem rendelkezik hasznos metódusokkal is, melyekből ismertetünk néhányat. A metódusokat úgy használhatjuk, hogy az objektum neve után adjuk meg a metódusok neveit egy ponttal elválasztva. Például myseq.metódus().
beginElement metódus
Elérhetjük, hogy a szekvencia elinduljon. A metódust egy gombnyomás eseményében hívhatjuk meg a legkézenfekvőbb módon. A metódusnak sem paramétere, sem pedig visszatérési értéke nincs.
Például: objektum.beginElement();
endElement metódus
A szekvencia megállítására adhatunk utasítást. Például:
Objektum.endElement();
Felhasználás a gyakorlatban
A mellékelt példában egy olyan szekvenciát valósítunk meg, mely 2 másodperces várakozás után jelenít meg egy újabb mondatot, vagyis indít el egy újabb folyamatot. Annak érdekében, hogy a time2 viselkedésformát ráhúzhassuk a SEQ elemen belül elhelyezendő kontrolokra, meg kell adni a szükséges deklarációkat.
Első lépésként definiálnunk kell a HTML oldalunkon a speciális névteret, hogy a HTML+TIME objektumait elérhessük.
<HTML xmlns:t="urn:schemas-microsoft-com:time" XMLNS:MSHelp="http://msdn.microsoft.com/msHelp">
Dinamikusan importáljuk a szükséges névteret.
document.namespaces("t").doImport("#default#time2");
És a HTML kód fejlécében létrehozunk egy stílusosztályt.
<STYLE> .time { BEHAVIOR: url(#default#time2) }
</STYLE>
A HTML kódban elhelyeztük a <t:SEQ> elemet egy DIV kontrolba ágyazva, hogy a lapon pozícionálhassuk.
<div style="LEFT: 15px; POSITION: absolute; TOP: 80px">
  <t:SEQ ID="seq" BEGIN="0" DUR="indefinite">
A SEQ elemen belül pedig elhelyezünk annyi DIV kontrolt azonos azonosítóval, ahány folyamatot szeretnénk indítani a szekvencián belül. A DIV kontrolok szövegeket jelenítenek meg, megfelelően időzítve, a megadott ideig mutatva meg a szöveget.
<DIV ID="div1" CLASS="time" DUR="2" style="FONT-WEIGHT: bold; COLOR: blue">Első mondat...</DIV>
<DIV ID="div1" CLASS="time" DUR="2" style="FONT-WEIGHT: bold; COLOR: red">Második mondat...</DIV>
<DIV ID="div1" CLASS="time" DUR="2" style="FONT-WEIGHT: bold; COLOR: green">Harmadik mondat...</DIV>
<DIV ID="div1" CLASS="time" DUR="2" style="FONT-WEIGHT: bold; COLOR: brown">Negyedik mondat...</DIV>
...
A DIV kontrolokra ráhúztuk a time2 viselkedésformát. Ezt a CLASS attribútumban megadott „time” érték jelzi. A kontrolok 2 másodpercig jelenítenek meg egy mondatot (DUR=”2”).

HTML+TIME lehetőségei a Web-alkalmazásokban cikksorozat

A t:SEQ elem használata - HTML+TIME lehetőségei a Web-alkalmazásokban 2. rész