Documente Academic
Documente Profesional
Documente Cultură
TEHNOLOGII WEB
Conf. dr.Livia SANGEORZAN
I. Consideraii generale privind Internet i World Wide Web
La ora actual n lume exist milioane de calculatoare, care sunt folosite n cele mai
diverse domenii, multe dintre aceste calculatoare sunt legate ntre ele, interconectate n forma
reelelor de calculatoare. Multe dintre aceste reele sunt la rndul lor conectate ntre ele,
formnd inter-reele (reele de reele de calculatoare). Denumirea de internet desemneaz o
reea de reele ("net" nsemnnd n limba englez "reea"). Cea mai mare intereea public
(reea de reele de calculatoare cu acces public) este reeaua Internet.
Principala atracie a Internetului o reprezint World Wide Web-ul. Acesta a constituit
partea cu dezvoltarea cea mai rapid i cea mai popular a Internetului (cu excepia, probabil,
a fluxului voluminos de e-mail de pe tot globul). Din punct de vedere tehnic Web-ul, nu este
dect o parte a Internetului sau mai corect spus, o component, care permite navigarea prin
Internet.
Web-ul reprezint o interfa, o fereastr spre Internet sau o metod de a ajunge n
locurile dorite. Popularitatea sa deriv din trei aspecte distincte i anume:
Browsere WEB
Pentru a accede la web, utilizatorul trebuie s aib instalat pe computerul su un
browser.
Browser-ul este o aplicaie cu trei funcii principale: accesul la informaii, formatare i
afiarea informaiilor. Utilizatorul furnizeaz browser-ului adresa paginii dorite (URL-ul).
Browser-ul solicit conectarea la server-ul web, pe baza protocolului HTTP. O dat
n spaiul rezervat se pot pune mai multe fiiere care conin instruciuni HTML dar i
orice alte fiiere.
Definiie ( [1]):
Prin site se nelege ansamblul:
spaiu hard;
fiierele pe care le conine;
adresa
Prin pagin se nelege coninutul afisat al unui fisier HTML.
Definiie ( [1]):
Ansamblul regulilor care trebuiesc respectate pentru schimbul informaiilor de un
anumit tip se numete protocol.
Dac dorim s transferm fiiere ctre server sau invers, de la server ctre propriul
calculator se utilizeaz protocolul FTP (File Transfer Protocol).
Pentru a realize o pagin atractiv este bine s se utilizeze un design adecvat. n acest
scop se pot utiliza limbajele:
JavaScript,
PHP
Java (Applet)
4
Flash
etc.
Alinierea
Alinierea nseamn c elementele de pe pagin sunt aliniate unele n raport cu
celalalte. Lipsa alinierii este principala problem de pe paginile Web, aceasta reprezint o
problem important i pe paginile tiprite, ns pare i mai prezent i mai dezastroas pe
paginile Web. Nimic nu trebuie asezat la ntmplare pe pagin. Se creeaz un aspect curat,
sofisticat i proaspt al paginii dac fiecare element are o legatur vizual cu un alt element
de pe pagin.
Alinierea elementelor dup latura stng, dreapt sau centrat trebuie s urmeze o
anumit regul, i anume:
Alegei UNA. Se alege o singur aliniere care se utilizeaz pe toat pagina.
Dac se opteaz a se alinia textul de baz n stnga, nu se pune titlul pe centru;
Dac se aliniaz centrat o parte din text, atunci se aliniaz centrat peste tot.
Nu amestecai alinierile.
Acest singur principiu va modifica radical aspectul paginilor.
Se pot face alinieri verticale orizontale si centrale.
O aliniere central se poate spune c este :
echilibrat;
simetric;
calm;
oficial.
Aliniind o parte din text la stnga, o parte la dreapta i o parte centrat, se creaz o
senzaie de dezordine i se transmite impresia de amatorism.
Dac se aliniaz textul i imaginile, este bine s ndeprtm textul de marginea stng.
Este obositor i distrage atenia s dm cu ochii de marginea stng a paginii browserului de
fiecare dat cnd trecem la rndul urmator. Cnd decalm textul (operaie de indentare), se
poate face i din partea dreapt, mpiedicnd formarea rndurilor de text lungi i dificil de
citit.
Totul trebuie s aib un motiv pentru a-i justifica locaia deoarece, nimic nu trebuie
plasat arbitrar pe pagin. Nu azvrlim pur i simplu elementele i vedem cum i unde se
lipesc. Trebuie s putem explica motivul pentru care un element se afl n acel loc.
O pagin, poate s fie instantaneu folosit, prin alinierea tuturor elementelor dup o
latur i pagina arat mult mai organizat. Dac lucrurile sunt organizate, ele comunic mult
mai bine.
Alinierea nu nseamn c totul este aliniat dup aceeai latur. nseamn pur i simplu
c totul are aceeai aliniere fie lipit la stnga, fie lipit la dreapta, fie centrat.
Cnd o margine bun se repet, ea ctig n for.
Formular corect realizat din punct de vederea al web design-ului (vezi formularul
de mai sus) Mai sus am dat un mod de aliniere optim, pentru formularul creat anterior. Se
observ linia vertical dup care se aliniaz csuele text, checkbox sau cea de submit.
Formularul arat mult mai bine.
Proximitatea
Proximitatea se refer la relaiile dintre elemente, cnd acestea sunt foarte aproape. Pe
o pagin, componentele aflate n legatur cu altele trebuie s fie grupate. Dac anumite
componente se afl n apropierea altora, ele devin o singur unitate din punct de vedere
vizual, astfel informatiile pot fi organizate mai bine i permite astfel s dispar orice
confuzie.
Se pare c exist o fric fa de spatiul liber. Pagina pare neorganizat dac elementele
de machetare sunt mprtiate peste tot, fiind posibil ca informia s devin mai greu
accesibil.
Principiul proximitii spune c trebuie s se grupeze componentele aflate n legatur,
sa fie mutate mai aproape unele de altele, astfel nct s fie percepute ca un grup unitar, nu ca
8
(0268) 956419
Brasov
Dac complicm problema, adic mai ngrom alte elemente vom vedea c ne vom
plimba privirea ntre cuvintele ngroate.
DIRECTOR S.C. PISOI
(0268) 956419
Brasov
Repetiia
Principiul repeitiei spune c anumite pri ale machetrii trebuie repetate n ntreaga
lucrare. Se poate repeta de exemplu un font ngroat, o linie groas, un anumit tip de marcaj,
un element de design etc. Poate fi orice element care poate fi recunoscut de ctre vizitator.
Relum cartea de vizit i organizm informaia altfel (vezi figura de mai jos).
Observm c dup ce am privit informaia de pe aceast carte de vizit, ochii ramn
agai de nume, deorece este ngroat i subliniat.
Dar totui avem senzaia de neterminare. Urmtoarea figur prezint aceeai carte de
vizit dar n care am ngroat i ultima informaie, astfel ochiul se uit la nume i la numrul
de telefon.
10
( 0268 ) 956.41.93
Contrastul
Contrastul este cea mai eficient cale de a aduga valoare vizual paginii noastre.
Principiul contrastului spune c dac dou componente nu sunt exact la fel, atunci
trebuie s fie complet diferite.
Regula de aur n utilizarea contrastului spune c pentru a fi eficient, contrastul
trebuie s fie puternic.
Contrastul poate fi creat n mai multe moduri, de exemplu punem n contrast:
un font mare cu unul mic;
un font elegant cu unul ngroat;
o culoare rece cu una cald;
un element orizontal (ex. un rnd lung de text) cu unul vertical (ex. o coloan
de text nalt i ngust);
rnduri cu spaii multe ntre ele cu rnduri dese;
11
Atenie! Nu putem pune n contrast maro nchis cu negru sau un font de 14 puncte cu
unul de 16 puncte.
Fie un Anun pentru obinerea unei burse Socrates n cadru Facultii de Matematic i
Informatic. Sunt prezentate dou variante. Se observ c ambele variante conin aceleai
informaii doar c al doilea anun conine mai mult contrast i ne uitm cu mult mai mult
plcere la cel de al doilea anun.
Conditii de aplicare
Integralist
Depunere dosar care sa cuprinda : CV, Scrisoare de intentie, situatia scolara
Participare la testul de limba straina
Termen limita de depunere dosar la Decanatul Facultatii MI: 14.04.2007
Universitati partenere:
University Oldenburg
University Dortmund
University of Applied Sciences Fulda,
University of Applied Sciences Wiesbaden,
University of Applied Sciences Mittweida
Contrastul n formularul modificat este evident.
Am folosit un font mai puternic, am ngroat titlurile.
Fontul folosit l-am repetat i n titlul paginii.
Titlul l-am transformat din majuscule n litere mici i astfel am avut posibilitatea s
folosesc o dimensiune mai mare a fontului, pe care l-am ngroat.
Totodat am scris titlul cu alb pe fond negru (banda neagr). Astfel am mrit
contrastul. Contrastul nu numai c face pagina mai atractiv, ci i clarific scopul i
organizarea documentului.
12
Integralist
Depunere dosar care sa cuprinda :
o
CV,
o
Scrisoare de intentie,
o
situatia scolara
Universitati partenere:
University Oldenburg
University Dortmund
University of Applied Sciences Fulda
University of Applied Sciences Wiesbaden,
University of Applied Sciences Mittweida
13
Standardul oficial HTML este dat de World Wide Web Consortium (W3C) care este
afiliat la Internet Engineering Task Force (IETF). W3C a enunat cteva versiuni ale
specificaiei HTML, printre care i HTML 2.0, HTML 3.0, HTML 3.2, HTML 4.0, HTML
4.01 i, cel mai recent, HTML 5.0. Fiecare din aceste standarde este mai mult sau mai puin
suportat de ctre toate sau o parte din browsere.
La ora actual HTML 4.0 si HTML 4.01 sunt larg utilizate i au fost deja publicate
specificaiile HTML 5.0. Obiectivul HTML5 este acela de a mbogi suportul pentru
aplicaiile multimedia prin aducerea laolalta a capabilitilor oferite de HTML4, cu XHTML
i JavaScript.
Limbajul HTML ofer proiectanilor de pagini Web urmtoarele posibiliti:
1. S publice documente cu headere, texte, tabele, liste, fotografii, etc;
2. S regseasc on-line informaiile prin intermediul hiperlink-urilor printr-un
simplu click de mouse;
3. S proiecteze formulare pentru realizarea tranzaciilor cu servere aflate la
distan pentru cutri de informaii sau pentru activiti specifice comerului;
4. S includa foi de calcul tabelar, clipuri video, sunete i alte aplicaii direct n
documente.
Elementul esenial diferit adus de versiunea 4.0 i mai ales 4.01 fa de versiunea 3.2
este posibilitatea separrii structurii unui document de prezentarea lui prin introducerea
stilurilor de documente (style sheet).
14
Prin utilizarea limbajului HTML4 pentru structurarea unui document i a style sheeturilor pentru a stiliza prezentarea acestuia, se poate obine mult mai uor independena de
periferic/computer/platforma hard-soft.
Deoarece HTML5 aduce elemente noi care permit includerea obiectelor multimedia
sau a graficelor, fr a mai avea nevoie de plugin-uri, se vor putea crea aplicatii mult mai
complexe utilizndu-se doar limbajul HTML.
Limbajul HTML a fost preferat pentru publicaii pe Web n primul rnd datorit
simplitii sale i n al doilea rnd deoarece permite formatarea textului ASCII cu tag-uri n
format ASCII.
15
Un fiier HTML este creat cu orice editor de texte cu meniunea c fiierul trebuie
salvat cu extensia html sau htm.
TAG-uri HTML
n limbajul de marcare a hipertextului totul se rezum la structur. Un limbaj de
marcare este folosit pentru a descrie care este rolul fiecrei pri din document n raport cu
celelalte.
Terminologia HTML:
a) atribut: furnizeaz instruciuni adiionale despre o etichet. Informaiile
variaz de la etichet la etichet i pot include subiecte cum ar fi locaia
fiierelor, mrimea, numele lor sau stiloul lor;
b) browser: este un motor de parcurgere special care evalueaz etichetele i
coninutul unui fiier HTML, pe care l afieaz n concordan cu
posibilitile i regulile platformei i capacitile sale;
c) element: o component distinctiv a structurii unui document, cum ar fi titlul,
un paragraf sau o list. Cnd ne referim la forma sa aplicat n cadrul unui
document, un element se mai numete etichet (tag);
d) etichet: un cod care identific un element pentru ca browserul sau alt
program de parcurgere s tie n ce mod s afieze coninutul. Etichetele sunt
ncadrate de caractere de delimitare (paranteze ascuite) Ele sunt ntotdeauna
cuprinse ntre paranteze unghiulare (<>) iar utilizarea literelor mici sau mari
n scriere nu are importan.
Documentele HTML sunt fiiere text (ASCII). n text sunt inserate o serie de coduri aa
numitele tag-uri sau marcaje care stau la baza modurilor de afiare a documentului. Un
document HTML este compus din tag-uri i text curat. Documentele au componente
asemntoare cum ar fi titluri, tabele, liste, paragrafe, etc.
Tag-urile HTML sunt folosite tocmai pentru a marca elementele comune, care pot
conine text, grafic sau alte elemente. Tag-urile sunt de forma pereche nceput-sfrit:
16
<tag>.............................</tag>
coninut arbitrar
tagul de
nceput
INCORECT
CORECT
<tag1>
<tag1>
<tag2>
<tag2>
</tag2>
</tag1>
</tag1>
</tag2>
17
Tagul Body
Tagul body are o list de atribute incluse dup denumirea tagului i delimitate prin
spaiu. Proprietile principale ale acestui tag sunt cele care definesc fundalul paginii, fie c
este vorba de o culoare sau de o imagine.
Atribute ale acestui marcator: bgcolor, background, text, leftmargin, topmargin
Aceste atribute se vor evidenia n exemplele urmatoare.
18
Culoarea textului
Definirea culorii textului pentru o pagin Web se face prin intermediul atributului text
al etichetei <body>
Sintaxa:
<body text = culoare>
Semantica:
culoare se precizeaz la fel ca la exemplul precedent.
Pagina de Web urmtoare are textul de culoare roie:
Atribute multiple
O etichet poate s aib mai multe atribute.
O etichet cu trei atribute are urmatoarea sintax:
Sintaxa:
<eticheta atribut1 = valoare1 atribut2 = valoare2 atribut3 = valoare3>
Exemplu: Pagin Web cu textul de culoare albastr i fondul de culoare galben:
19
20
(valoarea 1 fiind pentru fontul cel mai mic i valoarea 7 pentru fontul cel mai
mare)
culoare se precizeaz prin nume sau prin RGB
font poate fi un font generic din multimea {serif, sans serif, cursive,
monospace, fantasy, Times New Roman, Helvetica, Arial }
Eticheta (Tag-ul) basefont este valabil pn la sfritul paginii sau pn apare
urmtoarea etichet <basefont>.
n cazul n care eticheta <basefont> lipsete, textul din pagina Web are atributele
prestabilite i anume:
size=3,
color=black
style=Times New Roman
21
Aceste tag-uri sunt valabile, dar sunt mai vechi. Variantele mai noi pentru scrierea
textului ngroat sunt realizate cu ajutorul etichetei <strong>, iar pentru scrierea textului
nclinat se folosete eticheta <em>.
22
Un text inclus ntre etichetele <small> text </small> este scris cu caractere mai mici cu
o unitate dect dimensiunea curent.
23
24
25
Stiluri logice
Stilurile logice sunt bazate pe cele fizice. Modul lor de aciune depinde n mare msur
de de browserul utilizat.
Blocuri de caractere evideniate
Urmtoarele dou etichete pun n eviden prin stilul cursiv fragmente de text:
<cite> text </cite> (cite = citat)
<em> text </em> (emphasize = a evidenia)
Aceste dou etichete sunt echivalente cu eticheta <i> </i>.
26
culoarea
- se stabilete cu atributul color
tipul sau stilul
- se stabilete cu atributul face
mrimea
- se stabilete cu atributul size
mrimea n puncte tipografice (este stabilit prin atributul point-size)
grosimea
- se definete cu atributul font-weight
Culoarea fontului
Pentru a scrie un text cu o anumita culoare se ncadreaz acest text ntre delimitatorii
<font> text</font> n felul urmtor:
Sintaxa:
<font color = culoare>text de culoarea specificat </font>
Semantica:
culoare va reprezenta culoarea fontului
27
Familia fontului
Tipul de font se stabilete prin atributul face al etichetei <font>.
Fonturile pot fi separate prin virgul.
Cele cinci familii generice de fonturi sunt:
serif
sans serif
cursive
monospace
fanatasy
Pot fi utilizate i alte fonturi specifice cum ar fi:
Times (tip particular de font serif)
Helvetica (tip particular de font sans serif)
28
Arial
Courier (tip particular de font monospace)
Western (tip particular de font fantasy) , etc.
Exemplu:
<font face=Arial, serif, monospace>.
Browserul va utiliza primul font pe care l recunoate.
Mrimea fontului
Marimea fontului se indic cu atributul size al etichetei <font>.
Acest atribut poate lua urmtoarele valori:
1, 2, 3, 4, 5, 6, 7 (1= cel mai mic font, 7= cel mai mare font);
-1, -2, -3, etc. pentru a micora dimensiunea fontului cu -1, -2 fa de
dimensiunea curent;
+1, +2, +3, etc. pentru a mri dimensiunea fontului cu +1,+2,.. fa de
dimensiunea curent;
O alt metod de stabilire a mrimii unui font este prin utilizarea atributului pointsize al etichetei <font> i reprezint mrimea fontului n puncte tipografice. Acest atribut
poate lua ca si valori orice numar natural pozitiv.
Observaie: Atributul point size funcioneaz numai cu Netscape
Comunicator.
29
30
Blocuri de texte
a) Inserarea unei adrese
Inserarea unei adrese se face cu ajutorul etichetei <address> </address>. Textul este
afiat cu caractere cursive.
31
Blocuri <div>
Delimitarea i formatarea unui bloc de text se face cu delimitatorii <div> text</div>.
Blocul <div> are urmatoarele atribute :
align (aliniere).
Valorile atributului align sunt:
left
aliniere la stnga
center
aliniere central
right
aliniere la dreapta
32
Blocul preformatat
Etichetele <pre> </pre> permit pstrarea caracteristicilor textului aa cum a fost
introdus n fiier, deci ia n considerare caracterele spaiu, tab i CR/LF (enter la sfrit
de linie).
Blocul <pre> ... </pre> poate fi folosit pentru a insera rnduri vide.
Caracterul spaiu, pentru a putea fi luat n considerare trebuie precizat prin .
33
Blocuri de titlu
Titlurile (headers) de capitole sau paragrafe pot avea diferite dimensiuni. Ele pot fi
introduse cu tag-ul <hx> text </hx> unde x poate lua valori din multimea {1,2,3,4,5,6}
Exemplu:
<h3>(bloc de text)</h3>
Se accept atributul align de ctre aceste etichete pentru alinierea titlului blocului de
text la stnga (modul prestabilit), n centru i la dreapta.
Tag-ul <h1> scrie titlul cu caracterele cele mai mari i cele mai ngroate.
Tag-ul <h6> folosete caracterele cele mai mici.
34
Linii orizontale
Se pot insera linii orizontale ntr-o pagin web cu ajutorul etichetei <hr>.
35
36
Observaii:
Valoarea prestabilit a grosimii chenarului tabelului este de 1 pixel.
Dac valoarea grosimii chenarului este egal cu 0, atunci nu avem chenar.
Cteva exemple de creare a unor tabele:
Un tabel fr chenar
37
Un tabel cu chenar
38
39
40
Codul HTML care descrie tabelele de mai sus poate fi vzut n imaginea de pe pagina
urmtoare.
41
42
43
44
45
46
Imagini ca legturi
Imaginea trebuie s apar ca element de legatur n cadrul tagulul <a> imagine </a>
Legaturi (link-uri)
Cu ajutorul legturilor, un text obinuit se transform n hipertext sau hipermedia.
Legturile sunt zone active ntr-o pagin Web.
Paginile Web sunt interactive deoarece au un rspuns la aciunile care sunt iniiate de
cei care le utilizeaz.
Legturile n pagina html se insereaz cu ajutorul etichetei speciale <a> i a atributului
href care ia ca valoare adresa URL a resursei solicitate.
Cnd mouse-ul este deasupra unei zone active, el ia forma unei mini. Calculatorul
client expediaz cererea , primete resursa pe care a solicitat-o pe care o va ncrca n
browser.
n acelai browser, pagina nou va fi nlocuit de cea veche.
47
48
Exemplu:
49
50
Formulare
Despre formulare
Formularele HTML sunt cele mai frecvent utilizate pentru a colecta informaii de la
persoane care viziteaz site-ul. Un formular este un ansamblu de zone active alctuite din
butoane de apsat, casete de selecie, cmpuri de editare i altele.
O sesiune de lucru cu cu o pagin Web ce conine un formular cuprinde urmtoarele
etape:
1. Se completeaz formularul care se transmite unui server;
2. O aplicaie dedicat de pe server analizeaz formularul completat i eventual
se stocheaz datele ntr-o baz de date.
3. Eventual serverul expediaz un rspuns utilizatorului.
51
Script
action = mailto: livia.sangeorzan@yahoo.com
Tag-ul <input>
Pentru a crea diferite butoane sau casete se folosete tag-ul <input>
Sintaxa:
<input type =
name =
value =
>
Semantica:
type
poate lua valorile urmtoare
text
radio (atributul checked selecteaz butonul la prima activare a paginii);
checkbox;
submit trimite
reset terge (reseteaz);
52
<option >.
</select>
O list de selecie permite alegerea unuia sau mai multor elemente dintr-o list finit.
Are 2 atribute importante : name i size.
Elementele dintr-o list se introduc cu tag-ul <option>.
Sintaxa:
<select name = nume size = numar>
<option value = valoare_1 selected> Element_1
<option value = valoare_2 > Element_2
<option value = valoare_3> Element_3
</select>.
Semantica:
name
size
<option>
selected
Codul HTML aferent acestui exemplu se poate vizualiza n imaginea de mai jos.
53
54
ntre tag-ul de intrare i cel de ieire ale formularului sunt inserate, n principal,
controalele formularului. Un control este o form de interaciune a utilizatorului cu
formularul. Putem prezenta conform tabelului de mai jos principalele controale ntr-un
formular HTML prezentate mai sus:
55
CONTROL
ACIUNE A UTILIZATORULUI
text
Introducerea unui text de volum redus
password
Introducerea unui text de volum redus, care apare, pe ecran,
mascat cu "*"
submit
Activare (pentru a transmite informaiile completate de
utilizator)
reset
Activare (pentru a restabili valorile iniiale ale tuturor
controalelor formularului)
checkbox
Bifare
radio
Bifare
textarea
Introducere a unui volum mare de text
menu
Alegere a unei opiuni dintr-un meniu
TAG
Input
Input
Input
Input
Input
Input
Textarea
Select option
56
Hri de imagini
O imagine poate fi folosit ca i zon activ. n acest caz imaginea se insereaz n
documentul HTML ntre etichetele <a> i </a>.
Exist ns posibilitatea de a crea hri de imagini (image maps) care permit ca
diferite zone ale unei imagini s fie definite drept legaturi ctre diverse pagini WEB.
Crearea unei hri de imagini presupune trei etape:
Definirea unei imagini ca hart de imagini. Se va utiliza tag-ul <img> cu
atributele src i usemap. Numele dat pozei n usemap, precedat de semnul #, se
va regsi obligatoriu n tag-ul map, n atributul name.
Definirea hrii n interiorul unui bloc special definit cu tag-ul <map> i </map>.
Tag-ul are un atribut obligatoriu i anume name, care primete ca i valoare
numele hrii (numele din usemap)
Crearea zonelor pe hart. Fiecare zon se introduce cu eticheta <area>.
Eticheta <area> are trei atribute obligatorii:
1) shape care poate lua una din valorile:
rect (pentru zone de form dreptunghiular);
circle (pentru zone de form circular);
poly (pentru zone de form poligonal);
default (pentru poriunile imaginii care nu se ncadreaz n nici una
dintre categoriile anterioare)
2) coords determin coordonatele zonei
3) href primete adresa URL a paginii indicate de legatura zonei respective.
Valorile atributului shape:
57
58
59
<H1> Acest heading este verde datorit unei reguli CSS </H1>
</BODY>
</HTML>
n exemplul anterior regula CSS este specificat n interiorul fiierului HTML. Prin
aceast metod modificrile n cazul fiierelor mari devin greoaie de aceea se recomand
scrierea regulilor ntr-un fiier separat de unde s fie importate n fiierul HTML. Pentru
exemplificare editm un fiier pe care l denumim reguli.css. In acest fiier scriem H1 {
color: green }.Documentul HTML care import acest regulile din acest fiier este de forma
urmtoare:
<HTML>
<HEAD>
<TITLE> Exemplu de import </TITLE>
<LINK REL=stylesheet HREF=c:\reguli.css TYPE=text/css>
</HEAD>
<BODY>
<H1> Acest heading este verde datorit unei reguli importate </H1>
</BODY>
</HTML>
Class ca selector
O regul de genul H1 { color: blue } se aplic mereu cnd apare selectorul H1
indiferent dac vrem sau nu. Pentru a evita acest lucru se folosesc clasele.
Fie fiierul reguli.css, fiierul n care scriem regulile pe care le vom importa.
Sintaxa pentru definirea unei clase este urmtoarea: H1.clasa_noastr { color: red }
In fiierul HTML cnd vrem s aplicm regula respectiv scriem
<H1 CLASS=clasa_noastr> Heading rou </H1>.
Dac am scrie <H1> Heading obinuit </H1> nu se va mai aplica regula CSS, deci
textul Heading obinuit nu va mai aprea rou.
Clasa definit mai sus se poate aplica numai pentru H1.
60
ID ca selector
O construcie asemntoare cu CLASS este ID.
Comentarii
Comentariile sunt asemntoare cu cele din limbajul de programare C.
EM { color: lime } /* un verde s te doar ochii */
Pseudo-clase i pseudo-elemente
Au fost introduse pentru adugarea unor faciliti suplimentare de formatare. Pseudoclasele i pseudo-elementele sunt recunoscute n cadrul regulilor CSS, dar nu sunt
recunoscute direct n fiierul HTML.
Pseudo-clasa anchor
Aceast pseudo-clas permite formatarea link-urilor din cadrul unui pagini web.
A:link { color: red }
/* link nevizitat */
A:visited { color: blue } /* link vizitat */
A:active { color: lime } /* link activ */
Prin aceste reguli toate link-urile din pagina HTML vor lua culorile specificate.
Pseudo-clasa anchor nu are efect dect asupra selectorului A, de aceea regula: A:link { color:
red } are acelai efect ca i :link { color: red }.De asemenea pseudo-clasele pot fi combinate
cu clasele obinuite astfel: A.clasa_mea:link { color: red }.
Pseudo-elemente
first-line
Permite specificarea unui anumit stil pentru prima linie dintr-un paragraf.
<STYLE TYPE="text/css">
P:first-line { font-variant: small-caps }
</STYLE>
<P>The first line of an article in Newsweek.
61
Presupunnd ca prima linie se termin dup cuvntul an n pagina web acest text va
apare sub forma:
THE FIRST LINE OF AN
article in Newsweek.
first-letter
Asemntor cu first-line acest pseudo-element permite specificarea unui stil pentru
prima liter dintr-un text.
Precedena regulilor
De multe ori se ntmpl ca ntr-un punct n cadrul unui fiier HTML s fie valabile
mai multe reguli CSS. Pentru a rezolva astfel de situaii trebuie stabilite nite reguli de
prioritate.
`important`
`Important` este un cuvnt rezervat prin care i se d unei reguli CSS o prioritate mai
mare dect unei reguli obinuite.
P { font-size: 12pt ! important; font-style: italic }
Reguli:
1) Regula care conine `! important` suprascrie o regul obinuit.
2) Specificitatea unui selector: selectorii mai specifici i suprascriu pe cei mai
generali. Specificitatea se obine prin concatenarea a trei numere: numrul de
atribute ID din cadrul selectorului (a), numrul de atribute CLASS (b) i numrul
de tag-uri din selector (c).
LI
{...} /* a=0 b=0 c=1 -> specificitate = 1 */
UL LI
{...} /* a=0 b=0 c=2 -> specificitate = 2 */
UL OL LI {...} /* a=0 b=0 c=3 -> specificitate = 3 */
LI.red
{...} /* a=0 b=1 c=1 -> specificitate = 11 */
UL OL LI.red {...} /* a=0 b=1 c=3 -> specificitate = 13 */
#x34y
{...} /* a=1 b=0 c=0 -> specificitate = 100 */
Pseudo-clasele sunt numrate ca i clasele obinuite, iar pseudo-elementele sunt
numrate ca i elementele obinuite.
n cazul n care dou reguli ajung s aib aceai specificitate se aplic regula
specificat mai trziu. Regulile importate se consider a fi naintea oricrei reguli din fiierul
n care sunt importate.
Stiluri in-line
Sunt definite n eticheta n care dorim s se aplice aceste stiluri.
Valoarea lui <style = valoare> este cuprins ntre ghilimele.
Atribute CSS
Font
font-family
Valoarea: nume de font. Exemple: helvetica, serif, sans-serif,
cursive, monospace, fantasy, etc
BODY { font-family: gill, helvetica, sans-serif }
font-style Valoarea: normal | italic | oblique
font-variant Valoarea: normal | small-caps
font-weight Valoarea: normal | bold | bolder | lighter | 100 | 200 | 300 | 400 |
500 | 600 | 700 | 800 | 900. Valoarea: normal echivaleaz cu 400, iar bold cu 700.
font-size Valoarea: <absolute-size>|<relative-size>|<length>|<percentage>
absolute-size poate lua una din valorile: xx-small | x-small | small | medium |
large | x-large | xx-large
relative-size poate lua una din valorile: larger sau smaller
percentage
Exemple:
P { font-size: 120% }
H1, H2, H3 { font-style: italic }
Dimensiunile pentru font-size sunt specificate prin:
1. mrime absolut; avem urmatoarele valori posibile:
xx-small
x-small
small
medium (valoarea prestabilit)
large
x-large
xx-large
2.
63
Background i culoare
Color - Valoarea culorii poate fi specificat prin RGB(rou,verde,albastru),
parametrii lund valori ntre 0 i 255, prin numele unei culori care este deja definit
(blue,green,black, etc) sau prin #nr1nr2nr3. Nr1,nr2,nr3 sunt numere de dou cifre
n baza 16.
H2 { color: rgb(255,0,0) }
H3 { color: #00FF6A }
background-color - Valoarea: <color> | transparent.
background-image - Valoarea: <url> | none
background-repeat - Valoarea: repeat | repeat-x | repeat-y | no-repeat Precizeaz
dac imaginea din fundal este repetat sau nu. Pentru valoarea repeat imaginea
este multiplicat pe orizontal i vertical. Pentru valoarea repeat-x imaginea este
multiplicat numai pe orizontal,iar pentru repeat-y imaginea este multiplicat
doar pe vertical.
background-attachment - Valoarea: scroll | fixed Specific dac imaginea din
fundal este derulat odat cu coninutul sau nu.
Text
word-spacing Valoarea: normal | <lenght> (dimensiunea dintre cuvinte)
letter-spacing Valoarea: normal | <lenght> (dimensiunea dintre litere)
text-decoration Poate lua una din valorile: underline, overline, line-through, blink.
vertical-align Valoarea: baseline | sub | super | top | text-top | middle | bottom | textbottom | <percentage>
text-transform Valoarea: capitalize | uppercase | lowercase | none
text-align Valoarea: left, right, center, justify
Distana dintre rnduri
Se folosete atributul line-height. Valori posibile:
valoarea normal
factor de scal
prin lungime
prin procente din valoarea curent a fontului
64
Exemplu:
<html>
<head><title> Exemplu MEDIA</title>
<style type-text/css media=screen>
p {color: yellow;}
</style>
<style type=text/css media=print>
p {color: black;}
</style>
</head>
<body>
<p> Acest paragraf va avea culoarea galbena pe monitor si culoarea neagra la
imprimare.
</body>
</html>
65
padding-top
padding-right
padding-bottom
padding-left
padding
Limea chenarului
Atribute:
Border-top-width
Border-right-width
Border-bottom-width
Border-left-width
Border-width
Valori posibile:
thin, medium sau thick
Numere ntregi pozitive urmate de o unitate de msur
Stilul chenarului
Cu ajutorul atributului border-style.
Valori posibile:
Culoarea chenarului
Cu ajutorul atributului border-color.
Valori posibile:
none (niciuna)
un nume de culoare (aqua, red, blue, etc.)
specificaie numeric de tip RGB
funcia (r, g, b) cu valori ntre 0 i 255
funcia (r, g, b) cu procente ntre 0% i 100%
66
67
68
Stiluri inline
69
70
71
72
73
74
75
76
77
78
V. JavaScript
Limbajul JavaScript a fost realizat de firmele Netscape i Sun i a fost conceput ca un
limbaj care extinde posibilitile de lucru ale HTM-ului. Acest limbaj conlucreaz cu HTMLul.
Avantajele utilizrii limbajului JavaScript
79
JavaScript evoluaz
JavaScript continu s evolueze ca limbaj.
Erorile de sintax se depisteaz greu, drept urmare se poate folosi funcia alert ( ).
Folosete din sintaxa lui C++ i a limbajului Java
JavaScript lucreaz cu funcii definite de programatori sau/i cu funcii predefinite
81
Dac scripturile JavaScript sunt stocate ntr-un fiier separat, ele sunt de asemenea
evaluate atunci cnd se ncarc pagina i nainte s aib loc vreo aciune.
Toate instruciunile JavaScript aflate n blocul unei funcii sunt interpretate, iar
executarea nu se petrece pan ce funcia nu este apelat dintr-un eveniment JavaScript.
Instruciunile JavaScript care nu se afl n blocul unei funcii sunt executate dup ce
documentul se ncarca n browser, practic pe msura ce este redat. Rezultatul executrii
acestor instruciuni va fi vizibil pentru utilizatori atunci cand vd pentru prima dat pagina.
a. Limbajul JavaScript
JavaScript este un limbaj de nivel nalt, bazat pe obiecte, conceput pentru a le permite
utilizatorilor i programatorilor n Web s creeze cu uurin documente Web interactive. El
ofer caracteristicile eseniale ale unui limbaj orientat spre obiecte, fr caracteristicile
complicate care nsoesc alte limbaje, ca Java i C++.
Vocabularul relativ restrns al limbajului JavaScript este uor de neles, oferind n
acelai timp mai multe posibiliti inaccesibile anterior.
Operatori aritmetici : +, -, * /, %
++ ,-- , + (operator unar), - (operator unar)
Operatori relationali : <, <=, >, >=
Operatori logici
! (negarea logic)
|| operatorul logic sau (este operator binar): dac cel puin
unul dintre operanzi este true, rezult true, altfel rezultatul este false
&& operatorul logic i
Operatorul de concatenare
Operatorul de concatenare pentru iruri este +
82
c. Instruciuni
Instruciunile urmtoare au aceeai sintax i semantic precum n limbajul Java:
IF
Compus ( {.} )
Switch;
While;
Do While
For
d. Funcii predefinite
83
84
Aplicaie_2:
85
Evenimente
Una dintre caracteristicile-cheie ale limbajului JavaScript este capacitatea de a
intercepta un numr limitat de aciuni, cunoscute ca evenimente. Un eveniment este o
aciune, care apare la un moment dat i n urma creia este declanat execuia unei anumite
pri din program. Ori de cte ori vizitatorul face click pe o legtur, de exemplu, cnd
introduce un text sau chiar cnd trece cu mouse-ul deasupra unei zone a paginii, survine un
eveniment la care scriptul reacioneaz genernd un rspuns.
Obiecte
Folosind limbajul JavaScript, se pot defini obiecte proprii, dar limbajul pune la
dispoziie o ierarhie de obiecte predefinite, respectnd modelul DOM (Document Object
Model care este un pachet de interfee conceput de W3C). Elementul de legtur ntre
JavaScript i DOM este obiectul Document, ce implementeaz interfaa Document din DOM.
Fiecrui nivel din ierarhia de mai sus putem spune c i corespunde o serie de noduri.
Astfel avem nodul document, cu subnivele/subnoduri aa cum este artat n imaginea de mai
sus.
86
Pornim de la o aplicaie concret: Fie un formular care are structura conform imaginii
de mai jos:
87
images [0]
forms[0]
links[0]
images[1]
___________________
name="nume"
Cutarea tag-urilor
Pentru a putea manipula informaia dintr-un element (tag) HTML este necesar ca mai
nti s se obin o referin la acel element. n acest scop se pot folosi urmtoarele
metode:
document.getElementById( )- returneaz un element, identificat dup atributul
id.W3C recomand ca pentru identificarea elementelor s se foloseasc id;
document.getElementByName() - returneaz un element, identificat dup atributul
name.;
88
89
n limbajul HTML nu exit elemente ca linii oblice, elipse, cercuri sau alte elemente de
acest gen.
Funcionalitatea acestei librrii este redus la urmtorele browsere Web: GeckoBrowsers, Internet Explorer 4, 5 and 6, Opera 5, 6 i 7+, pentru sistemul de operare
Windows.
Eventhandler
Handler-ele de evenimente sunt introduse n <form> ca atribute suplimentare n tagurile
HTML. Ca valoare pentru aceste atribute, sunt date instruciuni JavaScript, care trebuie
executate. Handler-ele de evenimente se recunosc dup numele lor. Acestea ncep, de
exemplu, cu onClick.
Nr
crt
EVENTHANDLER
onAbort
onBlur
onChange
onClick
onDblClick
onError
onFocus
onKeydown
onKeypress
onKeyup
onLoad
onMousedown
onMousemove
onMouseout
onMouseout
onMouseup
onReset
onSelect
onSubmit
onUnload
javascript
90
Totodat s se scrie un text n caseta care apare pe ecran, iar textul scris s fie afiat ntr-o
csu alert, atunci cnd se face click n afara casetei, pe ecran.
Soluia este dat n figura de mai jos.
91
92
Obiectul window
Obiectul Window corespunde ferestrei curente din browser i cu ajutorul lui se pot
afla/modifica proprietile ferestrei. Exist posibilitatea de a deschide ferestre noi.
Obiectul window este cel mai de sus obiect din ierarhia obiectelor JavaScript.
Corespunde ferestrei curente din browserul web. Prin acest obiect se pot afla prorietile
ferestrei curente. Exist i posibiltatea de a deschide ferestre noi. Aa-numita fereastr
principal a browserului web se poate apela prin numele rezervate window sau self.
Proprieti ale obiectului window:
Nr.
crt.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PROPRIETATE
closed
defaultStatus
innerHeight
innerWidth
locationBar
menuBar
name
outerHeight
outerWidth
pageXOffset
pageYOffset
personalBar
scrollBar
statbar
status
toolbar
ACCES
read
read, write
read, write
read, write
read
read
read, write
read, write
read, write
read
read
read
read
read
read, write
read
Aplicaie_1:
93
Aplicaie_2:
94
11
12
13
14
15
16
METODA
DESCRIERE
alert(s)
blur()
clearIntervall(p)
Obiectul location
95
Obiectul location ne d adresa HTML-ului local. Cnd o pagin este incarcata (de
exemplu http://www.xyz.com/page.html) atunci location.href conine adresa . Pentru
location.href i putem atribui noi o adres.
Acest buton button aduce o nou pagin n fereastra actual (Window)
Aplicaie:
Obiectul document
Acest obiect se refer la coninutul unei ferestre dintr-un browser.
n tabelul urmtor sunt metodele obiectului document:
Nr.
Crt.
1
2
3
4
5
6
PROPRIETATE
alinkColor
bgColor
cookie
fgColor
lastModified
linkColor
DESCRIERE
culoarea unui link pe care s-a dat click
culoarea de fundal
posibilitatea de a citi si de a scrie cookie-uri
culoarea textului (foreground)
data si ora ultimei modificri
culoarea linkurilor care nu au fost nc vizitate
96
ACCES
read, write
read, write
read, write
read, write
read
read, write
referer
title
9
10
URL
vlinkColor
read
read
read
read, write
close()
open()
3
4
write(s)
writenln(s)
METODA
DESCRIERE
Inchide un document care a fost deschis cu metoda open()
Deschide un document pt scriere. Nu se desschide o nou
fereastr, documentul actula se va suprascrie
Scrie Stringul s n documentul actual
Analog metodei write(), doar c se trece la linie nou
Obiecte derivate din obiectul document: all, anchors, applets, areas, embeds, forms,
images, layers, links, plugins.
Aplicaie:
97
Obiectul forms
Acest obiect pune la dispoziie metode i proprieti care permit accesul la un formular
definit n interiorul unui fiier HTML
Accesul la un formular se poate face prin 3 metode:
1. Prin numele formularului - <form name=FormNAME>
Acces : document.FormNAME.reset()
2. Prin indexul formularului. Primul formular primeste 0 etc.
Acces : document.forms[4].reset()
3. Prin numele formularului ca indicator al indexului. Numele se d cu atributul name
din tagul <form>
Acces : document.forms[FormNAME].reset()
Proprieti ale obiectului forms:
Nr.
Crt.
1
action
encoding
3
4
length
method
name
target
PROPRIETATE
DESCRIERE
retine cuvntul/valoarea stabilit/ n
atributul action din tagul <form>
retine cuvntul/valoarea stabilit/ n
atributul encoding din tagul <form>
reine nr. formularelor dintr-un fisier
retine valoarea stabilit/ n atributul
method din tagul <form>
retine cuvntul/valoarea stabilit/ n
atributul name din tagul <form>
reine numele frame-ului care s devin
activ dup trimiterea unui formular
ACCES
read, write
read, write
read
read, write
read, write
read, write
reset()
submit()
METODA
DESCRIERE
Sterge toate datele introduse ntr-un formular, si are aceeai
funcie ca butonul care se introduce cu atributul type=reset
Trimite un formular, si are aceeai funcie ca butonul care
se introduce cu atributul type=submit
98
99
Obiectul image
Acest obiect se afl n ierarhie sub obiectul document i se refer la proprietile
imaginii introduse in HTML. Aceste proprieti pot fi modificate n interiorul unui fiier
HTML.
Obiectele image se pot apela n felul urmtor:
1.
2.
PROPRIETATE
Border
Complete
3
4
Height
Hspace
5
6
7
8
Length
Lowsrc
Name
Src
Vspace
10
width
DESCRIERE
conine indicaii despre margine, aa cum se
gsesc ele in tag-ul img
e true atunci cnd imaginea e complet
inacrcat
conine indicaii despre nlimea pozei
conine indicaii despre distanta orizonatala
fata de obiectele din jur
retine nr. imaginilor dintr-un fiier
reine lowsrc asa cum e in tagul img
reine numele pozei asa cum e in tagul img
reine numele intreg al fisierului asa cum e in
atributul src
conine indicaii despre distanta vertical fata
de obiectele din jur
conine indicaii despre laimea pozei
ACCES
read
read
read
read
read
read
read
read
read
read
Pe lng metoda handleEvent(), care este interpretat numai de Netscape Navigatorobiectul-image conine i alte metode proprii.
Obiectul date
Se folosete pentru calcularea datei i a orei/timpului. Un obiect date se poate crea n
felul urmtor:
<script language=JavaScript>
Function simpleDate()
{
Date1= new Date();
Date2= new Date(YYYY,MM,DD);
Date3= new Date(MM DD YYYY HH:mm:ss);
Date4= new Date(YYY,MM,DD,HH,mm,ss);
100
}
</script>
Obiectul navigator
Conine informaii despre browser i se poate folosi pentru a adapta mai bine scriptul
fiecrui browser n parte.
Proprieti ale obiectului navigator:
Nr.
Crt.
1
appCodeName
appName
appVersion
language
platform
userAgent
PROPRIETATE
DESCRIERE
Conine nicknameul browserului(d.ex.,
Netscape urte nickname-ul Mozilla)
Reine numele browserului n care
ruleaz scriptul
Reine nr. versiunii browserului n care
ruleaz scriptul
Conine limbajul n care este instalat
scriptul(doa Netscape)
Reine numele sistemului de operare pe
care este instalat scriptul (doar
Netscape)
Reine informaii de browser, aceleai
pe care le transmite browserulul i la o
apelare http
ACCES
read
read
read
read
read
read
Obiectul navigator spune, prin metoda javaenabled(), dac n browser este activat Java,
astfel nct s se tie dac se pot folosi appleturi.
Dac Java este acceptat, metoda returneaz true.
ACCES
read
read, write
read, write
read, write
read, write
read,
read, write
read,
read, write
read, write
read, write
read,
read, write
read, write
read, write
4
5
6
7
DESCRIERE
8
9
releaseEvents()
resizeBy(p1,p2)
10
resizeTo(p1,p2)
11
routeEvent()
className
2
3
4
dataFld
dataFormatrAs
dataPageSize
dataSrc
6
7
8
id
innerHTML
innerText
isTextEdit
10
lang
11
language
PRPRIETATE
DESCRIERE
Numele clasei style-sheet, careia
i aparine un element.
Numele unui cmp de date.
Tipul unui cmp de date.
Numrul datapage-urilor care
trebuie returnate simultan
Referina la obiectul cu care s-a
realizat conexiunea
Numele unui element
Coninutul unui element GHtml
Coninutul textual al unui elemnt
GHtml.
true-dac elementul este editabil,
false dac nu
Limbajul elementului, atta timp
ct acesta a fost menionat n
atributul lang.
Numele limbajului script
103
ACCES
read, write
read, write
read, write
read, write
read, write
read,
read, write
read, write
read,
read, write
read,
12
length
13
14
offsetHeight
offsetLeft
15
16
offsetParent
offsetTop
17
18
offsetWidth
outerHTML
19
20
outerText
parentElement
21
parentTextEdit
22
23
recordNumber
sourceIndex
24
25
tagName
title
read,
read,
read
read,
read,
read
read, write
read, write
read,
read,
read,
read,
read,
read, write
5
6
METODA
DESCRIERE
104
scrollIntoView(p1)
setAttribute(p1,p2,p3)
Exemplu de cod complet pentru o metod care este apelat prin proprietile
browserului i care ine cont de elementele specifice browserelor Netscape i Explorer:
Function checkBrowser()
{
var browserName=navigator.appName;
var browserNickname=navigator.appCodeName;
var browserVersion=parseFloat(navigator.appVersion);
var browserInfos=navigator.userAgent;
var isNetscape=false;
var isMicrosoft=false;
window.document.write(Browser :+browserName);
if(browserName==Microsoft Internet Explorer)
{
isMicrosoft=true;}
}
if(browserName ==Netscape)
{
isNetscape=true;
}
if(isMicrosoft)
{
if(navigator.app.Version.indexOf(MSIE)!=-1)
{
versiontmp1=navigator.appVersion.indexOf(MSIE)+4;
Versiontmp2=versiontmp1+5;
bowserVersion=navigator.appVersion.substring(versiontmp1,
versuiontmp2);
}
}
window.document.write(<br> VERSION :+browserVersion);
window.document.write(<br> NICKNAME :+browserNickname);
window.document.write(<br> userAgent :+browserInfos);
105
if(isNetscape)
{
window.document.write(<br> NETSCAPE SPEZIFIKATION= ======:);
window.document.write(<br> System :+navigator.platform);
window.document.write(<br> Language :+navigator.language);
window.document.write(<br> ===);
}
alert(BROWSER : +browserName+\n+ VERSION :+browserVersion);
return;
}
Obiectul Math
Conine constante i metode pentru a putea folosi funcii matematice.
Constante: PI (numrul pi=3,14..) E (e=2,71..).
Metode:
abs(x) modulul
cos(x)
tan(x)
sin(x)
acos(x)
asin(x)
atan(x)
floor(x) cel mai mare ntreg mai mic sau egal cu x
Exemplu: Math.floor(-3,73), returneaz -4. (reprezentarea unui numr real sub form de
sum dintre parte ntreag i parte fracionar x=[x]+{x}; 0<={x}<1; -2,63 = -3+0,37)
random(x) numr aleator n intervalul [0,1]
round(x) cel mai apropiat ntreg de x
sqrt(x) radical din x
pow(x,y) x la puterea y
log(x) ln x
exp(x) e la puterea x
Exemplu : Math.floor(1+100*Math.random()); va returna un numr aleator cuprins ntre
[1,101].
Obiectul Array
n JavaScript se pot declara vectori. Vectorii sunt de tip obiect. Un vector se declar cu
Array() iar elementele se acceseaz cu nume[indice];
Obiecte i metode ale obiectului Array:
proprietatea length ;
metoda sort() sorteaz n ordine lexicografic elementele unui
vector(tablou);
metoda reverse() inverseaz poziiile elementelor unui vector;
106
Obiectul String
Cu acest obiect se pot manipula iruri de caractere.
Crearea unui string se poate efectua n dou moduri :
utiliznd new : var a = new String (Ana) ;
atribuid variabilei direct irul :a = Ana;
Obiectul String are propritatea length care indic dimensiunea irului.
Metode.
Exist o serie de metode ale acestui obiect. Enumerm cteva dintre acestea:
search(s) caut caracterul de nceput al irului s n obiect. Dac irul s nu exist se
returneaz -1.
charAt(index) returneaz caracterul aflat pe poziia index;
107
108
Animaii
Prin afiarea n aceeai poziie a mai multor imagini, fiecare imagine stnd un anumit
interval de timp duce la animaie. Exist anumite funcii predefinite i funcii utilizator care
rezolv aceast problem.
1. Funcia setTimeout
Sintaxa:
setTimeout(nume_functie, nr_milisecunde)
Semantica:
nume_functie este funcia care urmeaz a se executa dup nr_milisecunde;
nr_milisecunde este un numr ntreg care este exprimat n milisecunde
2. Funcia clearTimeout
Sintaxa:
clearTimeout(variabila)
Semantica:
variabila conine o valoare returnat de funcia setTimeout. Dup executarea ei
procesul se suspend;
Exemplu de aplicaie care folosete funcia setTimeout:
109
110
111
cifra=n % 10;
n=(n-cifra)/10;
inv=inv*10+cifra;
}
if (n_init==inv)
document.form2.palindrom.value="da"
else
document.form2.palindrom.value="nu";
}
function transf_dinbaza10()
{
n=parseInt(document.form3.input.value);
b=parseInt(document.form3.baza.value);
i=0,a="";
var sir=new Array();
do
{
cifra = n%b;
if (cifra>9)
{
switch (cifra)
{
case 10: cifra='A';break;
case 11: cifra='B';break;
case 12: cifra='C';break;
case 13: cifra='D';break;
case 14: cifra='E';break;
case 15: cifra='F';break;
}
}
sir[i] = cifra;
i++;
n=Math.floor(n/b);
}while(n);
for (j=i-1;j>=0;j--) a= a+sir[j];
document.form3.transf.value=a;
}
function calc_modulul()
{
a = document.form4.re.value;
b = document.form4.img.value;
z1 = new Object();
z1.real = parseInt(a);
z1.imaginar = parseInt(b);
modul=Math.sqrt(z1.real*z1.real+z1.imaginar*z1.imaginar);
document.form4.modul.value=modul;
}
112
function inlocuire_litera()
{
sir = document.form5.input.value;
sir = sir.replace(/u/g,"a");
document.form5.output.value=sir;
}
function sortare_alfabetica()
{
sir = document.form6.input.value;
var a=new Array();
var i,k=0,alfabetic="";
for(i=0;i<sir.length;i++)
{
a[k]=sir.charAt(i);
k++;
}
a.sort();
for(i=0;i<k;i++)
alfabetic=alfabetic+a[i];
document.form6.output.value=alfabetic;
}
</script>
</head>
<body>
<ul>
<li><i> Suma, diferenta, produsul si catul a doua numere <b>a</b>si <b>b</b>
</i><br>
<form name="form1">
a: <input type="text" name="inputa" size="14"> <br>
b: <input type="text" name="inputb" size="14"> <br>
Suma: <input type="text" name="s" size="14"> <input type="button"
value="Aduna" onClick="suma()"> <br>
Diferenta: <input type="text" name="d" size="14"><input type="button"
value="Scade" onClick="diferenta()"> <br>
Produsul: <input type="text" name="p" size="14"><input type="button"
value="Inmulteste" onClick="produs()"> <br>
Catul : <input type="text" name="c" size="14"> <input type="button"
value="Imparte" onClick="cat_rest()"> <br>
Restul: <input type="text" name="r" size="14"> <br>
</form>
</li>
<li><i>Inversul unui numar si se testarea daca este palindrom</i>
<form name="form2">
Numarul: <input type="text" name="input" size="14"> <br>
Inversul: <input type="text" name="invers" size="14">
<input type="button" value="Calculeaza" onClick="calc_invers()"> <br>
Palindrom? <input type="text" name="palindrom" size="14">
<input type="button" value="Testeaza" onClick="test()"> <br>
113
</form>
</li>
<li><i> Transformare din baza 10 in baza 2, 8 sau 16</b></i>
<form name="form3">
Numarul: <input type="text" name="input" size="14"> <br>
Baza: <input type="text" name="baza" size="14"> <input type="button"
value="Calculeaza" onClick="transf_dinbaza10()"> <br>
Numarul este: <input type="text" name="transf" size="14"> <br>
</form>
</li>
<li><i> Modulul unui numar complex</i><br>
<form name="form4">
z1: <input type="text" name="re" size="14"> <input type="text"
name="img" size="14">
<input type="button" value="Calculeaza" onClick="calc_modulul()"><br>
Modulul: <input type="text" name="modul" size="14"> <br>
</form>
</li>
<li><i> Inlocuirea literei "u" cu litera "a" intr-un sir de caractere </i><br>
<form name="form5">
Sirul: <input type="text" name="input" size="14"> <input type="button"
value="Inlocuieste" onClick="inlocuire_litera()"> <br>
Dupa inlocuire: <input type="text" name="output" size="14"> <br>
</form>
</li>
<li><i> Ordonarea alfabetica a unui cuvant </i> <br>
<form name="form6">
Sirul: <input type="text" name="input" size="14"> <input type="button"
value="Sorteaza" onClick="sortare_alfabetica()"> <br>
Alfabetic: <input type="text" name="output" size="14"> <br>
</form>
</li>
</ul>
</body>
</html>
Aplicaia_2: S se realizeze un minicalculator de buzunar cu JavaScript
114
115
operator="/";
}
}
function resolve()
{
var rez=0;
switch (operator)
{
case "+": rez = (str2*1) + (str*1) ;
document.form1.text1.value = rez;
break;
case "-": rez = (str2*1) - (str*1);
document.form1.text1.value = rez;
break;
case "*": rez = (str2*1) * (str*1);
document.form1.text1.value = rez;
break;
case "/": rez = (str2*1) / (str*1);
document.form1.text1.value = rez;
break;
}
operator=""; str=""; str2="";
}
function clearall()
{
document.form1.text1.value="";
str=""; str2=""; operator="";
}
</script>
</head>
<body>
<center>
<form name="form1">
<table border="1" bgcolor="lightblue">
<tr><td>
<input type="text" name="text1" style="color:navy;font-weight: bold"
size="20">
</td></tr>
<tr><td>
</td></tr>
</table>
<table border="3" bgcolor="lightblue">
<tr><td align="center">
<input type="button" value=" 1 " style="color:navy;font-weight: bold"
onClick="input(1)">
116
117
118
119
t.img=(eval(this.real)*eval(z.img)-eval(this.img)*eval(z.real))/(z.real^2z.img^2);
alert(" REZULTAT INTERMEDIAR t.real div= "+eval(t.real));
return t;
}
function calcul(a,b)
{
z3A=new complex(0,0);
z3I=new complex(0,0);
z3D=new complex(0,0);
z1=new complex(a,b);alert("data complexa z1= "+z1.real+" + "+z1.img+"i");
z2=new complex(b,a);alert("data complexa z2 ="+z2.real+" + "+z2.img+"i");
z3A=z2.adun(z1)
alert("ADUNARE ="+z3A.real+"+"+z3A.img+"i");
z3I=z2.inmultire(z1);
alert("INMULTIRE ="+z3I.real+" +"+z3I.img+"i");
z3D=z2.impartire(z1);
alert("IMPARTIRE ="+z3D.real+" + "+z3D.img+"i");
}
</script>
</head>
<body>
<form name="f1">
Real(z) :<input type ="text" name="Input1" value="0">    
Imaginar(z):<input type ="text" name="Input2" value="0"><br>
<input type="button" value="OK-REAL"
onClick="getDataR(document.f1.Input1.value)">
                
<input type="button" value="OK-Imaginar"
onClick="getDataI(document.f1.Input2.value)"><br>
Afisez Real(z):<input type="text" name="rez1">   
Afisez Imaginar(z):<input type="text" name="rez2"><br><br><br><br>
<input type="button" value="OK - alert( )"
onClick="calcul(document.f1.Input1.value,document.f1.Input2.value)">
</form>
</body>
</html>
Aplicaia_5 : S se scrie un text care ii schimb culoarea i atunci cnd mouse-ul
rmne pe imaginea de pe display, aceasta se mrete pn cnd mouse-ul este luat de pe
imagine.
120
121
tt=setTimeout("lumina()",100);
if(i==0)
clearTimeout(tt);
} while(i>0);
}
</script>
</head>
<body onload="lumina()">
<img id="foto" src="t1.jpg" onmouseout="out()" onmousemove="move()"
width="80" height="80">
<h1 id="Titlu"> ID - INVATAMANT LA DISTANTA </h1>
</body>
</html>
122
a. Primii pai
Pentru a putea lucra cu php avem nevoie de un server Apache, iar dac dorim s lucrm
cu php i cu baze de date mai avem nevoie si de un server de MySql. Exist programe
speciale care instaleaz automat aceste servere. Exemple de astfel de programe sunt:
WinLAMP, XAMPP, WAMPP, etc.
Fiierele cu cod php pe care le vom crea se vor salva n directorul htdocs din directorul
cu numele aplicaiei pe care o folosim pentru a putea lucra cu php.
Pentru a vizualiza n browser pagina web creat cu php vom scrie:
http://localhost/nume_fisier.php
b. Noiuni introductive
Orice script PHP se ncadreaz ntre marcajele:
<?
?>
sau
<?php
?>
Tiprirea pe display se poate face n dou moduri, folosind:
1. funcia echo TEXT;
2. funcia printf(TEXT);
Script-ul PHP poate fi introdus ntr-un fiier html sau se poate crea un fiier direct cu
extensia php.
c. Limbajul PHP
1.
2.
3.
4.
123
5. Instruciunile PHP sunt la fel ca i cele din limbajul JavaScript, Java sau C++;
6. Legtura fiierul HTML cu un fiier PHP se face prin atributul action din tag-ul
form;
Funciile matematice
Ca i
acestea:
Declararea de vectori
n PHP vectorii nu se declar. Se lucreaz cu vectorii la fel ca i in JavaScript. Exist
ns aici posibilitatea de a utiliza indicii ir de caractere.
Instruciuni i funcii pentru lucrul cu vectori:
instruciunea foreach(n_vector as n_indice=>n_variabila) permite
parcurgerea unui vector cu numele n_vector, cu variabila de ciclare n_indice, n
care citirea se face n variabila n_variabila.
funcia current(vector) returneaz valoarea reinut de elementul din vector
asupra cruia se gsete pointer-ul;
funcia key(vector) returneaz indicele elementului din vector asupra cruia se
gsete pointer-ul;
funcia next(vector) deplaseaz pointer-ul pe elementul urmtor din vector i
returneaz valoarea reinut de acesta;
funcia prev(vector) deplaseaz pointer-ul pe elementul anterior al vectorului i
returneaz valoarea reinut de acesta;
124
125
126
$a=65;
$b=78;
print (" <br>a =".$a." <br> b=".$b);
?>
</body>
</html>
Aplicaia 2: Aplicatia este formata din doua fiiere :
formular.html
formular.php
Execuia i codul celor dou fiere sunt date mai jos :
127
128
VII.
Limbajul VRML
129
131
Toate obiectele vizibile create n VRML sunt definite n interiorul nodului Shape, unde
gsim urmtoarele cmpuri:
- appearance specific un nod de tip Appearance, prin intermediul cruia
stabilim culoarea, textura i celelalte caracteristici vizuale ale formei geometrice;
- geometry indic forma geometric creat. Acestea pot fi de dou tipuri:
forme primitive: Box (cub), Cone (con), Cylinder (cilindru) i Sphere
(sfer).
forme geometrice avansate: Elevation Grid, Extrusion,
IndexedFaceSet, IndexedLineSet i PointSet.
Nodul Box
Sintax:
Box {
size 1.0 1.0 1.0
}
Semantic:
Nodul Box definete un paralelipiped cruia i se poate stabili limea, nlimea i
grosimea. Centrul de greutate el formei create este prestabilit la punctul cu coordonatele
(0,0,0) din sistemul de coordonate local (practi centrul ecranului). Box are un singur cmp,
size, prin intermediul cruia se definete mrimea corpului geometric pe axele X, Y i Z.
Cmpul are valoarea iniial 1.0, 1.0, 1.0.
Nodul Sphere
Sintax:
Sphere {
radius 1.0
}
Semantic:
Nodul Sphere definete o sfer cu raza predefinit la 1.0 m. Sphere are un singur
camp, radius, iar sfera afiat va avea centrul de greutate n centrul ecranului, n punctul cu
coordonatele (0,0,0).
Nodul Cone
Sintax:
Cone {
bottomRadius 1.0
height 2.0
side TRUE
bottom TRUE
}
Semantic:
Nodul Cone se folosete pentru definirea unui con i are 4 cmpuri:
132
Nodul Cylinder
Sintax:
Cylinder {
radius 1.0
height 2.0
side TRUE
bottom TRUE
top TRUE
}
Semantic:
Nodul Cylinder definete un cilindru, i are 5 cmpuri:
- radius i height definesc proporiile geometrice ale cilindrului. Valoarea lor
trebuie s fie mai mare de 0.0;
- side i bottom valori boolene, au aceeai funcie ca i n cazul nodului Cone;
- top valoare boolean, este TRUE dac se dorete afiarea cercului din partea de
sus a cilindrului (capacul lui), i FALSE, dac acesta e invizibil.
Nodul PointSet
Sintax:
PointSet {
color NULL
coord NULL
}
Semantic:
Nodul PointSet definete o mulime de puncte 3D din sistemul de coordonate local i
are 2 cmpuri:
- color reprezint un nod de tip Color, fiind un camp opional, cu valoarea
predefinit la culoarea neagr;
- coord reprezint un nod de tip Coordinate, coninnd un set de coordonate 3D.
Numrul componentelor din cmpul color trebuie s coincid cu numrul celor din coord.
Nodul IndexedLineSet
Sintax:
IndexedLineSet {
coord NULL
coordIndex [ ]
color NULL
colorIndex [ ]
colorPerVertex TRUE
133
}
Semantic:
Nodul IndexedLineSet definete o mulime de drepte din sistemul de coordinate local i
are 5 cmpuri:
- color i coord cu aceleai funcii ca i la PointSet;
- coordIndex conine o mulime de indeci de coordinate cu ajutorul crora se va
desena dreapta 3D. Indecii se separ cu ajutorul caracterului , un index cu
valoarea -1 reprezentnd fritul listei coordonatelor aparinnd dreptei curente.
- colorIndex are aceeai funcie ca i coordIndex, ns se refer la culorile aplicate
dreptelor.
- colorPerVertex camp Boolean prin intermediul cruia se definete modul de
aplicare al culorilor. Dac valoarea lui este TRUE, fiecare segment de linie poate
avea culoare diferit, astfel nct desenarea dreptei poate ncepe cu o culoare i se
poate termina cu alta. Dac valoarea cmpului e FALSE, fiecare dreapt are o
singur culoare.
Exemplu:
#VRML V2.0 utf8
IndexedLineSet {
coord 0 0 0 1 1 0 -1 0 0 -1 -1 0
coordIndex [3 0 2 1]
colorIndex [0 1 2 0 ]
colorPerVertex TRUE
}
134
135
textureTransform NULL
}
Semantic:
Nodul are 3 cmpuri opionale:
- material definete un nod de tipul Material, care specific culoarea corpului
VRML i modul n care acesta va reflecta lumina;
- texture va conine un nod de textur, de tipul ImageTexture, MovieTexture sau
PixelTexture;
- textureTransform conine un nod de tipul TextureTransform i definete modul
n care se aplic textura pe forma geometric;
Nodul Material
Cu ajutorul acestui nod se poate specifica culoarea, modul de reflecie i transparena
materialului aplicat unui corp geometric. Nodul se poate defini numai n interiorul unui nod
de tip Appearance.
Sintax:
Material {
diffuseColor 0.8 0.8 0.8
ambientIntensity 0.2
emissiveColor 0.0 0.0 0.0
specularColor 0.0 0.0 0.0
shininess 0.2
transparency 0.0
}
Semantic:
Nodul Material are 6 cmpuri:
- diffuseColor se folosete pentru definirea culorii aplicate. Cmpul este ignorat
dac se aplic i texturi pe corpul geometric;
- emissiveColor definete gradul de strlucire al suprafeei colorate;
- ambientIntensity determin volumul de lumin reflectat de ctre corpul
geometric;
- specularColor definete culoarea petelor lucioase de pe materialul corpului
geometric;
- shininess modereaz intensitatea cu care strlucesc petele lucioase de pe
suprafa, valori mici nsemnnd strlucire moderat, iar valori mari strlucire
intens;
- transparency este folosit pentru specificarea gradului de transparen al
materialului. Valoarea 0.0 semnific o suprafa complet opac, iar 1.0 o
suprafa total transparent.
Culorile n nodul Material se reprezint n mod caracteristic VRML, ca un triplet
RGB, cu valori reale cuprinse ntre 0.0 i 1.0.
136
Texturi
VRML 2.0 permite texturarea formelor geometrice cu ajutorul imaginilor, filmelor
sau imaginilor pixelate. Odat aleas, textura se va aplica tuturor feelor formei geometrice.
Se permite redimensionarea texturii alese, dar i repetarea ei pe orizontal, vertical sau
ambele sensuri astfel nct s acopere faa/feele corpului geometric. De asemenea exist i
posibilitatea de a transforma sau roti o textur cu ajutorul nodurilor TextureTransform i
TextureCoordinate.
Nodul ImageTexture
Permite setarea unei imagini JPEG, GIF sau PNG ca textur, cu ajutorul acestui nod
se poate stabili i modul n care se va aplica textura (dac se va repeta pe orizontal sau
vertical i cum se va aplica pe feele formei geometrice).
Sintax:
ImageTexture {
url [ ]
repeatS TRUE
repeatT TRUE
}
Semantic:
Nodul are urmtoarele cmpuri opionale:
- url specific locaia imaginii, se pot da i liste de locaii n care browserul s
caute imaginea;
- repeatS specific dac imaginea se va repeta pe vertical, cmpul poate lua
valori booelene;
- repeatT - specific dac imaginea se va repeta pe orizontal, cmpul poate lua
valori booelene;
Nodul TextureTransform
Acest nod permite efectuarea de operaii simple (scalri, transformri, rotaii sau
translaii) asupra coordonatelor texturii folosite. TextureTransform poate aprea numai n
interiorul unui nod Appearance.
Sintax:
TextureTransform {
scale 1 1
rotation 0
center 0 0
translation 0 0
}
137
headlight, VRML oferind posibilitatea de a folosi i alte tipuri de iluminri, i anume: lumina
direcionat (directional light), lumina punctiform (point light) i lumina de tip bec (spot
light).
Probleme ntmpinate n iluminarea unei scene VRML:
- reflecia luminii n realitate n momentul n care un obiect este iluminat acesta
reflect lumina n funcie de materialul din care este construit i de culoarea sa. n
lumea virtual VRML ns nu este cunoscut conceptual de lumin reflectat, ceea
ce nseamn c sunt vizibile numai obiectele care sunt illuminate n mod direct.
- atenuarea luminii VRML are aceast funcie prin intermediul cruia se
modeleaz efectul de scdere n intensitate a luminii odat cu creterea distanei
dintre obiectul iluminat i sursa de lumin (numai n cazul unei surse de lumin
punctiforme sau de tip bec).
- umbrele VRML nu permite modelarea efectului de umbr, deoarece ar crete
foarte mult complexitatea graficii create. Umbrele pot fi doar simulate,
manipulnd culoarea aplicat elementelor lumii virtuale.
- iluminarea unei suprafee plane - prezint probleme n cazul n care se dorete
iluminarea doar al unei pri din totalul suprafeei, ns aceste probleme se pot
rezolva dac suprafeele plane se definesc cu ajutorul unor noduri IndexedFaceSet
sau ElevationGrid, asftel nct ele s fie alctuite din mai multe sectoare, crenduse astfel suprafee gen mee.
- lumini colorate VRML ofer posibilitatea de a color alumina, trebuie ns s se
in cont de anumite reguli:
o n cazul n care se definesc culori pure (rou, verde sau albastru) obiectele
colorate astfel vor reflecta numai lumina de aceeai culoare;
o obiectele colorate cu culori pure iluminate cu lumin de alt culoare, vor
rmne n intuneric, nu vor reflecta lumina;
Se recomand deci folosirea culorilor mixte (amestecuri de rou, verde i albastru).
Nodul DirectionalLight
Sintax:
DirectionalLight {
on TRUE
intensity 1
ambientIntensity 0
color 0.4 1 0.0
direction 0 1 -1
}
Semantic:
Acest nod definete o surs de lumin aflat la o distan foarte mare de lumea
virtual creat, astfel nct razele de lumin care ajung la obiectele din acea lume sunt deja
paralele pe o anumit direcie. Lumina definit prin intermediul acestui nod are effect numai
asupra obiectelor definite n acelai grup cu nodul DirectionalLight. Cmpurile acestui nod
sunt:
- on camp boolean, determin dac lumina direcional e sau nu activ;
- intensity reprezint intensitatea luminii, poate avea valori ntre 0.0 i 1.0;
- ambientIntensity specific prin valoarea sa (ntre 0.0 i 1.0) msura n care
lumina direcional contribuie la iluminarea general a scenei 3D;
138
Nodul PointLight
Sintax:
PointLight {
on TRUE
intensity 0.8
ambientIntensity 0.2
color 1 1 0.1
location 0 0 0
attenuation 1 0 0
radius 80
}
Semantic:
Acest nod definete o surs de lumin aflat ntr-o locaie exact, din aceast locaie
razele de lumin se mprtie n toate direciile. Se ilumineaz toate corpurile care se afl n
calea de lumin, nu numai cele definite n acelai grup de obiecte cu nodul PointLight.
Intensitatea luminii se poate totui limita cu atributul radius, care specific raza sferei n
interiorul creia obiectele sunt iluminate de ctre sursa de lumin definit. Alte cmpuri ale
nodului PointLight:
- on - camp boolean, determin dac lumina punctiform e sau nu activ;
- intensity reprezint intensitatea luminii, cu valori ntre 0.0 i 1.0;
- ambientIntensity specific prin valoarea sa (ntre 0.0 i 1.0) msura n care
lumina direcional contribuie la iluminarea general a scenei 3D;
- color un cmp RGB care determin culoarea luminii;
- location specific un vector 3D care definete coordonatele sursei de lumin;
- attenuation vector 3D care specific modul n care lumina i va pierde din
intensitate odat cu creterea distanei de la surs;
Nodul SpotLight
Sintax:
SpotLight {
on TRUE
intensity 1
ambientIntensity 0.2
color 1 0.1 1
location 0 1 0
direction 0 0 0
attenuation 1 0 0
radius 80
cutOffAngle 0.78
beamWidth 0.78
}
Semantic:
139
Acest nod definete o surs de lumin aflat ntr-o locaie anume, cu direcia luminii
bine stabilit, astfel nct razele de lumin emise dintr-o astfel de surs s formeze un con de
lumin. Acest con este caracterizat de dou din cmpurile nodului, i anume:
- cutOffAngle definete unghiul pe care l formeaz generatorii conului, se
specific n radiani, valoarea sa trebuie s se ncadreze n intervalul 0-1,57 (0180);
- beamWidth definete unghiul unui con mai mic, n interiorul cruia lumina are o
intensitate constant;
140
Nodul Transform
Sintax:
Transform {
scale 1 1 1
scaleOrientation 0 0 1 0
center 0 0 0
rotation 0 0 1 0
translation 0 0 0
bboxCenter 0 0 0
bboxSize -1 -1 -1
children []
}
Semantic:
Nodul Transform permite definirea unui nou system de coordinate local pentru nodurile ce
fac parte din grup. Cu ajutorul su se pot efectua operaii de tip rotaie, scalare sau translaie,
acestea afectnd de asemenea toate nodurile coninute de grup. Cmpurile nodului Transform
sunt:
- children conine toate nodurile ce vor face din grup;
- scale se refer la o transformare de tipul scalare;
- scaleOrientation specific modul de rotaie al axelor sistemului de coordinate
pentru ca scalarea s se poat realize;
- center definete centrul operaiei de scalare;
- rotation definete o rotaie pe una din axe, are 4 valori, primele 3 se refer la
axele de coordinate X, Y, Z, iar cel de-al 4-lea unghiul rotaiei;
- translation definete o nou origine pentru sistemul de coordinate;
- bboxCenter i boxSize - cu semnificaia definit n nodul Anchor;
141
3.7.2. Senzori
Nodul TimeSensor
Sintax:
142
TimeSensor {
cycleInterval 1.0
enabled TRUE
loop FALSE
startTime 0
stopTime 0
}
Semantic:
Acest nod funcioneaz ca un cronometru care declaneaz unul sau mai multe
evenimente la anumite intervale de timp (crendu-se astfel efecte de animaie). Nodul are
urmtoarele cmpuri:
- enabled specific statutul senzorului (dac are valoarea TRUE senzorul e activ,
la valoarea FALSE senzorul este inactiv);
- startTime specific momentul n care senzorul ncepe generarea evenimentelor.
Valoarea cmpului este n secunde i reprezint numrul de secunde trecute de la
data 01.01.1970, ora 00:00;
- stopTime specific momentul n care senzorul va nceta generarea de
evenimente. Valoarea cmpului este n secunde i reprezint numrul de secunde
trecute de la data 01.01.1970, ora 00:00;
- cycleInterval specific intervalul de timp n carese vor genera evenimentele,
avnd valoarea msurat n secunde;
- loop specific dac n momentul n care expir numrul de secunde definite n
cmpul cycleInterval, TimeSensor va fi sau nu restartat;
Senzorul de timp funcioneaz astfel: n momentul n care de la crearea lumii virtuale
a trecut numrul de secunde specificat n cmpul startTime, TimeSensor ncepe msurarea
timpului alocat producerii evenimentelor. Se vor produce evenimente pn cnd numrul de
secunde contorizate va fi egal cu valoarea specificat n stopTime sau cu valoarea obinut
din suma valorii din startTime cu cea din cmpul cycleInterval.
n cazul n care este specificat o valoare valid n cmpul cycleInterval nodul
TimeSensor va genera un eveniment fraction_changed, ce va avea valori cuprinse ntre 0.0
i 1.0 (reprezentnd fraciunea de timp consumat din cycleInterval). Un alt eveniment
generat de ctre nodul TimeSensor este isActive. Acesta va avea valoarea TRUE ct timp
cronometrul msoar trecerea timpului i valoarea FALSE atunci cnd acesta nu mai
funcioneaz.
Nodul TouchSensor
Sintax:
TouchSensor {
enabled TRUE
}
Semantic:
Este un nod care asigur interactivitatea lumii VRML cu utilizatorul. De obicei nodul
este definit n cadrul unui grup de noduri, avnd efect asupra tuturor nodurilor definite n
cadrul grupului. Acest senzor este activat n momentul n care pointerul mouse-ului este
poziionat asupra unui obiect din cadrul grupului i utilizatorul efectueaz un click asupra
acelui obiect.
143
Nodul TouchSensor are un singur cmp, i anume enabled, care specific statutul
senzorului.
Evenimente generate de TouchSensor:
- isOver este un eveniment generat cu valoarea TRUE atunci cnd cmpul
enabled are valoarea TRUE i cursorul mouse-ului este mutat deasupra unui
obiect din grup. Evenimentul se genereaz cu valoarea FALSE dac senzorul e
activ (adic enabled e TRUE) i cursorul mouse-ului nu se oprete deasupra
niciunui obiect din grup. Evenimentul isOver se genereaz numai n cazul
obiectelor vizibile pentru utilizator.
- evenimente care apar la micarea cursorului poziionat pe un obiect din grup:
o hitPoint_changed returneaz poziia exact a obiectului n cadrul
grupului de obiecte;
o hitNormal_changed returneaz normala la suprafa, folosind
coordonatele 3D stabilite prin evenimentul hitPoint_changed;
o hitTextCoord_changed returneaz valorile textCoord referitoare
la suprafa;
- isActive este un eveniment generat n momentul n care senzorul este activ i se
realizeaz un click asupra unui obiect (valoarea alocat evenimentului va fi
TRUE). n momentul n care mouse-ul nu mai este apsat isActive ia valoarea
FALSE i se genereaz un eveniment touchTime care memoreaz momentul
nregistrrii click-ului.
Nodul VisibilitySensor
Sintax:
VisibilitySensor {
enabled TRUE
center 0 0 0
size 0 0 0
}
Semantic:
Acest nod poate fi folosit pentru a detecta modificrile aduse n vizibilitatea
obiectelor VRML, rspunznd cu anumite evenimente la aceste modificri de vizibilitate.
Rolul su ns nu este acela de a stabili dac un anumit obiect este sau nu vizibil, senzorul
reacioneaz doar la modificrile aduse lumii VRML.
VisibilitySensor are urmtoarele cmpuri:
- center reprezint punctul central al unui cub virtual care cuprinde n interiorul
su obiectele urmrite de ctre senzor;
- size reprezint mrimea laturii cubului;
- enabled specific statutul senzorului, valorile sale sunt booleene;
Evenimente generate de ctre VisibilitySensor:
- enterTime reine momentul n care obiectele din interiorul cubului devin
vizibile;
- exitTime - reine momentul n care obiectele din interiorul cubului devin invizibile
utilizatorului;
- isActive ia valoarea TRUE atunci cnd obiectele din interiorul cubului devin
vizibile i FALSE cnd acestea devin invizibile;
144
Senzori de micare
Aceti senzori detecteaz micarea obiectelor declanat de ctre utilizatori, ns pe
lng aceast detecie senzorii au posibilitatea de a schimba poziia unui obiect definit n
acelai grup de noduri ca i senzorul. n VRML sunt definite 3 tipuri de senzori de micare:
senzor de plan (Plane Sensor) permite deplasarea obiectelor n sistemul de
coordonate XY;
senzor cilindric (Cylinder Sensor) permite deplasarea obiectelor pe
suprafaa unui cilindru virtual;
senzor sferic (Sphere Sensor) - permite deplasarea obiectelor pe suprafaa
unei sfere virtuale;
Cmpurile partajate de ctre aceste noduri sunt:
- enabled specific statutul senzorului (valoarea TRUE semnific senzor
activ, iar valoarea FALSE un senzor inactiv);
- offset memoreaz poziia iniial a obiectelor a cror poziie va fi
modificat. Cmpul conine valori ntregi, o valoare 0 ar nsemna c
obiectele sunt n poziia lor iniial, o valoare mai mare dect 0 nseamn
c deplasarea obiectelor va ncepe din poziia offset+valoare. Valoarea
alocat cmpului va fi ignorat dac n cmpul autoOffset se regsete
valoarea TRUE;
- autoOffset specific browserului dac deplasarea obiectelor se va realize
relativ la poziia lor iniial (i atunci autoOffset are valoarea TRUE) sau
relativ la poziia lor iniial, specificat n cmpul offset (n cazul n care
autoOffset are valoarea FALSE);
Evenimentele generate de ctre senzorii de micare:
- isActive indic faptul c o operaie de deplasare al unui obiect este n
curs (cmpul ia valori booleene);
- trackPoint_changed returneaz coordonatele actuale rezultate n urma
deplasrii obiectului;
- rotation_changed apare n definiia nodurilor SphereSensor i
CylinderSensor i returneaz rotaia realizat n timpul deplasrii
obiectului;
- translation_changed returneaz translaia realizat pentru deplasarea
obiectelor;
Nodul PlaneSensor
Sintax:
PlaneSensor {
enabled TRUE
offset 0 0 0
autoOffset TRUE
maxPosition 1 1
minPosition 0 0
}
Semantic:
145
Nodul SphereSensor
Sintax:
SphereSensor {
enabled TRUE
offset 0 1 0 0
autoOffset TRUE
}
Este folosit pentru a realiza micarea obiectelor pe suprafaa unei sfere imaginare
(deci n jurul centrului sistemului de coordonate local).
Nodul CylinderSensor
Sintax:
PlaneSensor {
enabled TRUE
offset 0
autoOffset TRUE
maxAngle -1
minAngle 0
diskAngle 0.262
}
Semantic:
Este folosit pentru a realize micarea obiectelor pe suprafaa unui cilindru imaginar
(adic n jurul axei Y al sistemului de coordinate local, limitnd micarea la un anumir unghi
dat).
Cmpurile nodului CylinderSensor sunt:
- offset cu aceeai semnificaie ca i n cazul celorlalte noduri de micare, ns
micarea se realizeaz relativ la valoarea de pe axa X;
- maxAngle specific rotaia maxim ce poate fi realizat;
- minAngle- specific rotaia minim;
Dac valoarea specificat n maxAngle este mai mic dect cea din minAngle, atunci
rotaia care se realizeaz nu este limitat (unghiul poate fi i de 360 de grade).
146
147
range []
}
Semantic:
Nodul LOD permite ca un obiect VRML s fie reprezentat n mai multe versiuni la
care difer doar gradul de reprezentare ale detaliilor acelui obiect, n funcie de distana la
care acesta se afl de utilizator.
Nodul LOD are urmtoarele cmpuri:
- level reprezint multimea de reprezentri posibile ale obiectului VRML;
- center conine coordonatele unui punct 3D n funcie de care se va calcula
distana fa de obiectul reprezentat;
- range cuprinde o mulime de valori reale ce reprezint distanele fap de obiect,
n ordine cresctoare; valorile trebuie s fie mai mari sau egale dect 0.
149
Nodul ColorInterpolator
Este un nod de interpolare care n cmpul keyValue conine o list de valori RGB i
care are ca efect modificarea culorii obiectului VRML asupra cruia se aplic.
Sintax:
ColorInterpolator {
key [ ]
keyValue[ ]
}
Nodul CoordinateInterpolator
Este un nod de interpolare care n cmpul keyValue conine o list de coordonate 3D
i care are ca efect un control deplin asupra punctelor ce definesc orice obiect VRML, crend
senzaia de metamorfoz al acelui obiect.
Sintax:
CoordinateInterpolator {
key [ ]
keyValue[ ]
}
Nodul NormalInterpolator
Este un nod de interpolare care n cmpul keyValue conine o list de vectori 3D i
permite utilizatorului s modifice normalele definite n cadrul unui nod Normal.
Sintax:
NormalInterpolator {
key [ ]
keyValue [ ]
}
Nodul OrientationInterpolator
Este un nod de interpolare care n cmpul keyValue conine o list de parametri de
rotaie 3D (un set de coordonate 3D i un unghi de rotaie). Este folosit pentru crearea de
animaii prin rotaia obiectelor VRML asupra crora se aplic.
Sintax:
OrientationInterpolator {
key [ ]
keyValue[ ]
}
Nodul PositionInterpolator
Este un nod de interpolare care n cmpul keyValue conine o list de coordonate 3D
i care are ca efect animaia obiectelor VRML asupra crora se aplic prin deplasarea lor pe
ruta definit n keyValue.
Sintax:
PositionInterpolator {
key [ ]
keyValue[ ]
150
}
Nodul ScalarInterpolator
Este un nod de interpolare care n cmpul keyValue conine o list de valori reale
folosite pentru modificarea oricrui cmp expus cu valori reale (de exemplu: viteza cu care se
red un film sau sunet dac se modific valoarea cmpului speed).
Sintax:
ScalarInterpolator {
key [ ]
keyValue[ ]
}
VII.
Folosind doar posibilitile oferite de ctre limbajul n sine, VRML s-a dovedit a fi
suficient de flexibil pentru a asigura interactivitatea lumii virtuale cu utilizatorul. Principalele
instrumente pe care VRML le asigur n acest scop sunt reprezentate de ctre gestionarea i
rutarea evenimentelor (events i routes), respectiv de ctre multitudinea de senzori VRML
(de micare, de coliziune, etc.). Totui, acestea ofer doar o interaciune limitat a lumii
virtuale cu utilizatorul ei.
Nodul Script vine n corectarea acestor neajunsuri, adugnd flexibilitate lumii
virtuale prin implementarea posibilitii de a aduga elemente comportamentale lumii 3D cu
ajutorul unor limbaje de programare, cum ar fi Java, JavaScript sau VRMLScript. Prin
intermediul nodului Script se pot genera evenimente multiple, se poate specifica un
comportament specific la apelarea fiecrui eveniment n parte i de asemenea se pot specifica
proceduri de iniializare, respectiv de distrugere a lumii VRML. Nodul Script este unul
special, deoarece permite definirea evenimentelor recepionate (ale cror valori se salveaz n
variabilele eventIn) i a evenimentelor proprii generate. La fel ca i orice alt nod i nodul
Script este format din cmpuri care funcioneaz ca nite variabile locale, numite persistente.
Nu exist cmpuri expuse n nodul Script, el ear putea fi create numai dac pe lng definirea
cmpului se vor defini i evenimentele eventIn, respectiv eventOut corespunztoare. Se
permite ns definirea unui numr nelimitat de cmpuri.
Exemplu de definiie de cmp expus:
field myField
eventIn set_myField
eventOut myField_changed
Nodul Script are urmtoarele cmpuri:
- url specific locaia scriptului care va fi executat (acesta poate fi scris n
limbaj Java, JavaScript sau VRMLScript);
- directOutput este un cmp Boolean care specific modul n care scriptul
va modifica lumea virtual: cu ajutorul unui eventOut, rutnd evenimentul
la un alt nod (ceea ce nseamn c evenimentul creat de ctre script va fi
folosit n acea rutare, situaie n care directOutput este FALSE) sau prin
accesarea direct a cmpurilor unui anumit nod (printr-o simpl atribuire,
situaie n care directOutput este TRUE);
151
152
Tip de dat n
Corespondent n Javascript
VRML
Descriere
SFBool
boolean
SFColor
MFColor
SFFloat
float
MFFloat
float array
SFImage
SFInt32
MFInt32
SFNode
MFNode
SFRotation
MFRotation
SFString
MFString
SFTime
MFTime
SFVec2f
MFVec2f
SFVec3f
MFVec3f
Single Boolean
Field
Single Color Field
Multiple Color
Field
Single Float Field
Multiple Float
Field
153
154
155
url "javascript:
function initialize () {
// se printeaza campul Diffusecolor din Sphere
// accesul la campul dorit se face secvential, folosind .
// pentru a se accesa campurile nodului Sphere
print(Sphere.appearance.material.diffuseColor);
}
"
}
Rezultatul
rulrii
acestui
cod
const
afiarea
unei
sfere
de
156
Concluzii
Limbajul VRML este unul destul de complex din punctul de vedere al posibilitilor
de creare de animaie oferite programatorilor. n momentul apariiei sale a cunoscut o
dezvoltare rapid, creia s-a datorat un grad mare de utilizare al acestui limbaj, n principal n
domeniul bio-chimiei i n lumea medical. ns ascendena tehnologiei VRML s-a oprit
brusc, principalul motiv fiind lipsa finanrii, iar mai apoi apariia unor tehnologii de
animaie mai performante ca vitez i mai puin costisitoare ca timp de execuie sau memorie
folosit pentru procesare. Din aceast cauz, la ora actual, VRML este folosit doar n
scopuri educative, ca introducere n nvarea tehnologiilor moderne, nelegerea
mecanismului de funcionare al limbajului garantnd o mai bun pricepere al noilor
tehnologii.
VRML are cteva caracteristici demne de menionat:
- ofer suport pentru orice fel de animaie, ncepnd de la suprafeele simple pn la
creare unor scene complexe din punctul de vedere al texturii, micrii i iluminrii
folosite;
- folosete anumite elemente ale programrii orientate pe obiecte, cum ar fi:
o folosirea entitilor tip nod (asemntoare claselor din programarea obiectorientat);
o posibilitatea de a creea o ierarhie de noduri, nodurile subordonate
motenind anumite caracteristici ale nodurilor tat;
o posibilitatea de a redefini comportamentul unor noduri deja create;
o posibilitatea de a refolosi comportamentul predefinit sau pe cel modificat
(perechea DEF/USE);
- ilustreaz foarte bine modul de iluminare al unei scene de animaie 3D, modalitatea
VRML de a se folosi de diferitele tipuri de iluminare fiind preluate i de alte
tehnologii de creare de animaie;
- ofer programatorului control total asupra lumii create: codul este lizibil i structurat
ntr-o manier care-l face uor de interpretat i modificat.
157
BIBLIOGRAFIE
1. JAVA, aplicaii , L.Sngeorzan, C-tin Lucian Aldea, Mihai R. Dumitru, Ed.
Infomarket, Braov, 2001, ISBN 973-8204-14-3.
2. HTML prin exemple, Tudor Gugoiu, Ed. Teora, 2001, ISBN 973 20 0455 X
3. Tehnologii WEB, Sabin Corneliu Buraga, Matrix Rom, Bucuresti 2001,nr. Pg. 662,
ISBN 973 685 28
4. BASIC COMPUTER SCIENCE and ENGLISH for CHEMESTRY TEACHERS,
L.Sngeorzan , Oana Tatu, Editura Univ. Transilvania, 2002, ISBN : 973-635-066-5.
5. Web Resources for Teaching and Studying English; An Introduction to HTML 4.0,
L.Sngeorzan, Oana Tatu, Adrian Tatu, Commenius Programme, 87160-CP-1_2000-1RO.COMENIUS C31, Ed. Univ.Transilvania,2003 , ISBN 973-635-208-0
6. Optimizarea paginilor WEB, Calin Ioan Acu , Ed.Polirim, 2003.
7. Initiere in Design, Robin Williams, Ed. Corint, 2003
8. Tehnologii internet, L.Sngeorzan, C-tin Lucian Aldea, Ed. Univ. Transilvania, 2003,
ISBN 973-635-176-9.
9. Design pentru WEB, Robin Williams, Ed. Corint, 2003, ISBN 973 653 421 9.
10. Grafic pe calculator :JAVA - teorie i aplicaii `, L.Sngeorzan, Jakab Kinga,, Ed.
Univ Transilvania, 2006, ISBN 973-635-713-9, ISBN 978-973-535-713-8
11. Crearea si programarea paginilor WEB, Tudor Sorin, Vlad Hutanu, ed. L&S SOFT,
2006, ISBN 973 86022 2 X.
158
CUPRINS
I. Consideraii generale privind Internet i World Wide Web .................................................. 2
Browsere WEB ..................................................................................................................... 3
Primii pai ctre construcia unui site ................................................................................... 4
II. Principii de baz n design ................................................................................................... 6
Alinierea................................................................................................................................ 6
Proximitatea .......................................................................................................................... 8
Repetiia .............................................................................................................................. 10
Contrastul............................................................................................................................ 11
III. HTML (Hyper Text Markup Language)........................................................................... 14
Crearea unui document HTML........................................................................................... 15
TAG-uri HTML .................................................................................................................. 16
Tag-uri din cadrul documentului HTML ........................................................................ 17
Culori, fonturi, margini ................................................................................................... 17
Tagul font (configurarea font-urilor) .............................................................................. 27
Tagul <table> (tabele)..................................................................................................... 36
Tagul <img> (imagini).................................................................................................... 43
Legaturi (link-uri) ........................................................................................................... 47
Formulare........................................................................................................................ 51
Evenimentele onfocus i onblur............................................................................... 56
Hri de imagini .............................................................................................................. 57
IV. Reguli CSS (Foi de stil n cascad) .................................................................................. 59
Structura unei reguli CSS.................................................................................................... 59
Integrarea regulilor CSS ntr-un fiier HTML ................................................................ 59
Class ca selector.............................................................................................................. 60
ID ca selector .................................................................................................................. 61
Sintaxa pentru definirea unui element ID este urmtoarea:............................................ 61
Comentarii....................................................................................................................... 61
Pseudo-clase i pseudo-elemente.................................................................................... 61
Pseudo-clasa anchor........................................................................................................ 61
Pseudo-elemente ............................................................................................................. 61
Precedena regulilor ........................................................................................................ 62
Stiluri in-line ............................................................................................................... 62
Stiluri definite n fiiere externe ......................................................................................... 62
Atribute CSS ................................................................................................................... 63
Font ............................................................................................................................. 63
Background i culoare................................................................................................. 64
Text ............................................................................................................................. 64
Distana dintre rnduri ................................................................................................ 64
Stiluri pentru diferite medii............................................................................................. 64
Configurarea blocurilor de text....................................................................................... 65
Limea chenarului...................................................................................................... 66
Exemplificm utilizarea regulilor CSS ............................................................................... 67
V. JavaScript ........................................................................................................................... 79
Carateristici ale limbajului JavaScript ................................................................................ 80
a. Limbajul JavaScript .................................................................................................... 82
159
160