SWiSH Forum
Forum użytkowników programów SWiSH

Podstawy języka skryptowego - Lekcja 12. Uproszczony zapis

roland - Pon 22 Sie, 2005 11:58
Temat postu: Lekcja 12. Uproszczony zapis
Na chwilę zatrzymajmy się w poznawaniu nowych możliwości języka skryptowego i powiedzmy sobie o możliwościach uproszczenia niektórych złożonych zapisów.

Przykładowo zapis:
x = x+1
możemy uprościć zapisując:
x += 1;

Aby to przetestować, wprowadź poniższy kod w Scene_1:
Kod:
onLoad () {
    x=10;
    x+=1;
    trace(x);
}

W wyniku działania skryptu, w oknie karty Debug zostanie wyświetlona wartość 11.

W podobny też sposób działają zapisy:
x –= 1;
x *= 2;
x /= 2;

Trochę więcej kłopotów może przysporzyć używanie podwójnego znaku dodawania (++). Powoduje ono zwiększenie wartości zmiennej przy której zostało użyte o 1. Przykład:
Kod:
onLoad () {
    y = 1;
    x = ++y;
    trace(x);
    trace(y);
}

spowoduje dwukrotne wyświetlenie wartości 2.

Jeżeli jednak podwójny plus umieścimy za nazwą zmiennej:
Kod:
onLoad () {
    y = 1;
    x = y++;
    trace(x);
    trace(y);
}

to otrzymamy 1 (dla zmiennej x) i 2 (dla zmiennej y).

Zwróć uwagę, że przed podstawieniem, wartość zmiennej y wynosiła 1. Jeżeli przy podstawieniu wartości zmiennej y pod zmienną x, użyliśmy ++ na początku, spowodowało to zwiększenie wartości zmiennej y o 1 przed wykorzystaniem jej w podstawieniu.

Tak więc działa to w następujący sposób:
    • x = ++y; – wartość zmiennej y jest zwiększana o 1, a następnie wynik ten jest podstawiany pod zmienną x,
    • x = y++; – wartość zmiennej y jest najpierw podstawiana pod zmienną x, a dopiero później zostaje ona zwiększona o 1.
W podobny sposób działa także podwójny znak odejmowania (––). Nie ma natomiast możliwości użycia innych znaków, jak na przykład podwójnego znaku mnożenia czy też dzielenia.

Możemy oczywiście używać takich zapisów w odniesieniu do właściwości obiektów (wpisujemy ten skrypt po uprzednim wybraniu obiektu Prostokat na karcie Outline):
Kod:
on (press) {
    Prostokat._x += 10;
}

spowoduje po każdym kliknięciu na obiekcie o nazwie Prostokat, przesunięcie go o 10 punktów w prawo.


Powered by phpBB modified by Przemo © 2003 phpBB Group