background image

Projektowanie Grafiki (2003) 

29 

Uruchamianie zewnętrznych aplikacji - Open  
 

on

 exitFrame

 me

 

  open

 "doc/test.avi"

 with

 "players/VPlayer"

 

end 

 
Funkcja nie jest dostępna dla: 

− 

trybu Shockwave  

− 

dokumentu projektora przy włączonym trybie bezpiecznym safePlayer=TRUE 

 
 
Pobieranie dokumentów 

 
downloadNetThing 

  downloadNetThing URL

, localFile 

np.

 

  downLoadNetThing

(

"http://www.cos.pl/cos.cst"

,

 the

 applicationPath

&

"cos.cst"

)

 

  castLib

(

"Cast Cos"

).

fileName

 =

 the

 applicationPath

&

"cos.cst" 

 

importFileInto 

importFileInto member

 whichCastMember,

 fileName

 {, [

#dither

: TrueOrFalse,

 #trimWhiteSpace

TrueOrFalse]}

 

importFileInto member

 whichCastMember

 of

 castLib

 whichCast,

 fileName

 {, [

#dither

: TrueOrFalse,

 

#trimWhiteSpace

: TrueOrFalse]}

 

importFileInto member

 whichCastMember,

 URL

 {, [

#dither

: TrueOrFalse,

 #trimWhiteSpace

TrueOrFalse]}

 

 

Umożliwia podmianę elementów obsady z plików zewnętrznych  
– dla danych bitmapowych dostępne są opcje #dither (dom.FALSE) i #trimWhiteSpace (dom. TRUE). 
np.  

on

 exitFrame 

    tempURL =

 "http://www.cos.pl/cos.gif"

 

    importFileInto

 new

(

#bitmap

), tempUrl

 

end 

 

on

 exitFrame 

   importFileInto member

 "Memory"

,

 "Wind.wav"

 

end 

 

 

preloadNetThing() 
 

preloadNetThing

 (

url

 

Funkcja pobiera dokument do lokalnego cache’a tak, aby można było go w przyszłości otworzyć bez zwłoki czasowej 
związanej z pobieraniem. Funkcja zwraca identyfikator sieciowy, dzięki któremu można w przyszłości sprawdzić, czy 
plik został już pobrany oraz zastosować w aplikacji dane z pobranego pliku. Funkcja działa w tle aplikacji  Directora – 
film dalej jest odtwarzany według ustalonego scenariusza. Możliwe jest pobieranie wielu plików jednocześnie, ale nie 

zaleca się przekraczać liczby czterech jednoczesnych połączeń.  
Uwaga: połączenia sieciowe Lingo mogą zakłócać dotwarzanie strumieniowego dźwięku Shockwave Audio (SWA). 
np. 

  set

 mynetid =

 preloadNetThing

(

"http://www.yourserver.com/mymovie.dir"

)

 

background image

Projektowanie Grafiki (2003) 

30 

 

netDone() 

 

 netDone

()

 

 netDone

(netID) 

 
Funkcja daje możliwość sprawdzenia stanu operacji sieciowej Lingo przeprowadzanych w tle. 
(getNetText, preloadNetThing, gotoNetMovie, gotoNetPage, putNetText) 
Gdy operacja została zakończona powodzeniem lub błędem, funkcja zwraca wartość TRUE. 

Jeśli operacja nadal trwa, funkcja zwraca wartość FALSE. 
Jeśli operacja została ukończona, informację zwrotną operacji sieciowej Lingo otrzymamy z wykorzystaniem funkcji 
netTextResult. 
Funkcja netDone() bez parametru dotyczy ostatnio wywołanej operacji sieciowej Lingo. 

np. 

on

 exitFrame

 

    if

 netDone

() =

 1

 then 

        member

(

"Display Text"

).

text

 =

 netTextResult

() 

 

    end if 

end 

 

on

 exitFrame

 

    global

 mynetID

 

    if

 netDone

(mynetID) =

 FALSE then 

        go

 to the

 frame

 

    end if 

end 

 

 

 

getNetText() 
 

getNetText

(

URL

 {, serverOSString} {,

 characterSet

})

 

getNetText

(

URL

, propertyList {, serverOSString} {,

 characterSet

})

 

 

Funkcja używana przy pobieraniu informacji tekstowej z serwerów HTTP i FTP. 
Funkcja umożliwia przekazywanie parametrów do aplikacji sieciowej np. CGI. 
Parametr serverOSString definiuje sposób kodowania znaku Return/Enter w propertylist.  
(dom. UNIX, może być Win lub Mac)- parametr ten jest rzadko używany. 

Parametr characterSet używany jest przy uruchamianiu aplikacji Directora w środowisku shift-JIS (system Japoński). 
Możliwe ustawienie parametru to JIS, EUC, ASCII, and AUTO. Lingo konwertuje wtedy przesyłane dane z shift-JIS do 
podanego typu.  

np. 

property

 spriteNum

 

property

 theNetID

 

on

 mouseUp

 me 

    theNetID =

 getNetText

 (

"http://BigServer.com/sample.txt"

)

 

end 

on

 exitFrame

 me 

    if

 netDone

(theNetID)

 then 

        sprite

(

spriteNum

).

member

.

text

 =

 netTextResult

(theNetID)

 

    end if 

end

  

 

getNetText

(

"http://www.yourserver.com/cgi-bin/query.cgi?name=Bill"

getNetText

(

"http://www.yourserver.com/cgi-bin/query.cgi"

, [

#name

:

"Bill"

])

 

  

background image

Projektowanie Grafiki (2003) 

31 

netError() 

 

netError

()

 

netError

(netID) 

 

Umożliwia detekcję kodu błędu powstałych przy operacjach sieciowych Lingo. 

np.  

on

 exitFrame 

    global

 mynetID

 

    if

 netError

(mynetID)<>

"OK"

 then

 beep 

end 

 

 

 

 

netTextResult() 
 

netTextResult

(netID) 

netTextResult

() 

 
Zwraca wynik operacji sieciowej Lingo. 

np.  

global

 gNetID

 

on

 exitFrame

 

    if

 (

netDone

(gNetID) =

 TRUE

)

 and

 (

netError

(gNetID) =

 "OK"

)

 then 

        member

(

"Display Text"

).

text

 =

 netTextResult

() 

    end if 

end 

 

 

postNetText() 

 

postNetText

(

url

, propertyList {,serverOSString} {,serverCharSetString})

 

postNetText

(

url

, postText {,serverOSString} {,serverCharSetString})

 

 
Funkcja służy do wysyłania zapytań typu POST do wskazanego URL’a. 
Odpowiedź serwera można odczytać funkcją netTextResult(netID), stan wykonania funkcją netDone(netID) oraz 
powodzenie operacji funkcją netError(netID).  

Uwaga: generowana odpowiedź serwera powinna używać MIME type "text/plain.". 
Funkcja postNetText() używana jest do obszerniejszych zapytań. Metoda GET zwykle jest limitowana pod względem 
objętości przekazywanego zapytania – zazwyczaj jest to 1 lub 4 KB. 
 

np.  

lastName =

 member

(

"Last Name"

).

text 

firstName =

 member

(

"First Name"

).

text 

totalScore =

 member

(

"Current Score"

).

text 

infoList = [

"FName"

:firstName,

 "LName"

:lastName,

 "Score"

:totalScore]

 

netID =

 postNetText

(

"www.mydomain.com\userbase.cgi"

, infoList)