13.1       Zmiana pozycji

 

W poniższym przykładzie zmieniona zostanie pozycja obiektu typu Obraz. Położenie w osi X będzie sterowane zmienną procesową CarPosX, której wartość z zakresu od 0 do 100 określa przesunięcie obrazu w pikselach względem pozycji początkowej.

Właściwości podstawowe

 

Główna zmienna

CarPosX

Właściwości stanowe, stan podstawowy

 

Nazwa obrazu

Car

Zdarzenia

 

Animacja

^SetPosition( RelToAbsX(100+Variable(),null)

Pozycja początkowa określona jest na 100. Do pozycji początkowej dodawana jest wartość zmiennej CarPosX. Tak wyliczona pozycja w pikselach musi być następnie przeliczona na wartość bezwzględną przy pomocy funkcji RelToAbsX. Wszystkie parametry funkcji zmiany położenia i rozmiaru są przekazywane w wartościach bezwzględnych niezależnych od rozmiaru diagramu. Wartość bezwzględna 1 000 000 zawsze odpowiada prawej krawędzi diagramu. Wartość null w drugim parametrze akcji  SetPosition oznacza, że współrzędna Y obiektu nie ulega zmianie.

W podobny sposób można zmieniać rozmiar obiektu, ale w tym przypadku należałoby użyć akcję SetSize lub SetBounds.

Akcja pokazana w powyższym przykładzie ma jednak jedną podstawową wadę – działa dobrze tylko wtedy, gdy diagram ma stałe rozmiary. W przypadku diagramu skalowanego przeliczenia pozycji muszą bazować na współrzędnych bezwzględnych.

Właściwości podstawowe

 

Główna zmienna

CarPosX

Właściwości stanowe, stan podstawowy

 

Nazwa obrazu

Car

Zdarzenia

 

Animacja

^SetPosition(500000+100000*(Variable()/100.0), null)

 

W powyższym przykładzie bazowe położenie obrazka, to środek diagramu (wartość 500 000 bezwzględna). Skrajne prawe położenie, przy wartości zmiennej CarPosX równej 100, to 60% szerokości diagramu.