|    p r 0 t 0 s c r i p t    |
Aby korzystać z edytora ps proted [aplet obok] znajomość skryptu ps nie jest konieczna, wystarczy sama wiedza na temat rodzaju i właściwości obiektów oraz akcji. |
| * |
... jest programem (napisanym w javie) pozwalającym na edycje, generowanie i interpretowanie ps.
Po każdorazowym naciśnięciu przycisku oznaczonego napisem "run proted" tworzone są trzy okna:
- protoscript applet - po naciśnięciu przycisku "refresh" w tym oknie pojawia się skrypt ps ruwnoznaczny z "zawartością edytora" wraz otaczającymi tagami <applet ...><param ...> i </aplet>. Po naciśnięciu przycisku "interprete" zawartość tego okna jest interpretowana jako ps i przekazywana "do edytora".
- main w tym oknie można tworzyć (New), kasować (Delete), przenosić do "najwyższej warstwy" (to Top) lub do "najniższej warstwy" (to Bottom) (lub o jedną warstwę do gury (higger) lub do dołu (lower)) obiekty. Można też określać/modyfikować ich wszystkie cechy (patrz opis obiektu).
Przełonczanie "edytownaych" obiektów realizowane przez przyciski Next, Prev oraz pole tekstowe znajdujące się między nimi.
Prawa część okna (oprucz najwyszej "linijki") przeznaczona jest dla akcji. Możliwe są podobne operacje jak dla obiektów tzn aNew, aDelete, aNext, aPrev oraz określanie/modyfikowanie cech akcji.
Edytor każdą akcje wiąże z obiektem lecz podczas wykonywania skryptu akcja odnosi się do obiektu z którym jest związane w edytorze tylko gdy nie ma zdefiniowanej cechy powinowactwo do obiektów. Działanie wszystkich akcji można obserwować po naciśnieciu klawisza [play] (odpowiada to interpretacji skryptu ps przez interpreter ps).
UWAGA: w aktualnej wersji edytora niewszystkie pola edycyjne są oznaczone.
Pole zbnajdujące się na lewo od przycisku Next odpowiada cesze nazwa obietu.- workplace - tutaj wizualizowany są wszytskie obiektu. Można tu też określić położenie i rozmiar aktualnie "edytowanego" obiektu - poprzez "przeciągnięcie" kursora myszki nad wybranym obszarem.
Określanie wyglądu obiektów lines i shape możne przebiegać na dwa sposoby:
odręczny - poprzez "przeciągnięcie" kursora myszki (z przycisniętym tylko lewym klawiszem) krokowy - (linia po linii) poprzez naciśnięcie i trymanie prawego klawisza myszki oraz jednoczesnego naciskania lewego w wybranych miejscach. Edycje krokową kończymy przez zwolnienie prawego klawisza myszki.
| * |
- ogólnie
- Obiekt ma pewne cechy takie jak np. położenie czy rozmiar.
- Obiekty wyświetalane są na ekranie w ustalonej kolejnośći. Obiekty zdefiniowane wcześniej są przysłaniane przez obiekty zdefiniowane pużniej.
- Akcje zmieniają cechy obiektów powodując w ten sposów ich poruszanie się, zmianę barwy lub rozmiaru.
- Akcje mogą wywoływać i zatrzymywać kanały czasowe, mogą też powodować skoki do innych stron www.
- Akcje mają dokładnie określony czas rozpoczęcia i czas końca.
- Akcje wykonują się w obrębie numerowanych kanałów czasowych.
- Każdy kanał czasowy ma niezależny licznik, wartość jego zmienia się wraz z upływem czasu.
- Akcja jest wtedy rozpoczynana gdy warość czas rozpoczęcia akcji (cecha akcji), jest równa aktualnej wartości licznika kanału czasowego do którego należy akcja.
- Akcja jest wtedy kończona gdy warość czas zakończenia akcji (cecha akcji), jest równa aktualnej wartości licznika kanału czasowego do którego należy akcja.
- Gdy w danym kanale czasoweym nie ma następnej akcji [zokończono wykonywanie wszystkich akcji w obrębie danego kanału czasowego], licznik tego kanału czasowego jest zerowany i wykonywanie akcji tego kanału rozpoczyna się od początku.
- Na początku interpretowania skryptu kanał czasowy numer 0 jest automatycznie wykonywany.
- obiekt - cechy:(nazwa, typ, położenie, rozmiar, grubość, kolory, reakcja na interakcje urzytkownika, [cechy dodatkowe[additional], treść napisu/ciągu linii/url grafiki, krój czcionki])
- nazwa - wieloczłonowa (każdy człon oddzielony spacja) nazwa obiektu, wykorzystywana do kojarzenia akcji z obiektami (parz opis akcji) [cecha jednoparametrowa - łańcuch znaków]
- typ możliwe wartości ( vector, line, roundRect, fillRound, oval, fillOval, arc, fillArc, lines, shape, image, text)
- vector - linia [poddana akcji przesuwanania przesuwa się cała]
- line - linia [poddana akcji przesuwania przesuwa tylko punkt początkowy, punkt końcowy nie przemieszcza się tylko podczas akcji zmiany rozmiarów]
- roundRect - prostokąt ["dążący do elipsy"], o stopniu zaokrąglenia boków prostokąta w pionie i w poziomie decydują cechy dodatkowe obiektu (, których standardową warotścioą jest 0,0 - bez zaokrągleń)
- fillRound - wypełniony kolorem obiektu 'roundRect'
- oval - elipsa
- fillOval - wypełniony kolorem obiektu 'oval'
- arc - wycinek okręgu [łuk], wartość pierwszej cechy dodatkowej interpretowana jest jako kąt początkowy wyrażony w stopniach, wartość drugiej cechy dodatkowej interpretowana jest jako długość kątowa łuku wyrażonona w stopniach
- fillArc - wypełniony kolorem obiektu 'fillArc'
- lines - ciąg połączonych linii [opisujący ciąg liczb zapisany w cesze treść napisu/ciągu linii/url grafiki obiektu]
- shape - wypełniony kolorem obiektu 'lines'
- image - obraz (mapa bitowa - rozpoznawane formaty *.gif i *.jpg) url pobierany z cechy treść napisu/ciągu linii/url grafiki obiektu
- text - łańcuch znaków treść cecha treść napisu/ciągu linii/url grafiki, wielkość czcionki opisuje pierwszy parametr dodatkowy, styl czcionki opisuje nazwa kroju pisma i parametry bold/italic
- położenie - położenie obiektu względem lewegu górnego rogu obszaru roboczego wyrażone w pixelach [cecha dwuparametrowa]
- rozmiar - rozmiar obiektu wyrażony w pixelach [cecha dwuparametrowa]
- grubość - grubość (pionowa i pozioma) obiektu wyrażona w pixelach [cecha dwuparametrowa]
- kolor - wartośc poszczegulnych składowych rgb w skali 0-255 [cecha trójparametrowa]
- reakcja na interakcje urzytkownika - numery kanałów czasowych które zostaną uruchomione w przypadku "wejścia" i "zejścia" kursora myszki na/z obiekt, naciśniecia przycisku myszki, zwolnienia przycisku myszki [cecha czteroparamewtrowa]
- cechy dodatkowe [additional] - dodatkowe cechy obiektu brane pod uwagę przy wyświetlaniu obiektów takich jak arc lub roundRect [cecha dwuparametrowa]
- treść napisu/ciągu linii/url grafiki - treść napisu, ciąg wartości opisujący ciąg linni, url grafiki [cecha jednoparametrowa - łańcuch znaków]
- krój czcionki - nazwa kroju czcionki, parametry bold i italic [cecha trujparametrowa rozdzielana na cechę - łańcuch znaków nazwa czcionki oraz dwie cechy dwustanowe italic i bold]
- akcja - cechy:(powinowactwo do obiektów, numer kanału czasowego, czas rozpoczęcia, czas zakończenia, typ, parametry, dodatkowe parametry)
- powinowactwo do obiektów - wieloczłonowe (każdy człon oddzielony spacja) określenie powiązania danej akcji z obiektami. Jeśli przyjmiemy, iż cecha nazwa danego obiektu składa się z następujących członów:"o1 o2 o3 ... non" a cecha powinowactwo do obiektów ackcji z następujących: "a1 a2 a3 ... am" to akcja będzie wykonywana na danym obiekcie jeśli istnieje dowolne oz [z(1,n)] równe dowolnemu ax [x(1,m)] (patrz przykład) [cecha jednoparametrowa - łańcuch znaków]
- numer kanału czasowego - numer kanału czasowego w ramach którego wykonywana będzie dana akcja [cecha jednoparametrowa]
- czas rozpoczęcia - gdy wewnętrzyny licznik kanału czasowego danej akcji jest równy tej wartości akcja zaczyna być wykonywana [cecha jednoparametrowa]
- czas zakończenia - gdy wewnętrzyny licznik kanału czasowego danej akcji jest równy tej wykonywanie akcja jest kończone [cecha jednoparametrowa]
- typ - możliwe wartości (move, resize, rotate, addchng, random, thickness, color, [sound], [aCstart], [aCstop], [url])
- move - liniowa zmiana cechy położenie obiektu
- resize - liniowa zmiana cechy rozmiar obiektu
- rotate - obrót położenia obiektu wokół punktu, współrzędne punktu wokół którego ma się odbyć obrut określane przez cechę parametry akcji, kąt o jaki położenie obiektu ma być obrócone określany przez pierwszą wartość cechy parametry dodatkowe akcji
- addchng - liniowa zmiana cech dodatkowych obiektu
- random - przypadkowe zmiany położenia obiektu w czasie, maksymalna wartość o jaką może się zmienić położenie obiektu w czasie gdy licznik czasu kanału czasowego tej akcji zwiększy swą warotść o jeden określane przez pierwszą wartość cechy parametry akcji
- thickness - liniowa zmiana cechy grubość obiektu
- color - liniowa zmiana cechy kolor obiektu, zmiany poszczegulnych (czerwona, zielona, niebieska) składowych określone odpowiednio przez pierwszą i drugą wartość cechy parametry akcji oraz pierwszą wartość cechy dodatkowe parametry
- [sound] - rozpoczęcie odtwarzania zewnętrznego pliku dzwiękowego (formatu *.au), url pliku pobierany jest z cechy powinowactwo do obiektów akcji
- [aCstart] - rozpoczęcie wykonywania akcji kanału czasowego, którego numer jest określony przez pierwszą wartość cechy parametry akcji
- [aCstop] - zakończenie wykonywania akcji kanału czasowego, którego numer jest określony przez pierwszą wartość cechy parametry akcji
- [url] - zmiana aktualnej strony przeglądarki, której url określany jest przez cechę powinowactwo do obiektów akcji
- parametry - wartości o jakie ma się zmienić cecha obiektu zmieniana przez akcję [wartość dwuparametrowa]
- dodatkowe parametry - dodatkowe cechy akcji brane pod uwagę przy dokonywaniu akcji takich jak 'colors' lub 'rotate' [wartość dwuparametrowa]
| * |
- ogólnie
- Treść skryptu przekazywana jest jako warośc parametru pscode do interpretera ps (psji[x].class) (gdzie [x] - numer wersji).
- Obiekt definiuje się tagiem <pso [pararametry - określenie cech] >.
- Akcje definiuje się tagiem <act [pararametry - określenie cech] >.
- Paramety akcji i obiektów - określenie cech definiuje się w "ciele" tagów <pso > i <act > - [nazwa cechy]=wartość cechy
- Wartości cech - łańcuchów znakowych [takich jak nazwa, treść napisu/ciągu linii/url grafiki, nazwa czcionki obiektu i powinowactwo do obiektów akcji] musi być poprzedzona i zakończona znakiem #.
- Cechy typ obiektu i typ akcji nie są traktowane jako cechy - łańcuchy znakowe.
- Gdy cecha [lub jedna z jest składowych wartości] nie jest określona [nie jest przypisana jej wartość] interpreter przyjmuje za jej wartość 0 [wyjątki: dla trzech wartości cechy reakcja na interakcje urzytkownika obiektu przyjmowana jest wartość -1, dla cech - łańcuchów znakowych przyjmowany jest łańcuch pusty].
Edytor proted korzysta z tych własności "optymalizując" generowany kod poprzez nie określanie w skrypcie wynikowym cech mających wartość 0 [lub -1 dla trzech wartości cechy reakcja na interakcje urzytkownika i łańcucha pustego znakowego dla cech - łańcuchów znakowych]- Gdy akcja nie ma określonej cechy powinowactwo do obiektów - jest powiązywana z obiektem, którego definicja znajduje się przed definicją tej akcji. (Akcja znajduje się "w ciele" definicji obiektu)
- <pso tp=[.] na=#[.]# mo=[.] mu=[.] md=[.] px=[.] py=[.] sx=[.] sy=[.] tx=[.] ty=[.] a1=[.] a2=[.] cr=[.] cg=[.] cb=[.] fn=#[.]# co=#[.]# bo=[.] it=[.] >
- tp - nazwa typu (rodzaju) obiektu (określa cechę typ)
- na - wieloczłonowa nazwa obiektu (określa cechę nazwa) (wartość - łańcuch znaków poprzedzony i zakończony znakiem #)
- mi - numer kanału czasowego uruchamianego w wyniku "wkroczenia" wskażnika myszki na obiektem (określa pierwszą warotść cechy reakcja na interakcje urzytkownika)
- mo - numer kanału czasowego uruchamianego w wyniku "zejścia" wskażnika myszki z obiektu (określa drugą warotść cechy reakcja na interakcje urzytkownika)
- mu - numer kanału czasowego uruchamianego w wyniku puszczenia przysisku myszki gdy wskaznik myszki znajduje się nad obiektem (określa trzecią warotść cechy reakcja na interakcje urzytkownika)
- md - numer kanału czasowego uruchamianego w wyniku naciśnięcia przysisku myszki gdy wskaznik myszki znajduje się nad obiektem (określa czwartą warotść cechy reakcja na interakcje urzytkownika)
- px - pozycja pozioma obiektu (określa pierwszą wartość cechy pozycja)
- py - pozycja pionowa obiektu (określa drugą wartość cechy pozycja)
- sx - rozmiar poziomy obiektu (określa pierwszą wartość cechy rozmiar)
- sy - rozmiar pionowy obiektu (określa drugą wartość cechy rozmiar)
- tx - grubość pozioma obiektu (określa pierwszą wartość cechy grubość)
- ty - grubość pionowa obiektu (określa drugą wartość cechy grubość)
- a1 - określa pierwszą wartość cechy dodatkowe obiektu
- a2 - określa drugą wartość cechy dodatkowe obiektu
- cr - składowa zielona koloru obiektu (określa pierwszą wartość cechy kolor)
- cg - składowa czerwona koloru obiektu (określa drugą wartość cechy kolor)
- cb - składowa niebieska koloru obiektu (określa trzecią wartość cechy kolor)
- fn - nazwa czcionki (określa wartość cechy nazwa czcionki) (wartość - łańcuch znaków poprzedzony i zakończony znakiem #)
- co - treść napisu/ciągu linii/url grafki (określa warość cechy treść napisu/ciągu linii/url grafiki)
(ciąg linii jest koreślany jako ciąg par liczb oddzielonych znakami : (: - między dwoma liczbami w parze) i ; (; - między parami) każda n-para określa długość i szerokość linii - tym samym początek n+1 linii względem początku n tej linii. Początkiek pierwszej linii określany jest przez cechę położenie obiektu. (wartość - łańcuch znaków poprzedzony i zakończony znakiem #)- bo - dwustanowa cecha określająca włonczenie/wyłonczenie stylu bold przy wykreślaniu napisu (gdy ma wartość true (bo=true) styl bold jest włonczony, gdy ma wartość false (bo=false) styl bold jest wyłonczony)
- it - dwustanowa cecha określająca włonczenie/wyłonczenie stylu italic przy wykreślaniu napisu (gdy ma wartość true (it=true) styl italic jest włonczony, gdy ma wartość false (it=false) styl italic jest wyłonczony)
- <act tp=[.] na=#[.]# ch=[.] be=[.] en=[.] px=[.] py=[.] a1=[.] a2=[.] >
- tp - typ (rodzaj) akcji (określa cechę typ akcji)
- ch - kanał czasowy akcji (okeśla cechę numer kanału czasowego)
- na - powinowactwo do obiektów (okeśla cechę powinowactwo do obiektów) (wartość - łańcuch znaków poprzedzony i zakończony znakiem #)
- be - czas rozpoczęcia akcji (okeśla cechę czas rozpoczęcia)
- en - czas zakończenia akcji (okeśla cechę czas zakończenia)
- px - okeśla pierwszą wartość cechy parametry
- py - okeśla drugą wartość cechy parametry
- a1 - okeśla pierwszą wartość cechy dodatkowe parametry
- a2 - okeśla drugą wartość cechy dodatkowe parametry
|
/ | \ \ | / /-- | --\ / /-----\ \ / /           \ \ /\_/ / /-----\ \ \_/\ /        | | \ / | |        \  <   <---| | X | |---->   >  \   _  | | / \ | |  _   / \/ \ \ \-----/ / / \/ \ \           / / \ \-----/ / \__ | __/ / | \ \ | / \_/ [leminimale] |