Realizarea Unui Curs Interactiv cu Ajutorul Calculatorului
Capitolul 1
Introducere
Lucrarea are ca obiectiv realizarea unui curs interactiv cu ajutorul calculatorului. Printre principalele roluri indeplinite de informatia on-line este cel formativ, educativ. Pe aceste considerente, universitatile si scolile de toate gradele din intreaga lume, au actionat deja in diferite moduri pentru asimilarea Internetului in invatamantul de zi cu zi. Pentru a ilustra maniera in care informatiile on-line pot substitui mijloacele traditionale de cunoastere precum manuale scolare, biblioteci, atlase, planse didactice, sau chiar mulaje, aceasta lucrare prezinta primul pas, acela de transpunere a unui curs pe calculator.
Este firesc sa se respecte aspectul dinamic al informatiilor. Sistemul va fi realizat intr-o arhitectura deschisa, permitand:
adaugarea unor noi informatii;
diversificarea punctelor de vedere din care utilizatorul se poate apropia de domeniu;
diversificarea categoriilor de utilizatori.
In cadrul acestei lucrari mi-am propus sa asigur informatii destinate unui student din anul IV sau V.
Modelul teoretic utilizat in construirea sistemului a fost modelul hypertext – model de organizare si explorare a cunostintelor bazat pe asociativitate.
Folosirea sistemului hypertext pentru aplicatii “tutorial” reprezinta o solutie de varf, care prin ea insasi prezinta interes.
Reprezentarea informatiilor sub aceasta forma permite o explorare individualizata in functie de interesul utilizatorului. In orice moment, autorul aplicatiei pune la dispozitia utilizatorului un numar de cai posibile de continuare a navigatiei. Puterea de decizie, insa, o are cititorul.
Capitolul 2
Sistemele
hipertext si multimedia
2.1 Modalitati de organizare a textelor
Înainte de a defini notiunile de mutlimedia, hipertext, hipermedia, vom analiza posibilele forme de organizare a textelor.
Astazi, în lume, este vehiculata o cantitate excesiva de informatie si pentru reprezentarea acesteia se utilizeaza trei forme de organizare, dupa cum urmeaza:
1. organizarea liniara, de tip " roman " – informatiile trebuie parcurse secvential, de la început la sfârsit, precum citirea unui roman;
2. organizarea sub forma ierarhica, arborescenta, pe nivele (de exemplu capitole, subcapitole, paragrafe).
Organizarea pe nivele (capitole, sectiuni) o putem gasi si la roman, dar ceea ce este deosebit fata de acesta, este faptul ca forma de organizare în discutie nu necesita parcurgerea întregului text, ci se permite aprofundarea pe diferite nivele a textului.
3. organizarea asociativa, sub forma de retea de informatii; aceasta forma de organizare a informatiilor corespunde cel mai bine modului nostru de a gândi.
În urma unor analize si experimente facute asupra memoriei si a modului în care fiintele umane gândesc si prelucreaza informatia s-a constatat ca memoria este de natura asociativa. Un experiment consta în a cere unei persoane aflata în stare relaxata sa faca asociatii libere pornind de la un cuvânt, de exemplu "vara".
persoana 1 vara – soare– stea – astronomie – telescop – Galileo
persoana 2 vara – înot– mare – peste – cina – platou – cutit – argint
Toate cunostintele acumulate de om de-a lungul timpului se constituie într-o retea complexa în care nodurile sunt reprezentate de informatii din baza de cunostinte acumulata în timp. Învatarea unei notiuni noi se face prin asocierea ei cu altele vechi, deja cunoscute.
Procesul învatarii înseamna de fapt adaugarea unei noi informatii la cele deja existente, acest lucru corespunzând adaugarii unui nod nou la reteaua informationala curenta.
Aceasta metoda de reprezentare a informatiilor permite trecerea dintr-o sectiune a textului în alta sectiune care nu este alaturata primeia (referinte de forma: "vezi paragraful 3.2") si care se afla în alt document (referinte de forma: "vezi Dictionarul Explicativ").
Accesul liniar la informatii (corespunzator primei forme de organizare a textelor) este reprezentat schematic în fig.1.1., iar cel neliniar (corespunzator formelor 2 si 3) în fig.1.2..
Fig. 2.1 Fig. 2.2 .
Accesul liniar la informatii Accesul neliniar la informatii
Legenda: = hotword
2.2 Multimedia, hipertext si hipermedia
Termenul "multimedia" refera diferite tipuri de informatii (text, imagini, sunet, animatie, video), ce pot fi incluse în aplicatiile realizate pe calculator, cu conditia ca platformele de lucru sa fie dotate cu componentele necesare (hardware si software).
Tehnologia multimedia nu este un lucru nou. Integrarea textului si a graficii în aplicatiile soft se face de ani de zile. Utilizarea acestei tehnologii reprezinta un mod eficient de prezentare a informatiei, implicând urmatoarele tipuri de elemente:
text – reprezinta informatia fundamentala folosita în cele mai multe aplicatii multimedia ;
imagini grafice – în general o imagine grafica constituie un puternic mod de ilustrare a informatiei ;
animatie – se refera la imaginile grafice miscate. Exista concepte care sunt dificil de ilustrat folosind o singura fotografie sau o serie de fotografii si mult mai dificil de explicat folosind text. Fisierele care contin animatie, necesita mult mai mult spatiu de stocare decât fisierele grafice, care implica o singura imagine ;
sunetul – încorporarea sunetului în aplicatiile multimedia furnizeaza utilizatorului informatii imposibil de redat prin orice alta metoda. De exemplu, sunt imposibil de descris sunetele scoase de pasari, folosind cuvintele. În aceasta situatie, nici textul si nici imaginile nu ajuta prea mult. Ca si fisierele de animatie, fisierele cu sunete ocupa mult spatiu pe disc ;
video – se refera la posibilitatea derularii unor clip-uri video.
Termenul hipertext refera un sistem flexibil de reprezentare a cunostintelor organizate asociativ, sub forma de retea semantica ale carei noduri contin text, noduri ce sunt conexate prin legaturi.
Sistemele hipertext permit utilizatorilor navigarea printre nodurile informationale ale retelei, aceasta parcurgere corespunzând modului asociativ în care oamenii gândesc.
Spre deosebire de organizarile liniare ale documentelor în care exista o singura cale de parcurgere a bazei de cunostinte, organizarile asociative ofera mai multe cai posibile.
Sistemele hipertext, referind doar texte si, eventual, imagini grafice, necesita o platforma de lucru cu configuratie minima.
Odata cu dezvoltarea tehnologiei în lumea computerelor (aparitia unor monitoare de înalta fidelitae, placi video sau audio performante, procesoare rapide, etc), termenul de hipertext s-a extins spre cel de hipermedia , prin faptul ca nodurile unei retele hipermedia contin pe lânga text si alte elemente, dintre cele prezente în aplicatiile multimedia: sunet, video, animatie sau, eventual, orice combinatie a acestora.
În general, principiile de proiectare a sistemelor hipermedia sunt cele folosite si pentru proiectarea sistemelor hipertext.
Sistemele hipermedia, aparute în urma dezvoltarii rapide a suportului hardware, reprezinta un subdomeniu al aplicatiilor multimedia. Ca urmare, imaginea însotita de sunet a devenit o forma de propagare a informatiei la fel de importanta ca si textul scris.
Organizarea neliniara a informatiilor din sistemele hipertext/hypemedia reprezinta un atu pentru acestea, spre deosebire de organizarea liniara a clasicelor medii de informare, cartile, în care activitatea cititorului devine mai greoaie, decât usoara si placuta, datorita detaliilor inserate în text care abat atentia acestuia, si datorita operatiei de cautare prin trecerea de la un subiect la altul si apoi revenirea la subiectul anterior. În concluzie, cartea reprezinta un mediu prea încarcat cu informatie, acest lucru îngreunând parcurgerea textului.
2.3 Un foarte scurt istoric al conceptului hipertext
În 1945 Vanevar Bush, directorul Agentiei Guvernamentale de Cercetare ^tiintifica si Dezvoltare a U.S.A. (U.S. Government's Office of Scientific Research and Development), a fost primul care a descris conceptul de hipertext, desi el nu a utilizat termenul "hypertext" în descrierea acestei notiuni, propunând o organizarea neliniara a textului care sa corespunda structurii asociative a mintii umane.
Pentru a descrie o tehnologie noua si puternica de reprezentare a informatiilor, în 1965, Ted Nelson creeaza termenii "hipertext" si "hipermedia".
De la mijlocul anului 1980, interesul pentru hipertext a crescut, în acelasi timp dezvoltându-se un numar considerabil de sisteme hipertext, dintre care:
Guide (1986) – ruleaza pe diverse platforme: IBM PC, Macintosh;
HyperCard (1987) – ruleaza pe calculatoare Apple Macintosh;
NoteCards (1985) – sistem dezvoltat în Laboratorul de Sisteme Inteligente (Intelligent System Lab) de XEROX PARC;
Toolbook (1991) – ruleaza pe IBM PC.
2.4 Caracteristicile sistemelor
hipertext / hipermedia.
În continuare vor fi prezentate o parte din caracteristicile generale ale sistemelor hipertext si hipermedia, caracteristici care au avut drept consecinta utilizarea acestor sisteme ca sisteme de reprezentare a informatiilor.
1). Informatiile sunt organizate sub forma de retea, deci au o organizare asociativa.
Ceea ce a condus la structurarea informatiei sub forma de retea, a fost modul în care utilizatorul a dorit sa parcurga textul.
În aceste conditii un sistem hipertext reprezinta o retea semantica care este de fapt un graf ale carui noduri sunt fragmente de text, conectate între ele prin legaturi.
Un sistem hipermedia este o extindere a sistemului hipertext, prin faptul ca nodurile pot contine pe lânga text si imagini grafice, sunet, animatie, video.
O problema importanta care cade în sarcina proiectantului sistemului o reprezinta împartirea în noduri si stabilirea legaturilor dintre ele. Navigarea prin retea îi este permisa utilizatorului prin intermediul legaturilor.
2). Accesul la informatii se poate face doar cu ajutorul unui calculator.
Accesul la informatii asistat de calculator este impus din cauza complexitatii ridicate a organizarii sub forma de retea a informatiilor.
Aceasta limitare poate fi privita ca un dezavantaj, dar tinând cont de celelalte avantaje pe care le ofera sistemele hipertext si hipermedia, restrictia impusa "pierde teren" si datorita raspândirii accelerate a tehnicii de calcul.
3). Utilizatorul participa în mod direct la procesul de gasire a informatiei.
În sistemele hipertext/hipermedia, proiectantul este cel care creaza nodurile si stabileste legaturile între acestea, deci el este cel care îi ofera utilizatorului mai multe cai posibile de explorare a informatiilor. Cu toate acestea utilizatorul este cel care îsi alege traseul de parcurgere a textului dintre n cai posibile puse la dispozitie de proiectant.
4). Hipertextul/Hipermedia ofera posibilitatea personalizarii informatiei.
În sistemul hipertext/hipermedia poate fi implementata asa-numita "personalizare" a informatiei, care se refera la faptul ca o notiune prezenta într-un astfel de sistem poate reprezenta lucruri distincte pentru diferite categorii de utilizatori.
Daca notiunea apare într-un context, atunci din contextul respectiv va rezulta întelesul acesteia, iar daca termenul apare într-un tablou de indecsi, atunci utilizatorul va alege singur explicatiile corespunzatoare calificarii sale.
5). Pastrarea unui istoric al parcurgerii informatiei.
Aceasta facilitate este utila în procesul de navigare prin reteaua semantica, în special în procesul de revenire. Daca utilizatorul, dintr-un nod la retelei, printr-o legatura ajunge într-o zona care nu-i prezinta interes, poate reveni în nodul sursa din care a plecat.
2.5 Elementele unui sistem hipertext/hipermedia
Din punct de vedere conceptual sistemele hipertext/hipermedia sunt constituite din anumite elemente.
Acestea sunt:
1. Nodurile – nodul ("node") este un bloc de informatii cuprins în reteaua semantica a sistemului hipertext. El poate cuprinde text, imagini grafice sau orice combinatie a acestora, daca este vorba de un sistem hipertext, iar, daca avem un sistem hipermedia, noduîntre acestea, deci el este cel care îi ofera utilizatorului mai multe cai posibile de explorare a informatiilor. Cu toate acestea utilizatorul este cel care îsi alege traseul de parcurgere a textului dintre n cai posibile puse la dispozitie de proiectant.
4). Hipertextul/Hipermedia ofera posibilitatea personalizarii informatiei.
În sistemul hipertext/hipermedia poate fi implementata asa-numita "personalizare" a informatiei, care se refera la faptul ca o notiune prezenta într-un astfel de sistem poate reprezenta lucruri distincte pentru diferite categorii de utilizatori.
Daca notiunea apare într-un context, atunci din contextul respectiv va rezulta întelesul acesteia, iar daca termenul apare într-un tablou de indecsi, atunci utilizatorul va alege singur explicatiile corespunzatoare calificarii sale.
5). Pastrarea unui istoric al parcurgerii informatiei.
Aceasta facilitate este utila în procesul de navigare prin reteaua semantica, în special în procesul de revenire. Daca utilizatorul, dintr-un nod la retelei, printr-o legatura ajunge într-o zona care nu-i prezinta interes, poate reveni în nodul sursa din care a plecat.
2.5 Elementele unui sistem hipertext/hipermedia
Din punct de vedere conceptual sistemele hipertext/hipermedia sunt constituite din anumite elemente.
Acestea sunt:
1. Nodurile – nodul ("node") este un bloc de informatii cuprins în reteaua semantica a sistemului hipertext. El poate cuprinde text, imagini grafice sau orice combinatie a acestora, daca este vorba de un sistem hipertext, iar, daca avem un sistem hipermedia, nodul contine în plus sunte, animatie, video.
Componenta informationala a nodurilor este stabilita de autorul hipertextului.
Nodurile pot fi de un singur tip sau pot fi clasificate în mai multe tipuri.
2. Fereastra – fereastra ("window") afiseaza, de obicei, informatia dintr-un singur nod, cu alte cuvinte informatia din nodul respectiv nu trebuie sa depaseasca spatiul de afisare al ferestrei. Se poate, daca sistemul permite, afisarea mai multor noduri într-o fereastra.
Daca nodul este foarte complex, caz în care fereastra nu poate afisa la un moment dat decât o portiune din el, sistemul trebuie dotat cu mecanisme de defilare ("scrolling") în fereastra de afisare.
3. Tabela de indecsi – nu toate sistemele au o tabela de indecsi, însa folosirea unei astfel de tabele ofera utilizatorului posibilitatea de a alege dintr-o lista notiunea pe care doreste sa o detalieze.
Organizarea tabelei poate fi liniara (lista sau vector) sau ierarhizata (arbore sau latice). Indiferent de modul de organizare al tabelei, trebuie sa i se permita utilizatorului un acces rapid la informatie.
4. @intele – tinta ("target") este o parte din informatia cuprinsa într-un nod care reprezinta punctul de plecare, originea unei legaturi.
Este de obicei un cuvânt, un grup de cuvinte sau o alta informatie din nod (de exemplu o portiune dintr-o imagine). @inte pot fi si butoanele prin a caror "apasare" se executa salturi la alte noduri (de exemplu butoanele "next", "previous").
În fereastra de afisare tintele sunt scoase în evidenta ("highlighted"). În momentul apasarii tintei, ea devine activa.
5. Legaturile – legatura ("link"), numita si relatie, se stabileste între nodurile din reteaua informationala.
Fiecare nod din reteaua hipertextului este legat la alte noduri, permitând astfel utilizatorului trecerea de la un nod la altul. O legatura între doua noduri i si j, ofera utilizatorului, "localizat" în nodul i, posibilitatea de a accesa direct nodul j, fara a mai trece prin alte noduri.
Trebuie ca :
orice legatura sa aiba un punct de plecare (o tinta, eventual întreg nodul) în nodul sursa;
fiecare legatura sa aiba si o legatura inversa care sa permita revenirea rapida în nodul initial;
Clasificarea legaturilor într-un hipertext.
Aceasta clasificare se face tinând seama de mai multe criterii :
a) în functie de motivele care impun existenta legaturilor, ele se împart în:
legaturi obiective – sunt legaturi care impun utilizatorilor o parcurgere logica a informatiilor; astfel spus, aceste legaturi le sugereaza utilizatorilor o ordine naturala, implicita, de navigare prin document.
legaturi subiective – impuse de proiectantul sistemului sau chiar de utilizator, dupa dorinte sau necesitati.
b) în functie de modul de specificare a legaturilor, se împart în :
legaturi explicite – sunt cele specificate în mod direct de proiectant; ele sunt prevazute prin legarea explicita a unor tinte (cuvinte cheie din text, scoase în evidenta fata de restul textului sau butoane) de anumite actiuni. De exemplu, un buton (o tinta) are asociata o actiune. Apasarea butonului conduce la selectarea actiunii legate la buton, deci automat la alegerea legaturii respective. Efectul executiei actiunii este navigarea în alt nod.
Legaturile explicite pot fi:
normale – pot sa refere si un nod "strain" (aflat în alt fisier decât cel în care se afla nodul curent);
locale – refera doar un nod aflat tot în fisierul curent;
legaturi implicite, care nu trebuiesc specificate de proiectant, ele fiind introduse automat de mediu (de exemplu legaturile de parcurgere înainte/înapoi).
c) în functie de modul de utilizare al legaturilor, se împart în:
legaturi de parcurgere – care permit exploatarea rapida a informatiilor din sistem. Exemple de astfel de legaturi ar fi:
conexiunile – legaturi între concepte similare
legaturile de detaliere – trimiteri catre nodurile care explica anumite concepte
legaturile de generalizare – permit accesarea nodurilor superioare ierarhic din cele de detaliu.
legaturi de istoric – sistemul pastreaza istoria selectarii nodurilor, astfel ca va exista întotdeauna o legatura de revenire între nodul curent si cel anterior, chiar daca acest tip de legatura nu a fost implementat explicit de proiectant.
legaturi de organizare – legaturi care se folosesc pentru structurarea interna a informatiei, cu importanta deosebita asupra claritatii si usurintei de folosire a sistemului de catre utilizator; aceste legaturi se mai numesc si legaturi ierarhice (de clasificare). Pot exista, de exemplu, noduri ce contin liste cu elemente de interes pentru utilizator, noduri ce permit alegerea unei cai de continuare a explorarii documentului, din mai multe posibile.
legaturi de inferenta – sunt folosite mai mult în sistemele de inteligenta artificiala si ele sunt de tipul :
legaturi de genul "implicatie" (ex. propozitia A implica propozitia B );
legaturi cauzale (ex. fenomenul A produce fenomenul B);
legaturi de similaritate, apartenenta (ex. obiectul A apartine multimii B);
legaturi de instantiere (ex. obiectul A este o instanta a clasei B).
d). în functie de capetele legaturilor, se clasifica în:
legaturi nod-nod – de ex. cele de revenire, clasificare sau cele obiective; nu este necesara existenta unei tinte explicite în nodul sursa, care sa constituie originea legaturii;
legaturi tinta-nod – cuprind majoritatea legaturilor dintr-un sistem hipertext/hipermedia;
legaturi de la tabela de indecsi la un nod – utilizatorul parcurge tabela de indecsi si alege conceptul pe care vrea sa-l detalieze.
e). din punct de vedere al numarului de destinatari posibili, se împart în:
legaturi fixe – au un singur nod destinatie, astfel ca ori de câte ori se activeaza tinta saltul se va face la acelasi nod destinatie;
legaturi personalizate – exista o tinta în nodul sursa si mai multe noduri destinatie posibile; dupa activitatea tintei, alegerea nodului destinatie se face dupa un anumit criteriu (context, categorie de utilizatori), aceste legaturi reprezinta modalitatea de reprezentare a "personalizarii".
6. Graful – graful ("graph") reprezinta de fapt reteaua sistemului, adica totalitatea nodurilor si a legaturilor dintre ele.
În situatia sistemelor cu o baza informationala foarte bogata, graful devine complex, ceea ce îngreuneaza vizualizarea sau întelegerea sa.
7. Subgrafurile – subgraful ("web") reprezina o portiune din graf, formata din noduri între care exista anumite legaturi.
Avantajele subgrafului sunt:
poate fi afisat în întregime pe ecran.
permite utilizatorului sa parcurga din întregul graf doar partea care îl intereseaza.
8. Drumul – drumul ("path") sau calea este secventa nodurilor parcurse de un utilizator urmând legaturile dintr-un graf.
9. Rasfoirea – rasfoirea ("broswsing") este procesul de parcurgere a nodurilor unui hipertext, deci reprezinta navigarea prin text.
Utilizatorul intra în aplicatie printr-un punct si în functie de interesul acestuia si de alternativele oferite de aplicatie, utilizatorul îsi alege calea de urmat. Navigarea implica saltul de la un nod la altul existând posibilitatea pierderii în aplicatie a utilizatorului. Pentru a putea reveni în nodurile parcurse anterior, acest drum este memorat de sistem.
De asemenea, pentru a sprijini utilizatorul în luarea unor decizii logice referitoare la nodul unde trebuie sa ajunga în pasul urmator, s-a introdus conceptul de "map", concept utilizat în general pentru a-i furniza utilizatorului o privire de ansamblu asupra corpurilor de cunostinte stocate în aplicatie.
10. Perspectiva – perspectiva ("perspective") este viziunea obisnuita de utilizator printr-o anumita parcurgere a unor noduri, aceasta perspectiva depinzând foarte mult de calea aleasa.
2.6 Principii de baza
P
entru realizarea si dezvoltarea unui sistem hipermedia, trebuie luati în considerare 3 factori importanti:
A. tipul de utilizatori carora li se adreseaza sistemul
Exista doua categorii de utilizatori:
avansati (care folosesc frecvent calculatorul) si
ocazionali (care lucreaza rar pe calculator).
Pentru obtinerea unui sistem care sa functioneze corect si sa fie pe plac utilizatorilor, proiectantul trebuie sa stabileasca de la început cine vor fi utilizatorii si în ce scop vor folosi sistemul, aceste doua aspecte influentând
organizarea sistemului,
functiile sale,
interfata cu utilizatorul.
B. produsul soft folosit pentru realizarea sistemului hipermedia.
O alta decizie importanta pe care trebuie sa o ia proiectantul reprezinta alegerea mediului de dezvoltare a aplicatiei. De obicei, aceasta alegere are loc dupa ce etapa de specificare a proiectului a luat sfârsit.
Mediul folosit pentru dezvoltarea unui sistem hipermedia depinde foarte mult de natura proiectului.
La ora actuala exista un numar considerabil de produs software pentru crearea de sisteme hipermedia. Lista celor mai populare medii de dezvoltare a sistemelor hipermedia este urmatoarea:
Produsul Platforma
Guide IBM PC si Macintosh
HyperCard Macintosh
Toolbook IBM PC
HyperNotes IBM PC
KnowledgePRO IBM PC
Este necesara existenta unui set de unelte ("tools") care sa faciliteze dezvoltarea produsului, cât si a unui mediu run-time (fisiere de runtime) care sa permita utilizatorilor accesul la informatia implicata în produsul realizat.
C. tipul platformei pe care va fi prezentat produsul obisnuit
Tipul platformei folosite pentru prezentarea produsului hipermedia este un alt factor care are, de asemenea, o influenta semnificativa asupra modului în care produsul este realizat.
Platforma de lucru necesara este în general reprezentata de un calculator IBM PC cu puternice capabilitati: rezolutie ridicata a ecranului (placa grafica puternica), dispozitive de stocare (harddisk de capacitate ridicata, disc optic – deoarece produsele hipermedia sunt foarte mari si necesita mult spatiu pe disc).
În general, modul în care se implementeaza un sistem hipermedia depinde de subiectul particular implicat în proiect, dar, indiferent de continutul informational al aplicatiei hipermedia ce se doreste a fi realizata, exista câteva principii de baza, de care trebuie sa se tina cont:
o decizie importanta care se ia la începutul realizarii aplicatiei o reprezinta grupul de utilizatori care vor accesa sistemul. Din acest punct de vedere autorul sistemului trebuie sa se ocupe si de controlul accesului utilizatorilor la informatie;
un alt aspect important îl reprezinta specificarea corpului de cunostinte pe care se bazeaza aplicatia hipermedia. Odata stabilit materialul de baza, el este împartit în unitati de informatie de dimensiuni mai reduse (pentru a fi prezentate utilizatorului), unitati reprezentate prin noduri în sistemul hipermedia. Aceste noduri de informatie pot contine text, sunet, imagini grafice, animatie, video. Pot exista, de asemenea, noduri complexe (mixte) de natura multimedia, de ex : text + sunet, text + imagini grafice, sunet + imagini grafice + text etc.;
o alta decizie importanta pentru implementarea aplicatiei, tine de numarul de legaturi care sunt permise utilizatorului dintr-un nod oarecare al aplicatiei. Prea multe pot conduce la cresterea complexitatii structurii sistemului si la dezorientarea utilizatorului, în timp ce prea putine legaturi au ca rezultat un control limitat al utilizatorului, lipsa flexibilitatii sistemului si crearea unei structuri hipermedia foarte simpliste;
deoarece sistemul hipermedia implica informatii organizate în retea, informatii ce sunt afisate pe ecran utilizatorului, o atentie deosebita trebuie acordata interfetei cu utilizatorul, interfata reprezentând totalitatea elementelor afisabile care-i permit omului sa "comunice" cu calculatorul.
De aceea pentru obtinerea unei interfete "prietenoase" ("user – friendly"), cât mai comoda si mai confortabila din punct de vedere fizic si psihic, trebuiesc alese cu multa grija:
culoarea
atributele de afisare a textelor (dimensiune, stil, font)
atributele de afisare a obiectelor (butoane, imagini grafice, câmpuri ) pe ecran (vizibilitate, forma, dimensiune, etc.).
La un moment dat, utilizatorului i se afiseaza pe ecran un nod (text, sunet, imagine grafica, animatie sau diferite combinatii ale lor) în care sunt scoase în evidenta anumite cuvinte sau elemente grafice. Selectarea unuia dintre elementele evidentiate are ca efect aparitia pe ecran a nodului catre care pointeaza elementul selectat.
O interfata trebuie sa îndeplineasca calitatea de utilizabilitate ce se refera la utilizarea practica a interfetelor, care trebuie sa fie satisfacatoare pentru utilizatorii ei potentiali.
Aceasta calitate se masoara prin :
mod de învatare – interfata trebuie sa fie usor de învatat sau reamintit
eficienta – interfata trebuie sa permita actiuni complexe utilizând comenzi simple
flexibilitate – posibilitatea de a adapta interfata
confort – utilizarea interfetei trebuie sa se poata face comod, iar dorinta de a continua si de a extinde folosirea sistemului trebuie sa fie rezultatul satisfactiei obtinute de utilizator în urma utilizarii interfetei.
Legata de ideea utilizabilitatii este metafora ce reprezinta o imagine familiara oferita de interfata care sugereaza ce trebuie sa facem.
Metafore existente : – metafora biroului (simularea biroului pe ecran).
– metafora consolei
– metafora rasfoirii unei carti
În proiectarea interfetelor trebuie sa se respecte câteva principii ergonomice, dupa cum urmeaza:
a. Principiul de coerenta – impune un caracter unitar al constituentilor unei interfete si absenta exceptiilor.
b. Principiul de conciziune – are ca scop micsorarea spatiului de afisare a rezultatelor si reducerea lungimii comenzilor. Conciziunea se realizeaza prin:
introducerea de abrevieri pentru utilizatorii specializati
utilizarea tastelor functionale
definirea de macrocomenzi pentru gruparea mai multor comenzi
existenta unor valori implicite ("default") impuse de sistem sau programabile de utilizator
existenta unei comenzi de anulare a comenzii precedente ("undo")
c. Principiul feedback-ului (reactia la fiecare actiune a utilizatorului)
În urma lansarii oricarei comenzi, utilizatorul trebuie sa primeasca un raspuns, din urmatoarele motive:
– utilizatorul trebuie sa fie asigurat ca sistemul lucreaza (ex.: la comanda FORMAT se afiseaza %).
– utilizatorului trebuie sa i se indice cât mai bine starea curenta de lucru a sistemului, astfel ca, pentru a întelege mai usor ceea ce se întâmpla, fereastra curenta activa trebuie sa apara în fata celorlalte, deasupra si sa fie individualizata.
d. Principiul de structurare a activitatilor – structurarea trebuie realizata atât în fond cât si în forma, astfel:
structurarea în fond a comenzilor se face pe niveluri, fiecare nivel permitând un numar de optiuni, iar selectia unei optiuni conduce la un nou context de lucru.
structurarea în forma se refera la diferite aspecte. Comenzile care nu sunt valide în contextul actual, dintr-un meniu, vor fi afisate "slab".
e. Principiul flexibilitatii – reprezinta posibilitatea de ajustare a interfetei la mediul de lucru si la utilizator. Ideala ar fi o interfata adaptiva.
2.7 Domenii de aplicare a sistemelor hipermedia
E
xista mai multe domenii care pot beneficia de aplicarea sistemelor hipermedia.
Dintre acestea amintesc :
învatamânt si instruire
Unul dintre domeniile fierbinti pentru hipermedia este învatamântul. Multi utilizatori gasesc ca hipermedia reprezinta un mediu de învatare mult mai natural, deoarece aceasta tehnologie prezinta informatia în forme variate, captând atentia utilizatorilor.
Hipermedia poate facilita învatarea limbilor straine. De altfel, sistemele hipermedia sunt deosebit de folositoare si în procesul de instruire. De exemplu, multe companii au dezvoltat programe hipermedia interactive pentru a instrui personalul nou angajat.
marketing si vânzari
Sistemele hipermedia sunt des utilizate de diverse companii pentru a face reclama produselor, prin imagini video care descriu modul de utilizare si functionare a produselor, imagini însotite si de date tehnice.
Alta directie în care sistemele hipermedia sunt utilizate cu succes în furnizarea de informatii, o reprezinta zonele des frecventate, cum ar fi aeroporturile, bibliotecile, etc. De exemplu, un computer dintr-un aeroport ofera calatorilor informatii despre atractii turistice, restaurante si hoteluri, informatii însotite de imagini grafice si harti care indica cum se ajunge acolo.
accesul la informatii
Datorita cantitatii excesive de informatii, accesul la acestea a devenit dificil. Din acest motiv, sistemele hipermedia reprezinta un mod eficient de distribuire a informatiilor în masa. Au aparut, astfel, enciclopedii, dictionare, care sunt disponibile pe CD ROM-uri si care permit utilizatorilor accesul rapid la informatii si cautari în baza de date a sistemului.
jocurile ("entertainment")
Un alt domeniu de aplicare a sistemelor hipermedia îl reprezinta jocurile pe calculator, care de obicei sunt de natura interactiva. Sunetul si animatia sunt elemente importante în aceste aplicatii folosite în scopul de a intensifica actiunea jocului.
2.8 Directii de dezvoltare a sistemelor multimedia
În ultimul timp a crescut foarte mult interesul pentru sistemele hipertext si hipermedia. Astfel, diferite probleme s-au dorit rezolvate.
a. Transferabilitatea
O problema a constituit-o transferarea unui corp de cunostinte hipermedia între diferite platforme hardware si software, aceasta problema fiind ilustrata schematic în fig.2 de mai jos :
MPC = Multimedia PC
Fig.2.3 Transferul resurselor hipermedia între platforme
Legat de aceasta problema, trebuie avute în vedere doua aspecte importante:
alegerea mediului pentru dezvoltarea sistemului hipermedia
selectarea platformei hard care sa permita dezvoltarea sistemului, aspecte care se determina reciproc astfel: daca ne decidem sa folosim HyperCard-ul pentru creearea resursei hipermedia, suntem obligati sa folosim un computer Macintosh, iar alegerea unui IBM PC, ca platforma de lucru, implica folosirea urmatoarelor medii de dezvoltare a sistemelor hipermedia: Toolbook, Knowledge PRO sau Guide.
Sistemele dezvoltate într-un mediu nu pot fi folosite cu usurinta în altul. De exemplu, un corp complex de cunostinte hipermedia creat pe o statie SUN, nu poate fi accesat de pe o statie Macintosh sau IBM PC.
Câteva solutii care garanteaza transferul resurselor hipermedia sunt:
a.1. Se defineste resursa hipermedia într-un mod generic, independent de sistem, în doi pasi:
primul pas implica folosirea unui limbaj independent de sistem, cum ar fi SGML (Standard Generalized MarkUp Language) care structureaza informatiile în entitati, stabilind legaturi între acestea,
pasul doi implica utilizarea unor produse soft de conversie a resursei obtinuta la pasul unu în functie de tipul platformei.
a.2. Aplicatia hipermedia este privita ca o resursa centrala partajata, prin faptul ca ea este dezvoltata pe un computer conectat într-o retea, în care utilizatorii, de la propriile terminale, pot accesa resursa.
Aceasta solutie implica mecanisme similare celor folosite în sistemele hipermedia distribuite, sisteme ce vor fi amintite în sectiunea urmatoare.
b. Sisteme hipermedia distribuite
Pentru accesul partajat la diferite tipuri de resurse, s-au creat retele de calculatoare distribuite, retele bazate pe modelul "client-server", în care exista doua entitati de baza:
serverele, care stocheaza resurse si
clientii, care acceseaza si "consuma" resursele oferite de server.
Acest lucru a determinat aparitia sistemelor hipertext si hipermedia distribuite, sisteme care se împart în doua categorii:
b.1. sisteme cu un singur server (vezi fig. 2.4) – serverul stocheaza toate legaturile si nodurile din aplicatie hipermedia; clientul, conectat la reteaua locala, poate accesa baza de cunostinte stocata în server.
Exemplu de astfel de sistem: Sistemul Neptune dezvoltat de firma TEKTRONIX în 1986 si care cuprinde doua componente importante:
interfata cu utilizatorul scrisa în Smalltalk (la acest nivel sistemul furnizeaza diverse browser-e).
un server numit HAM (Hypertext Abstract Machine), ce reprezinta un modul generic de hipertext având rolul de a furniza operatii de creare, modificare si acces asupra nodurilor si legaturilor.
b.2. sisteme cu servere multiple (vezi fig.2.5) – într-un astfel de sistem, nodurile sunt distribuite pe servere diferite, iar între serverele care gazduiesc noduri se stabilesc legaturi.
Un exemplu de astfel de sistem este VNS (Virtual Notebooks System – 1989), un sistem dedicat lucrului în echipa; din punct de vedere arhitectural, sistemul este compus dintr-o colectie de agende ("notebooks") similare book-urilor electronice hipermedia. Fiecare agenda este formata din pagini care pot contine text (notite) sau imagini grafict sau fisier bitmap).
Paginile pot contine legaturi la alte pagini, iar aceste legaturi sunt reprezentate în sistem prin icoane (ele permit deplasarea rapida dintr-o pagina în alta).
Un utilizator poate lucra cu mai multe agende, o parte dintre ele putând fi partajate între mai multi membrii ai grupului.
Utilizatorii pot schimba pagini din agendele lor utilizând serviciul de posta electronica pus la dispozitie de catre sistem.
Fig.2.4 Tipuri de sisteme hipermedia distribuite
sistem cu un singur server
Fig.2.5 Tipuri de sisteme hipermedia distribuite
sistem cu servere multiple
În anii ce urmeaza, se preconizeaza o crestere substantiala a cererilor de sisteme hipermedia distribuite, similare celor descrise, acest lucru fiind o consecinta directa a doua evenimente importante:
Primul eveniment îl reprezinta extinderea legaturilor de telecomunicatii care permit schimbul rapid de informatii multimedia între diferite regiuni, la distanta, prin intermediul retelelor de calculatoare distribuite; în acest context aparitia ISDN (Integrated Services Digital Network), care faciliteaza comunicatiile, marcheaza un pas important în rezolvara problemelor de comunicare.
Al doilea eveniment îl constituie aparitia unui software care permite accesul distribuit în crearea si utilizarea sistemelor hipermedia; amintesc aici Lotus Nots (1991), un mediu destinat lucrului în grup, permitând accesul distribuit la resurse prin intermediul postei electronice, documentelor multimedia si facilitatilor de hipertext.
c.Teleconferinta ("telepresence")
În engleza este folosit termenul de "telepresence", unde "presence"= prezenta, înfatisare.
Deoarece fiinta umana este o entitate fizica reala, una dintre limitarile majore ale acesteia o reprezinta imposibilitatea de a coexista simultan în doua locuri geografice diferite. Tehnologia poate fi aplicata în nenumarate moduri pentru a rezolva acest neajuns.
Teleconferinta ("telepresence") reprezinta o solutie în acest sens. Termenul însusi este unul generic utilizat pentru a descrie mecanismele care permit unui obiect sau proces sa fie proiectat dintr-un loc fizic în altul prin intermediul unor canale de comunicatii corespunzatoare.
Una dintre cele mai cunoscute metode de implementare a telepresence-lui este realizata prin intermediul televiziunii. De exemplu, o camera TV poate fi utilizata pentru a înregistra evenimentele care se petrec într-un anumit loc; imaginile captate pot fi, apoi, retransmise în alt loc situat la orice distanta fata de sursa.
Daca camera TV este mobila (se poate deplasa dintr-un loc într-altul), atunci acest sistem poate fi utilizat pentru a explora zone greu accesibile sau chiar inaccesibile ale fiintei umane.
d. Realitatea virtuala ("virtual reality)
Reprezinta o extindere a ideii de multimedia cu manipulare directa, adica un sistem în care utilizatorul, pentru a interactiona cu calculatorul nu trebuie sa scrie comenzi, ci comenzile se fac prin actiuni fizice asupra unor obiecte.
Realitatea virtuala implica realizarea iluziei de participare a utilizatorului într-un mediu sintetic 3D.
Sistemul implica trei elemente de baza:
imersiune multisenzoriala (scufundare) (auditiv, vizual, tactil),
actiune directa: utilizatorul actioneaza asupra obiectelor din mediul 3D,
navigarea în mediul sintetic 3D.
Pentru realizarea acestora sunt necesare :
dispozitive periferice
pentru sunet : casti stereo de înalta fidelitate (HIFI)
pentru imagine : dispozitive pentru ochi (se aplica, pe fiecare ochi, câte un mic ecran de calculator) (Head Mounted Devices) (HMD) (ochelari = 2 ecrane)
pentru simtul tactil: manusi informationale (Data Glove) cu doua roluri:
traduc miscarile mâinii în semnale numerice (pe manusi exista traductoare)
realizeaza feedback-ul (senzatia de apasare,de prindere)
grafica interactiva performanta pentru vizualizarea mediului sintetic
simulari ale legilor fizicii pentru a da senzatia de realitate.
Aplicatii ale realitatii virtuale:
jocuri,
simulatoare (de zbor) – unul dintre primele domenii în care a fost utilizata realitatea virtuala,
tunele aerodinamice virtuale,
arhitectura,
medicina (în chirurgie, microchirurgie)
participare virtuala în medii toxice.
Capitolul 3
Mediul Asymetrix Multimedia Toolbook 3.0.
3.1. Despre Toolbook
Toolbook-ul este un produs software dezvoltat de Asymetrix Corporation (1989), utilizat pentru construirea aplicatiilor WINDOWS. Toolbook-ul ruleaza pe IBM PC sub mediul Microsoft Windows, fiind analogul sistemului HyperCard de pe Macintosh.
O aplicatie Toolbook prezinta toate trasaturile caracteristice unei aplicatii WINDOWS: o interfata grafica cu utilizatorul (Graphical User Interface = GUI), programare bazata pe mesaje si orientata pe obiecte, si posibilitatea de a interactiona cu alte aplicatii WINDOWS.
Toolbook-ul este un mediu interactiv de dezvoltare si rulare a aplicatiilor, care ofera proiectantilor de aplicatii un puternic limbaj de programare numit OpenScript. Un program scris în acest limbaj se numeste script.
Toolbook-ul permite dezvoltarea unor aplicatii dintr-o gama larga de domenii, în special aplicatii care beneficiaza de o interfata grafica cu utilizatorul (GUI ).
Exemple de aplicatii create în Toolbook:
aplicatii hipermedia, ca de ex. enciclopedii,
aplicatii de instruire interactive, de ex. tutorialele,
aplicatii baze de date,
jocuri care utilizeaza elemente grafice, animatie .
Informatia în Toolbook poate fi reprezentata grafic, ceea ce este mult mai eficient decât utilizarea simpla a textului. Aplicatiile pot include sunet, animatie, imagini scanate, obiecte grafice si, bineinteles, text.
3.2. Organizarea aplicatiilor în Toolbook
Toolbook implementeaza metafora "carti" ("book"-ului). O aplicatie în Toolbook se numeste "book" si este, de fapt, un fisier cu extensia .tbk .
Book-ul este compus din pagini (" page" ) reprezentând ecrane generate în Toolbook si background-uri. Paginile sunt afisate în ferestre numite viewers. Paginile, unitatile de baza ale "book"-ului, pot contine combinatii variate de text, grafica, butoane. Daca anumite elemente sunt comune mai multor pagini, ele sunt plasate pe un background, ceea ce înseamna ca mai multe pagini ale unui book împart acelasi background.
Toolbook, fiind un mediu de programare orientat pe obiecte, aplicatiile sale sunt compuse din obiecte ( de ex. background-uri, pagini, obiecte grafice ).
3.3. Nivele de acces
A
plicatia poate fi accesata la doua nivele:
nivelul autor ("author level")
La acest nivel se pot :
dezvolta aplicatii,
crea noi book-uri,
crea si modifica obiecte,
scrie programe (scripturi) în OpenScript;
iar elementele grafice ale sistemului, sunt:
– menu bar
– tool bar furnizeaza accesul rapid la cele mai utilizate comenzi; se poate folosi o comanda fie alegând-o din menu bar, fie apasând butonul corespunzator din toolbar;
– page si background : pagina ("page") reprezinta partea de prim plan a interfetei, în timp ce background -ul reprezinta fundalul interfetei ("foreground");
– palete ("palettes"): folosite la desenarea si modificarea obiectelor;
– status bar: indica linia de stare.
nivelul cititor ("reader level")
La acest nivel utilizatorul ruleaza aplicatia oferindu-i-se tot ceea ce este necesar pentru executia aplicatiei, dar neavând acces la nici un instrument utilizat în dezvoltarea aplicatiei.
Utilizatorul nu poate decât sa:
navigheze printre paginile book -ului;
sa editeze textul;
sa printeze fragmente din book;
sa execute scripturi.
Proiectantul sistemului poate accesa aplicatia la ambele nivele si poate restrictiona accesul utilizatorilor, furnizându-le acestora doar versiunea de run-time (fisierele de run-time ) a Toolbook-ului, care permite accesul doar la nivel cititor.
3.4. Obiecte si proprietatile lor
Fiind un mediu orientat pe obiecte ("object-oriented"), aplicatiile sunt alcatuite din obiecte. Obiectele sunt caracterizate de proprietati ce definesc aparitia si comportarea acestora. Valorile unor proprietati pot fi definite de autorul sistemului (de ex. numele unui obiect ), în timp ce altele sunt definite de sistem (de ex. sistemul atribuie fiecarui obiect un numar unic de identificare ).
Când se deschide un nou book, Toolbook-ul creeaza automat urmatoarele elemente: book-ul însusi, o pagina, un background si un viewer care afiseaza pagina goala creata.
Pentru crearea obiectelor sistemul ofera autorului aplicatiei diferite unelte de lucru.
Lista obiectelor din mediul Toolbook este :
sistem ("system") – sistemul însusi este considerat un obiect ale carui proprietati generale ar fi: sysError, sysCursor, caretLocation,
background – un background poate fi partajat de una sau mai multe pagini din book; obiectele background-ului sunt afisate pe fiecare dintre paginile care împart background-ul respectiv,
book – prin "book" se întelege atât un fisier cu extensia .tbk, cât si un obiect cu proprietati (de ex.: numele fisierului, dimensiunea implicita a paginii etc.),
page – pagina este unitatea de baza a book-ului; o proprietate a paginii este numele paginii, care permite referirea obiectelor localizate pe pagina respectiva,
viewer – este o fereastra care poate afisa o pagina din book-ul curent sau din altul; deoarece ele contin pagini, au mai multe proprietati decât alte obiecte si necesita mai multi pasi de utilizare: se creeaza viewerul si i se asociaza acestuia o pagina implicita ce va fi afisata în momentul afisarii viewer-ului; în functie de modul în care se utilizeaza viewer-ul, se seteaza proprietatile lui, proprietati care determina stilul si comportamentul acestuia.
modale – ramân active pâna când sunt închise, timp în care, utilizatorul nu poate interactiona cu restul aplicatiei.
nemodale – ramân deschise, timp în care utilizatorul poate interactiona cu restul aplicatiei.
La deschiderea unui nou book, Toolbook-ul creeaza automat viewer-ul sistem (viewer ID 0 sau Main window ) în care se afiseaza o pagina goala.
butoane – exista urmatoarele tipuri de butoane :
pushbutton
radiobutton
check boxes
label
Orice buton are patru stari:
normal
invert
disable
checked
Cu fiecare stare a butonului se poate asocia o resursa grafica.
campuri ("field"- uri si "recordField"-uri) – sunt obiecte care contin text, deci care pot fi editate.
Field -ul este utilizat atunci când textul apare într-o singura pagina, caz în care field-ul este creat la nivelul paginii sau atunci când textul ramâne nemodificat în mai multe pagini care împart acelasi background, situatie în care field-ul este creat în background.
RecordField -ul poate fi creat doar la nivel de background si el este utilizat doar în paginile care împart background -ul respectiv ; el apare în fiecare din pagini, în locul unde este situat pe background, iar continutul lui difera de la o pagina la alta.
hotword – este un text care are proprietati ca oricare alt obiect.
Hotword-urile pot aparea în textele din câmpuri (field-uri si recordField-uri). Ca si butoanele, hotword-urile trateaza evenimentele, transmitând mesaje atunci când sunt apasate.
combo box – este un obiect care contine o zona de editare, un buton de tip pushbutton si o lista de optiuni.
Când utilizatorul apasa pe pushbutton, apare lista de optiuni. Daca utilizatorul selecteaza o optiune din lista, textul din zona de editare este înlocuit cu selectia facuta. Combo box -urile pot fi editabile sau needitabile.
grupul ("group") – este un obiect compus din unul sau mai multe obiecte.
containere de OLE ("Object Linking and Embedding" ) – OLE este un protocol WINDOWS în care un obiect poate fi creat într-o aplicatie server, dupa care, pentru a fi utilizat, el poate fi inclus în aplicatia client sau se stabileste o legatura la acesta din aplicatia client.
Un obiect OLE este un container care contine o copie sau o referinta la un fisier sursa dintr-o aplicatie server.
obiecte grafice ("graphic objects") – exista o lista de obiecte caracterizate de acelasi set de proprietati. Aceste obiecte sunt urmatoarele: angledline, arc, curve, ellipse, irregular polygon, line, paint object, picture, pie, polygon, rectangle, rounded rectangle.
Fig. 3.1 Exemplu de background si pagina
Fig. 3.2 Exemplu de background
3.5. Programarea în Toolbook
A. Evenimete si mesaje
Din punct de vedere al programarii, pentru a dezvolta o aplicatie, în primul rând se creaza obiectele, apoi se defineste comportarea acestora prin asocierea de scripturi obiectelor.
Limbajul de programare în Toolbook este OpenScript. Scriptul este un program scris în OpenScript si defineste comportarea obiectului caruia i s-a atasat. Scripturile se pot crea la nivel autor, utilizând editorul de scripturi si se poate executa la nivel cititor.
Toolbook -ul este un mediu de programare orientat pe obiecte si bazat pe mesaje ("even-driven"), deoarece, spre deosebire de programarea traditionala în care programul controleaza utilizatorul, în Toolbook, actiunile utilizatorului controleaza programul.
Orice actiune a utilizatorului în Toolbook este un eveniment, de exemplu:
apasarea butonului mouse -lui, apasarea unei taste
deplasarea cursorului pe ecran
alegerea unei comenzi din meniu, si chiar starea în care nu se întâmpla nimic (în aplicatie) poate fi tratata ca un eveniment, si anume, evenimentul "idle" (" the idle event").
La aparitia unui eveniment, Toolbook -ul genereaza un mesaj care este transmis tintei, adica obiectului afectat de eveniment, cum ar fi de exemplu:
apasarea unui buton al mouse -ului, când cursorul este deasupra unui obiect reprezinta un eveniment care are drept consecinta transmiterea mesajului " buttonClick " obiectului indicat de cursor;
când utilizatorul trece la o pagina noua în book, mesajul "enterPage" este trimis noii pagini, iar mesajul "leavePage" este trimis paginii care a fost parasita;
daca utilizatorul nu face nimic, Toolbook-ul transmite, în continuu, mesajul "idle" paginii curente.
Daca scriptul asociat obiectului afectat de eveniment contine un handler pentru mesajul respectiv, generat de eveniment, obiectul va raspunde evenimentului prin executia corpului handler-ului.
B. Handlere pentru evenimente
Un script este compus din unul sau mai multe handlere. Un handler contine o serie de declaratii în OpenScript si defineste actiunea care se executa atunci când un eveniment particular apare în sistem.
Deci, handler-ul descrie comportarea obiectului atunci când un eveniment specific apare în sistem. Toolbook -ul raspunde la un eveniment rulând handler-ul asociat mesajului generat de acel eveniment, din scriptul atasat obiectului afectat de eveniment.
De exemplu, sa presupunem ca avem un buton al carui script contine un handler pentru mesajul " buttonClick ".
to handle buttonClick
go next page
end
Apasarea utilizatorului pe buton reprezinta un eveniment. La sesizarea evenimentului, Toolbook -ul genereaza mesajul " buttonClick " care este transmis obiectului afectat, adica butonului. Toolbook -ul va raspunde la acest eveniment executând comanda "go next page", de trecere la pagina urmatoare, deoarece scriptul asociat butonului contine un handler pentru acest mesaj.
Astfel, executia unei aplicatii reprezinta, de fapt, executia scripturilor asociate obiectelor din aplicatie.
În Toolbook exista 4 tipuri de handlere :
to handle – raspunde mesajului pe care îl trateaza (se comporta ca o procedura)
Ex. to handle buttonClick
request "Doresti sa continui?" with "Da" or "Nu"
if it is "Da" then
break
end if
save changes to this book
send exit
end buttonClick
to get – întoarce o valoare utilizata în alte handlere; este folosita pentru a crea o functie definita de utilizator sau pentru a întoarce valoarea unei proprietati.
to set – este utilizata pentru a seta valoarea unor proprietati,
notifyBefore si notifyAfter – sunt handlere care se asociaza doar obiectelor grafice, grupurilor sau hotword -urilor, si ele trateaza de obicei mesaje care sunt transmise paginilor.
notifyAfter < message >: acest handler se executa dupa ce pagina (sau background-ul, daca obiectul este în background) a receptionat mesajul
notifyBefore < message >: handlerul se executa înainte ca pagina sau background -ul sa receptioneze mesajul
C. Ierarhia de obiecte
Daca un obiect receptioneaza un mesaj si scriptul acestuia nu contine un handler pentru acel mesaj, Toolbook -ul transmite mesajul în sus pe ierarhia de obiecte ("object hierarchy") pâna când acesta gaseste un handler corespunzator atasat lui sau pâna când se ajunge la sistem.
Însa, daca obiectul are un handler pentru acel mesaj, mesajul se va opri la acel obiect. Cu toate acestea, exista mesajul "forward", care, introdus în corpul handler-ului, permite transmiterea mesajului tratat de handler în sus pe scara ierarhica. Astfel ca, mai multe handlere vor raspunde unui singur mesaj.
De exemplu, daca un buton dintr-o pagina are un handler pentru mesajul "buttonClick", mesajul se va opri la acest buton. Daca exista un alt handler pentru "buttonClick" asociat unui obiect aflat mai sus în ierarhie, acesta nu se va executa niciodata, deoarece obiectul respectiv nu va receptiona niciodata mesajul. Pentru a se executa ambele handlere, se utilizeaza declaratia "forward" în handler-ul butonului.
Presupunem ca scriptul butonului este :
to handle buttonClick
request "Acum am fost apasat" ( a )
forward
end
iar scriptul paginii este:
to handle buttonClick
request "Acum este la nivel de pagina" ( b )
end
Când se apasa pe buton la nivel cititor, se vor afisa ambele mesaje, întâi (a) si apoi (b).
Ierarhia de obiecte afisata în fig. 3.5 determina ordinea în care mesajele sunt transmise de la un obiect la altul pâna când un handler corespunzator este gasit, sau se ajunge la sistem.
Orice group, page, background sau book care contine un obiect este parintele obiectului.
Viewer-ele au propria lor ierarhie; ele nu sunt parintii paginilor pe care le afiseaza, astfel ca ele nu receptioneaza mesajele transmise de pagini. Parintele unui viewer este book -ul, care receptioneaza orice mesaj trimis de viewer. Viewer-urile receptioneaza propriile lor mesaje (openWindow, closeWindow, sized, moved, hidden, show).
Exista o diferenta între obiectul parinte ("parent object") si fereastra parinte ("parent window") al unui viewer.
Obiectul parinte al unui viewer este obiectul de deasupra lui, în ierarhia de obiecte, adica book-ul, caruia viewer-ul îi trimite mesaje.
Fereastra parinte a unui viewer este fereastra care controleaza comportarea viewer-ului.
Exemplu. În book "x" exista un viewer (de tip cutie de dialog) în care este afisata o pagina din book "y".
closeWindow este trimis book-ului care
contine viewer-ul, deci lui "x"
viewer
_
pagina
din book "y" bottonClick este trimis lui book "y" viewer care contine pagina book "x"
Fig. 3.5 Reprezentarea schematica a ierarhiei de obiecte în Toolbook
D. Limbajul de programare OpenScript
OpenScript este un puternic limbaj de programare care controleaza comportarea aplicatiei. Un program scris în OpenScript se numeste script si el este format din unul sau mai multe handlere care definesc modul în care aplicatia raspunde la diferite mesaje.
1. Obiecte si proprietati
a) Tipul si numele unui obiect
Obiectele în Toolbook sunt caracterizate de proprietati, cum ar fi: pozitia ("position"), dimensiunea ("size"), culoarea ("color" ), si scriptul. Pentru a referi în script valorile acestor proprietati, obiectele trebuiesc identificate prin tip si nume.
Din punct de vedere al tipului, fiecarui obiect, în OpenScript, îi corespunde un cuvînt cheie, ca de exemplu: button, page, field, roundedRectangle, recordField:
enable of button " next "
bounds of roundedRectangle ID 1
Numele ("name" ) este o proprietate a obiectelor. Pentru a referi un obiect particular, trebuie sa i se asigneze acestuia un nume.
b) Referirea obiectelor
Obiectele pot fi referite :
implicit = daca obiectul este în pagina curenta (pagina afisata în viewer-ul curent); el poate fi identificat doar prin tip si nume; în acest caz scripturile sunt mai scurte si mai usor de citit.
Ex. : show field " laborator "
fieldType of recordField "corp"
explicit = când obiectul este în background, pe alta pagina sau în alt book, el trebuie localizat mentionându-se explicit calea catre acesta.
hide picture "carte" of background "tutorial"
Obiectul curent poate fi referit utilizând urmatorii termeni speciali:
this = se refera la pagina sau la background -ul afisat în viewer -ul curent, sau la book -ul curent
Ex. : enabled of button "inapoi “ of this background
transsition “ dissolve “ to this page
my or self = se refera la obiectul al carui script contine handler -ul în care apare
Ex. : hide self
invert of self
not enabled of self
target = se refera la obiectul care a receptionat primul mesajul tratat de handler-ul curent; el este utilizat în handler-ele care trateaza acelasi eveniment pentru mai multe obiecte
De ex.: daca apas un buton, el este target, chiar daca mesajul este transmis în sus pe ierarhie.
selection = se refera la obiectul sau obiectele curent selectate
Ex. : select group “book“
2. Mesaje
Mesajele sunt de doua tipuri :
predefinite = mesajele trimise automat de sistem la aparitia unui eveniment. De exemplu buttonClick, enterMouse, leavePage, newPage, exit, etc.
definite de utilizator = sunt cele create si trimise explicit de utilizator
Pentru a transmite un mesaj se utilizeaza comanda send sau forward. Comanda send se utilizeaza când se doreste executia unui handler în scriptul obiectului curent sau când se transmite un mesaj altui obiect.
Ex. : select group “Cuprins “
send buttonClick to selection
se executa handler-ul asociat mesajului "buttonClick" din scriptul atasat obiectului selectat, adica grupului.
Un handler care contine comanda send sau forward, în scopul executarii altui handler, se numeste handler apelant ("calling handler").
Handler-ul invocat se numeste handler apelat ("called handler").
Când sistemul întâlneste o comanda send sau forward într-un script, suspenda executia handler-ului apelant pâna când handler-ul apelat îsi termina executia, dupa care reda controlul handler-ului apelant (este ca un apel de procedura în C).
to handle mesaj 1
– – – – – – – – – – –
send mesaj 2 to handle mesaj 2
– – – – – – – – – – – – – – – – – – – – –
end var = ffunction ( sir ) to get ffunction param
– – – – – – – – – – – – – – – – – – – – – –
end return value
end
Fig. 3.6 Exemplu de lant de apeluri
3. Comenzi
Ocomanda poate avea sau nu parametri si poate fi executata dintr-un script sau din fereastra de comanda (Command window)
parametru
Exemplu de comanda : beep 1
comanda
OpenScript include comenzi
pentru controlul meniu -ului
De ex. : restore menu bar
pentru lucrul cu resurse
De ex. : copy resource , insert graphic
de navigare si de efect
flip = realizeaza trecerea automata de la o pagina la alta (flipping pages automatically) ; acest lucru este util în demonstratii sau tutoriale sau în crearea animatiei (se creaza mai multe pagini – una dupa alta – si se face flip între toate paginile respective).
fxDissolve, transition. = sunt comenzi care produc efecte speciale la trecerea dintr-o pagina în alta sau efecte speciale legate de un singur obiect.
De ex. : transsition “ dissolve “ to this page
transsition “ drip fast noYield “ to cyan
transsition “ drip fast noYield “ to next page fx Zoom slow to next page
go = este o comanda de navigare care are ca efect trecerea la o pagina oarecare din book -ul curent;
De ex. : go page “Animation “
go page “parcurg“ of background “parcurg“
go next page
care interactioneaza cu utilizatorul
ask = solicita un text de la utilizator
De ex. : to handle enterBook
ask “ Introduceti numele dvs. :“
if it is not null then
request “ Multumesc “ && it
end if
end
beep = scoate un sunet
request = afiseaza un mesaj utilizatorului caruia îi solicita un raspuns
pentru declararea variabilelor ( system, local )
De ex.: system var1 = declara var1 ca variabila sistem
system salt
local var1 = declara var1 ca variabila locala handler-ului
de lucru cu obiectele; Exemple de comenzi:
hide = “ascunde” un obiect, adica nu mai este vizibil utilizatorului obiectul respectiv, aceasta comanda setând proprietatea de visible la false
De ex.:hide picture “carte“ of background “Tutorial“
show = "afiseaza" un obiect care prin comanda precedenta "hide" era "ascuns"
De ex.: show rectangle id 10
select = selecteaza un obiect
De ex.: select group "cale“
move = deplaseaza un obiect pe ecran
De ex.: move field “ obiect “ by 1100, 2130
pentru lucrul cu variabilele
get = întoarce valoarea unei proprietati
De ex.: get mouseposition of this window
set = seteaza valoarea unei proprietati
push, pop = sunt comenzi de lucru cu stiva (organizata FIFO)
De ex. : push this page into stiva = în stiva "stiva" este introdus codul paginii curente
pop stiva into unde = este extras un obiect din stiva "stiva" în variabila unde
de lucru cu fisiere:
closeFile = închide un fisier
De ex. : closefile “ fisier.txt “
createFile = creaza un fisier
import pages = prin aceasta comanda se importa pagini din alt book
openFile = deschide un fisier
readFile = citeste din fisier pâna la un caracter
writeFile = scrie în fisier
de cautare în text
search – are mai multe forme
De ex. : search page in recordField “text“ for “.“ = cauta în obiectul "text" caracterul "."
search again = cauta din nou
pentru controlul scripturilor ( break, continue, forward, pause, return send )
care permit schimbul de date între diferite aplicatii ( DDE )
de lucru cu DLL ( linkDLL, unlinkDLL )
pentru viewer-e ( close viewer, hide viewer, open viewer, show viewer, in viewer )
in viewer <nume_viewer>
––––
end in
aceasta comanda este utilizata pentru a specifica o fereastra tinta diferita de cea în care ruleaza scriptul ; actiunile din corpul comenzii "in" se executa în viewer -ul dat ca parametru al comenzii.
4. Structuri de control
O
penScript prezinta urmatoarele structuri de control :
structuri de ciclare step
do/untill while
while
structuri de decizie
if/then/else
conditions/when
handlere pentru mesaje
to handle = defineste modul în care reactioneaza sistemul la un mesaj predefinit sau la un mesaj definit de utilizator;
to set = defineste un script care seteaza valoarea unei proprietati sau a unei functii definite de utilizator
to get = defineste un script care reintoarce valoarea unei functii definite de utilizator sau valoarea unei proprietati;
pentru setarea ferestrei tinta ( " target window " )
in < viewer >;
pentru legarea DLL -urilor ( Dynamic Link Library)
linkDLL = declara functii din DLL care vor fi apelate în scripturi;
5. Functii
S
unt utilizate în scripturi pentru a întoarce valori ale unor operatii. Ele sunt:
predefinite
Toolbook -ul are peste 50 de functii predefinite, printre care se numara si urmatoarele :
– aritmetice = random, abs, round, sqrt s. a.
– logaritmice = exp, ln, log
– trigonometrice = sin, cos, tan, s. a.
– statistice = average, max, min, sum
– financiare = rate, syd, ddb, irr, s. a.
– de lucru în siruri= ansiTochar, offset, itemCount, uppercase, s. a.
– pentru mouse si tastatura = keyState, textFromPoint, s. a.
– de lucru cu obiecte = isObject, s. a.
– de control al menu -ului = menuEnabled, setMenuHelpText s. a.
– de lucru cu resurse = chooseResource, resourceList, s. a.
– pentru viewer -e = clientToPageunits, clientToScreen, s. a.
– pentru variabile si tablouri = dimensions, isType
– de control al scriptului = evaluate, flushMessageQueue
– de lucru cu memoria = pointerByte, pointerChar, s. a.
definite de utilizator – pentru aceasta se utilizeaza handler-ul to get
– de obicei, daca functiile sunt utile în mai multe scripturi din aplicatie, este indicat ca ele sa fie create în scriptul book -ului.
6. Operatori si expresii
P
entru crearea expresiilor se pot utiliza urmatorii operatori :
operatori aritmetici – utilizati pentru crearea expresiilor matematice +, -, *, /, div, mod;
operatori logici – utilizati pentru evaluarea expresiilor
<, <=, >, >=, <>, =
and, or, contains, is in, is not in, not
operatori de evaluare a sirurilor – &, &&, char(s) or character(s), word or words, item or items, textLine or textLines
operatori la nivel de bit – permit operatii la nivel de bit
bitAnd, bitOr, bitXor, bitNot, s. a.
Expresiile sunt evaluate tinând cont de precedenta operatorilor.
În expresii, mai sunt utilizati si alti termeni speciali, de ex.: first, second, last, next, previous, right, vertical, fade, drip, slide, rain, puzzle, from, after, before, s. a. .
7. Variabile
E
xista doua tipuri de variabile :
locale – care îsi pastreaza valoarea cât timp se executa handler-ele care le contin. Ele nu trebuiesc declarate înainte de a fi utilizate; Toolbook-ul le declara si le initializeaza automat. Sistemul ofera, însa, posibilitatea declararii explicite a variabilelor locale, utilizând declaratia local.
globale – care-si pastreaza valoarea pe toata durata executiei aplicatiei; în general, se declara ca variabile globale, variabilele care se utilizeaza în mai multe handler-e.
Variabilele globale trebuiesc declarate system înainte de a fi utilizate.
Exemple de variabile system din aplicatie :
system i, sIntroPath, sMapPath, sTest
Mai exista si variabile speciale :
variabila it – comenzile ask, get, pop, request si set pun rezultatele în variabila it; daca valoarea variabilei it este folosita si în alte instructiuni, trebuie copiat continutul variabilei it în alta variabila.
variabila argList – contine lista de parametri ai handler-ului curent; valoarea acestei variabile nu poate fi modificata.
variabila argCount – contine numarul de parametri ai handler-ului curent; de asemenea, nici aceasta valoare nu poate fi modificata.
Ex.:to handle buttonClick loc, isShift, isCtrl
request " doriti sa vedeti argumentele ? " with " Da " or " Nu "
if it is " Da " then
request " argList = " && argList
request " argCount = " && argCount
end if
end
8. Tipuri de date
Î
n Toolbook exista si tipuri de date, astfel ca variabilele pot fi declarate de un anumit tip de data.
Ex.: local LONG j
system int var1
Tipuri de date oferite de OpenScript : int, long, real, word, dword, string, logical, point, color, date, time, stack, s. a. .
Mai exista si functia isType ( ) care verifica daca tipul unei variabile date coincide cu tipul de data specificat ca argument al functiei.
Tablouri
În OpenScript se poate lucra si cu tablouri uni sau multidimensionale, dinamice sau statice.
Ex.:local sira10i = declararea unui tablou static cu 10 elemente
system usersa i = declararea unui tablou dinamic unidimensional
local playersa i a i = declararea unui tablou dinamic bidimensional
Liste
O lista reprezinta o serie de înregistrari separate prin virgula. Se poate referi orice element al listei utilizând termenul item.
Ex. : nume = " Ana, Maria, Elvira "
get item 2 of nume – în variabila it se pune valoarea Maria
Stiva
Este o lista organizata FIFO. Comenzi de lucru cu stiva push si pop.
3.6. Facilitati oferite de OpenScript
Limbajul OpenScript pune la dispozitia proiectantului o serie de facilitati ce permit dezvoltarea aplicatiilor în mediul Toolbook, dupa cum urmeaza :
A. Comunicatia între programe realizata prin:
1. – transferul de date prin tampon (Clipboard), care permite importarea sau copierea în Clipboard a unor obiecte grafice create în alte programe si introducerea lor în aplicatiileToolbook("paste") ca obiecte "picture" având asociate proprietati si scripturi, ca toate celelalte obiecte din Toolbook.
2. – schimbul dinamic de date între aplicatiileToolbook si alte aplicatii Windows, utilizând protocolul DDE ( Dynamic Data Exchange ).
De exemplu, rezultatul unor calcule complexe în Microsoft Excel poate fi "luat" si afisat grafic în Toolbook.
DDE este un protocol de comunicatie WINDOWS care ofera posibilitatea transmiterii datelor între aplicatiile WINDOWS. O conversatie ce respecta protocolul DDE consta în doua sau mai multe aplicatii care-si transmit mesaje. OpenScriptul ofera functii de gestiune a schimbului de date dinamic (DDE).
3. – includerea în aplicatiile Toolbook a unor obiecte create în alte aplicatii, utilizând OLE ( object linking and embedding )
Avantajul includerii obiectelor prin OLE consta în faptul ca, prin stabilirea unei legaturi între aplicatia Toolbook si programul în care a fost creat obiectul ce se doreste a fi inclus, nu are loc doar includerea obiectului însusi în aplicatie,ci se poate exploata si programul în care acesta a fost creat.
B. Crearea resurselor în Toolbook sau importarea lor din alte programe WINDOWS.
Resursele sunt reprezentate de :
– cursoare ( " cursors " )
– icoane ( " icons " ) sau fisiere bitmap ( " bitmaps" ) utilizate ca grafica pe butoane
– palete de culori
C. Legarea dinamica a DLL-urilor (Dynamic Link Library) la aplicatiileToolbook.
DLL-urile sunt biblioteci cu legare dinamica ce contin functii disponibile oricarui program WINDOWS.
Aceste fisiere nu sunt direct executabile si nu pot primi mesaje. Un DLL este activat numai atunci când un alt modul apeleaza o functie din biblioteca.
Referintele catre functiile DLL sunt rezolvate la momentul executiei (de aceea li se spune cu "legare dinamica") deosebindu-se de functiile din bibliotecile obisnuite, care sunt "legate static".
WINDOWS are un numar de DLL-uri disponibile.
Iata câteva module WINDOWS :
– Kernel – functii de alocare a memoriei
– User – functii pentru interfata cu utilizatorii
– GDI – functii de afisare grafica
Toolbook-ul include si el câteva DLL-uri care ofera functii de lucru cu fisierele DOS, functii de acces la resursele sistem, la baze de date DBASE III si Paradox.
Utilizarea unui DLL în aplicatiile Toolbook implica :
legarea aplicatiei Toolbook la DLL, pentru ca libraria sa devina disponibila aplicatiei. Pentru aceasta se utilizeaza structura de control linkDLL în care se specifica libraria ce se doreste accesata si declaratiile functiilor care se vor apela, precizând tipurile de date ale parametrilor si valorile întoarse;
apelul functiilor din scripturile aplicatiei; functiile se apeleaza ca oricare alta functie din Toolbook.
D. Corectarea erorilor
Pot apare doua tipuri de erori :
de sintaxa – sunt sesizate în momentul compilarii scriptului
de runtime (la executie) – apar în timp ce aplicatia ruleaza si are drept consecinta suspendarea executiei aplicatiei.
Pentru gasirea si corectarea erorilor din scripturi, limbajul pune la dispozitie un debugger care permite setarea si stergerea punctelor de suspendare a aplicatiei ("breakpoint") si afisarea valorilor variabilelor locale si de sistem.
E. Permite crearea a 3 tipuri de meniuri: meniuri drop-down, submeniuri si meniuri popup. Aceste meniuri pot fi asignate unui viewer.
Când utilizatorul alege o optiune din meniu, Toolbook -ul genereaza un mesaj pe care-l transmite optiunii selectate.
F. Permite crearea de efecte speciale:
1. – asociate paginilor – aceste efecte au loc la trecerea dintr-o pagina în alta, fiind realizate de comenzile
fxDissolve, fxWipe, fxZoom
transsition – are mai multe valori posibile pentru tipul de efect : blinds, drip, puzzle, rain, spiral, turnPage s. a. .
2. – asociate unui obiect din pagina – efectul în acest caz se concentreaza asupra unui singur obiect si nu asupra întregii pagini
În aplicatia realizata, pentru a obtine un astfel de efect, am apelat o functie dintr-un DLL.
3. – drag-and-drop
Operatia drag-and-drop consta în tragerea ( deplasarea ) unui obiect pe ecran si eliberarea lui într-o alta pozitie permisa. Un exemplu care se bazeaza pe aceasta operatie îl constituie modul în care are loc mutarea si copierea fisierelor în File Manager -ul din WINDOWS.
Aceasta operatie se poate aplica oricarui obiect plasat în pagina, chiar si imaginilor grafice importante. Este permisa, de asemenea, deplasarea obiectelor într-un viewer, cât si dintr-un viewer într-altul.
Pagina, background -ul si book -ul nu accepta operatia drag-and-drop.
4. – de natura multimedia
animatia – animatia obiectelor consta în modificarea pozitiei, a dimensiunii si a formei acestora, cât si în afisarea unui set de imagini modificate care dau iluzia de miscare.
Pentru animarea obiectelor se aplica urmatoarele tehnici:
deplasarea unui obiect utilizând comanda move. Comanda move este utilizata pentru schimbarea pozitiei unui obiect pe ecran. Animarea unui obiect este realizata prin deplasarea acestuia în pagina; din punct de vedere al programarii în OpenScript, acest lucru se realizeaza prin utilizarea comenzii move în structuri de ciclare (while, do/until, step)
redimensionarea sau modificarea formei unui obiect prin modificarea limitelor acestuia, deci a proprietatii "bounds".
animarea obiectelor, în general a liniilor si a curbelor, prin modificarea coordonatelor vârfurilor. Aceasta tehnica este utila la crearea grafurilor si la ondularea liniilor.
afisarea ("show") si ascunderea ("hide") unor obiecte, fiecare dintre ele reprezentând în esenta, o aceeasi imagine, dar cu mici modificari. Obiectul poate fi animat prin crearea unei serii de obiecte derivate din cel initial, si apoi afisarea si ascunderea lor, unul dupa altul.
flip între pagini care contin vederi putin diferite ale unei aceleiasi imagini. Pentru a anima o imagine grafica complexa, de ex. un fisier bitmap, se plaseaza diferite vederi ale imaginilor grafice pe pagini diferite si apoi se trece rapid de la o pagina la alta utilizând comanda flip. Aceasta tehnica este similara celei folosite în realizarea desenelor animate.
Momentul începerii animatiei unui obiect este determinat de aparitia unui eveniment în sistem. Evenimentele care pot fi folosite pentru a declansa animatia unui obiect sunt :
evenimente care apar la apasarea butoanelor ("buttonClick", "buttonUp"). Utilizatorul este cel care alege momentul începerii animatiei prin apasarea unui buton;
evenimente generate la intrarea în pagina (enterPage) sau în book (enterBook). Animatia începe automat când se deschide un book sau se trece la o alta pagina.
evenimentul idle, utilizat pentru a crea animatia continua, care poate fi întrerupta la interactiunea utilizatorului cu orice obiect din pagina.
O metoda simpla de animare a obiectelor grafice o reprezinta înregistrarea secventei de deplasari a obiectelor pe ecran utilizând "script recorder"
Prin aceasta tehnica, pozitiile de pe ecran prin care obiectul este deplasat sunt memorate în Clipboard si prin Paste Recording sunt trecute în scriptul obiectului respectiv. Deci, prin "script recorder", scripturile sunt "înregistrate" si nu scrise explicit de autorul aplicatiei.
sunetul si clip -urile video
În Multimedia Toolbook sunetul este disponibil în trei formate:
fisiere audio wave (.wav ), contin sunete înregistrate
fisiere MIDI(.mid )(Musical Instrument Digital Interface) contin muzica electronica
CD -uri audio
Pentru a utiliza video în aplicatie, exista 3 surse:
fisiere video – contin atât imagine video, cât si sunet
discuri video
casete video aceste ultime doua surse necesita componente hardware speciale.
OpenScriptul ofera comenzi si functii pentru controlul elementelor multimedia în aplicatie. De exemplu, pentru lucrul cu fisierele .wav mai mici de 100k se utilizeaza functia playSound.
Ex.: to handle buttonClick
get playSound ( " C:windowsachimes.wav " )
end
Alte comenzi :
mmPlay – ruleaza un clip
Ex. : mmPlay clip "soundFx "
mmPlay clip " video " in stage " movie "
mmStop – opreste un clip
Ex. : mmStop clip " video "
mmPause – opreste clip-ul la o anumita pozitie, dupa care, daca se da comanda mmPlay, el va continua din pozitia în care s-a oprit si nu de la începutul clip-ului (diferenta fata de mmStop).
Ex. : mmPause clip " music ".
Capitolul 4
Descrierea sistemului
4.1 Prezentare generala
Platforma de lucru
Sistemul a fost realizat pe microcalculator compatibil IBM PC, 486DX, 80mhz cu 16Mb RAM, sub sistem de operare WINDOWS 3.1. Produsul software care a stat la baza acestui sistem este Asymetrix Multimadia Toolbook 3.0, realizat de firma Asymetrix Corporation din U.S.A. Textul continut de sistem a fost prelucrat cu Microsoft Word 6.0, iar schemele au fost realizate cu ORCAD.
Organizarea sistemului
I
n faza actuala, sistemul este compus din doua aplicatii:
aplicatia “CURS”
aplicatia “TEST”
Schema sistemului este prezentata in figura 4.1.
Fig.4.1. Schema sistemului
Fiecare aplicatie contine cate o baza de date:
aplicatia “CURS”
curs partea I
curs parte II
laborator
aplicatia “TEST” – contine 14 teste, corespunzatoare capitolelor din aplicatia “CURS”, cu pagini pentru intrebari, respectiv pentru raspunsuri.
Informatiile pentru aceste baze de date au fost preluate din cursurile "Echipamente periferice" si "Echipamente periferice si multimedia" al domnului profesor Radu Radescu. In ANEXA 1 este prezentata lista capitolelor din aplicatia “CURS”.
Determinanta, in realizarea unui sistem hypertext, este activitatea “hypertext authoring”. In principiu “hypertext authoring” inseamna:
spargerea linearitatii unei surse de cunostinte (text); impartirea ei in unitati elementare de informatii (“chunks”);
construirea legaturilor intre chunks-uri.
O astfel de reprezentare permite utilizatorului explorarea cunostintelor prin navigare libera, pe un tip de legatura sau altul.
Interfata cu utilizatorul
Deoarece, in aplicatia realizata, utilizatorul lucreaza cu informatii ce sunt afisate pe ecran, o atentie deosebita se acorda si interfetei cu utilizatorul. Interfata grafica reprezinta totalitatea elementelor afisabile care-i permit omului sa "comunice" cu calculatorul.
Toolbook-ul permite realizarea unor aplicatii care beneficiaza de o interfata grafica cu utilizatorul. Pentru obtinerea unei interfete "prietenoase" ("user-friendly"), cat mai comoda si mai confortabila din punct de vedere fizic si psihic, pe langa informatia de intere (in cazul acesta, textul), se vor crea imagini grafice, efecte vizuale, se va adauga culoare obiectelor.
De asemenea, butoanele, elemente ale interfetei, pot avea asociate icoane grafice pentru a sugera utilizatorului efectul produs de acestea.
Fig.4.2. Exemplu de butoane cu grafica asociata
Fig.4.3. Exemplu de nod cu o interfata prietenoasa
Elementele interfetei oferita de sistem, ii da utilizatorului posibilitatea:
sa navigheze prin sistem (ii sunt puse la dispozitie butoane de inainte si inapoi);
sa vizualizeze informatii detaliate (hotword-uri);
sa treaca de la o aplicatie la alta.
4.2. Implementarea sistemului
Aplicatia CURS
Aplicatia CURS contine 3 viewer-e:
mainWindow
Tutorial
Status Bar
Viewer-ul mainWindow este ascuns prin comanda
hide mainWindow
in handler-ul enterApplication din book.
In viewer-ul Tutorial sunt afisate toate paginile. Acesta este viewer-ul principal al aplicatiei. S-a ales aceasta cale deoarece evenimentul produs de butoane este transmis paginii curente a viewer-ului Tutorial.
In viewer-ul Status Bar este afisata numai pagina de "Status Bar", pagina care contine butoanele.
Aplicatia CURS este organizata in 6 background-uri:
background "Inceput" – contine paginile
"Start"
"Animatie"
"Inceput"
Pagina "Start" este un exemplu sugestiv de interfata prietenoasa si a fost folosit pentru ca utilizatorul sa se relaxeze si sa se familiarizeze cu sistemul. Scripturile 5,6 din ANEXA 3 realizeaza aceasta animatie.
Pagina "Animatie" este un ecran care contine titlul cursului si numele autorilor. Aceasta animatie are scriptul 9 din ANEXA 3.
Pagina "Inceput" este de fapt ecranul de intrare in aplicatie.
Aplicatia este structurata in 3 parti:
curs partea I
curs partea II
laborator
In acest moment utilizatorul trebuie sa aleaga o cale pe care o va parcurge. Cand se executa evenimentul buttonClick, sunt initializate urmatoarele variabile sistem:
sIntroPath – se initializeaza cu numele obiectului tinta, care poate fi cursIV, cursV sau laborator. Deci aceasta variabila contine numele componentei care a fost aleasa.
sLastPath = sIntroPath; aceasta variabila continea numele componentei care fusese aleasa anterior.
sMapPath = sIntroPath – aceasta variabila este utilizata in pagina de cuprins pentru ca in momentul in care se inta in pagina sa se afiseze cuprinsul componentei alese.
i = 1 – aceasta variabila contine numarul paginii curente din numarul total de pagini pe care le are o componenta.
background "Tutorial" – contine paginile de text pentru curs.
Acest background contine:
recordField "TitluRosu" si recordField "TitluAlb" – aceste recordField-uri sunt suprapuse pentru a crea efectul de umbra. Textul acestor recordField-uri este afisat in functie de numele paginii, prin scriptul _ din ANEXA 3.
recordField "capitol"
recordField "corp"
group "carte"
Fiecare pagina a background-ului mai contine si field-uri proprii in care sunt afisate informatii detaliate, ca urmare a pozitionarii mouse-ului pe un hotword.
background "Cuprins" – contine o singura pagina, pagina "Cuprins"
Acest background este format din:
group "path" – grupul cu cele trei intrari in aplicatie. In functie de optiunea aleasa la intrarea in aplicatie este afisat cuprinsul respectiv.
field-urile "cursIV", "cursV", "Laborator": dubluClick pe o linie de text care are semnul "+", afiseaza subcapitolele respective, daca linia are semnul "-", atunci subcapitolele sunt sterse. Daca linia de text nu incepe nici cu "+", nici cu "-", atunci se afiseaza pagina dorita.
Fiecare field care contine un cuprins are o variabila userProperties, numita "source", care contine cuprinsul detaliat. Aceste field-uri au atasate un script pentru evenimentul doubleClick. La evenimentul doubleClick pe o linie se testeaza daca aceasta incepe cu "+", cu "-" sau primul caracter nu e nici "+", nici "-". Daca este "+" din variabila source se citesc subcapitolele si se afiseaza. Nivelul inferior unui capitol va fi aliniat cu un tab in plus, deci vor fi afisate toate liniile care au numarul de tab-uri mai mult cu 1.
Daca linia nu incepe nici cu "+" si nici cu "-", se trimite un eveniment buttonUp catre butonul "MergiLa", al carui script calculeaza variabila sistem i in functie de a cata linie este in variabila source, minus liniile din aceeasi variabila care au subnivele (se scad aceste linii deoarece nu au asociate o pagina din backgroundul "Tutorial")
background "Parcurg" – contine o singua pagina, pagina Parcurg. Aceasta pagina are 3 obiecte de tip Field. Field "cursIV", "cursV" si "laborator". Aceste field-uri au pe fiecare linie numele unei pagini a backgroundului "Tutorial". Totalitatea liniilor unui field reprezinta paginile care vor fi parcurse fiecare componenta a aplicatiei.
background "Status" – contine o singura pagina, pagina "Status Bar", pagina de butoane.
buton "iesire" – cand utilizatorul produce evenimentul buttonClick pentru acest obiect, este intrebat daca dorecste intradevar sa pararseasca aplicatia. Daca da atunci este interogat daca doreste sa salveze starea sistemului. Daca utilizatorul raspunde afirmativ, atunci in variabile de tip userProperties vor fi salvate urmatoarele:
useri = i – stocheaza numarul paginii curente;
userPath = sIntroPath – stocheaza componenta aleasa;
userPage = nume_pagina – stocheaza numele paginii curente.
La intrarea in aplicatie, utilizatorul va fi interogat daca doreste sa continue de unde a ramas. Daca raspunsul este afirmativ, in viewer-ul "Tutorial" va fi afisata pagina cu numele stocat in variabila userPage, iar variabilele sistem vor fi initializate dupa cum urmeaza:
i = useri of this book
sLastPath = userPath of this book
buton "Teste" – acest buton deschide a doua aplicatie a sistemului. Aceasta aplicatie este separata de prima, este un alt task.
buton "Cuprins" – evenimentul buttonClick pe acest obiect afiseaza in viewer-ul "Tutorial" pagina "Cuprins". Aceasta este puntea de legatura intre cele trei componente ale aplicatiei.
buton "inainte" si buton "inapoi" – aceste butoane au atasate mecanismul de navigare in interiorul unei componente, in functie de variabila sistem i. Evenimentul buttonClick pentru aceste butoane trimit mesajul turnPageNext, respectiv turnPagePrevious background-ului paginii curente. Fiecare background care va fi afisat in viewer-ul "Tutorial", are functiile turnPageNext si turnPagePrevious. Aceste functii citesc din field-ul curent de la pagina "parcurg" textul liniei i+1, respectiv i-1, care este de fapt numele paginii urmatoare, respectiv anterioare. Daca utilizatorul se intoarce la prima pagina a componentei, butonul inapoi nu mai este activ.
butonul "mergi la …" si "mergi inapoi" – aceste butoane sunt afisabile numai cind pagina curenta a viewer-ului "Tutorial" este pagina "Cuprins" si permit navigarea la o alta pagina din aceeasi componenta sau la o pagina de la o alta componenta a aplicatiei. Butonul "mergi inapoi" permite la revenirea la pagina din care s-a executat click pe butonul cuprins.
background "laborator" – contine paginile corespunzatoare componentei "laborator"
Aplicatia TEST
A
ceasta aplicatie este compusa din 4 background-uri:
background "inceput" – acest background are 4 pagini afisabile si 4 pagini utilizate de autor. Prima pagina a aplicatiei este o pagina goala, folosita pentru efectul de iris la trecerea la urmatoarea pagina. Pagina a doua este o pagina de prezentare. A treia pagina este o pagina de explicatii. In aceasta pagina cuvantul SUCCES este supus animatiei numita "curcubeu".
A patra pagina a aplicatiei este pagina de intrare in aplicatie. Aceasta pagina contine 14 butoane, cate un buton pentru fiecare test. Fiecarui capitol din curs ii corespunde un test. La alegerea unui test se initializeaza urmatoarele variabile sistem:
sTest = nume test – variabila care identifica numarul testului;
i = 1 – variabila care stocheaza numarul paginii din numarul total de pagini ale testului sTest.
Paginile invizibile pentru utilizator sunt:
pagina "parcurg" – contine 14 field-uri, cate unul pentru fiecare test, numite Test1, …, Test14. Fiecare field contine paginile care formeaza testul respectiv, plus pagina "rezultate". Variabila sistem i este utilizata pentru a citi field-ul sTest linie cu linie.
pagina "r_c" – este pagina de raspunsuri corecte. Fiecare linie a unui field, din cele 14 corespunzatoare testelor, contine raspunsul corect la intrebarea corespunzatoare. Daca suntem la intrebarea i din fieldul sTest al paginii parcurg, linia i din fieldul sTest al paginii "r_c" reprezinta raspunsul corect la intrebare.
pagina "r_d" – este pagina de raspunsuri date. ^i aceasta pagin contine 14 field-uri, dar in acest caz sunt goale. La evenimentul iesire din pagina se citeste raspunsul dat de utilizator si se trece la linia i a fieldului sTest din pagina "r_d".
pagina "raspunsuri" – Aceasta pagina contine 14 field-uri goale. La evenimentul intrare_pagina (enterPage) pentru pagina "rezultate", vor fi comparate linie cu linie field-ul sTest de la pagina "r_c" cu field-ul sTest de la pagina "r_d". Daca acestea nu sunt identice, in field-ul sTest al paginii "raspunsuri" se trece pagina de raspuns corespunzatoare intrebarii. Tot in acest moment se contorizeaza numarul de raspunsuri corecte in variabila sistem rc si numarul de raspunsuri gresite in variabila sistem rg.
Numele paginilor de intrebari este compus astfel:
T, nr_test, nr_intrebare din test
iar numele paginilor de raspuns:
R, nr_test, nr_intrebare din test
Se observa ca diferenta consta in primul item care la pagina de intrebare este "T" iar la pagina de raspuns este "R". Deci, cand raspunsul dat de utilizator este gresit, pentru a forma numele paginii de raspuns, se citeste pagina de intrebare, acesta formandu-se astfel:
nume_pagina = R, item 2 nume pagina intrebare, item 3 nume pagina intrebare
background "intrebare" – este format din paginile care contin intrebari. Elementele din background sunt: recordField cu nume test, recordField cu intrebare. Grupul de 3 raspunsuri este propriu paginilor. Utilizatorul trebuie sa aleaga un raspuns, mai multe sau nici unul. Pentru a marca raspunsurile dorite, acesta trebuie sa clickeze sageata din dreptul raspunsului, iar aceasta se va colora in albastru. Click pe un raspuns marcat (sageata albastra) va anula raspunsul. Trecerea de la o pagina la alta se face prin click pe butonul galben "inainte" sau "inapoi". Utilizatorul se poate intoarce la o intrebare pentru a revedea raspunsul dat si pentru a-l modifica dupa dorinta. Daca s-a ajuns la prima pagina, butonul inapoi se va schmba din sageata in X.
In momentul in care utilizatorul a ales un test, acesta poate parcurge paginile de intrebari pana la pagina "rezultate" sau se poate intoarce la pagina de intrare in aplicatie, pentru a alege un alt test. Daca utilizatorul a ajuns in pagina de "rezultat" poate vedea paginile de raspunsuri numai pentru intrebarile la care s-a raspuns gresit sau se poate merge la pagina de intrare in aplicatie pentru a alege un nou test. Daca utilizatorul a raspuns corect la toate intrebarile, butonul "raspunsuri" nu mai este afisat.
background "rezultat" – are o singura pagina, pagina "rezultate". Aceasta pagina, cu o grafica deosebita, este formata dintr-un field in care utilizatorul este informat cate raapunsuri gresite are si cite raspunsuri corecte. Daca utilizatorul are raspunsuri gresite, atunci se executa animatia in care un seif ii cade in cap.
Pagina contine 3 butoane:
iesire
alege alt test
raspunsuri
background "raspunsuri" – are un numar de pagini egal cu numarul de pagini ale background-ului "intrebare". Obiectele care formeaza background-ul sunt: recordField cu nume test, recordField cu intrebare. Grupul de trei field-uri cu raspunsuri este propriu paginilor. Desi pe pagina exista 3 field-uri, numai cele care contin raspunsul corect au textul afisat.
Bibliografie
1. Curs “Echipamente periferice” – titular curs Radu R[descu
2. Curs “ Echipamente periferice si multimedia” – titular curs Radu R[descu
3. Asymetrix Multimedia Toolbook – “User’s Guide”
4. Asymetrix Multimedia Toolbook – “Reference Manual”
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Realizarea Unui Curs Interactiv cu Ajutorul Calculatorului (ID: 149167)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
