Внешний переход

Top  Previous  Next

Внешний переход переводит систему из одного состояния в другое (возможно, то же самое).

 

 

ОбрМаятн                        ОтскШарикОдноСост

                                         Рис.1

 

При срабатывании внешнего перехода в общем случае:

выполняются выходные действия исходного состояния;

выполняются действия перехода;

уничтожается объект-деятельность в исходном состоянии;

выполняются входные действия в конечном состоянии;

создается объект-деятельность в конечном состоянии.

 

ГлобДеят

                                         Рис.2

 

Таким образом, в выходных действиях исходного состояния и в действиях перехода доступны переменные объекта-деятельности.

В карте поведения прыгающего мячика на рис.2 объект-деятельность в состоянии "F" является экземпляром глобального класса "Flight" и не может изменять значений переменных объекта "model".

Однако, в переходе F --> F видимы все переменные объекта-деятельности "F" (он имеет имя соответствующего состояния). Поэтому в действиях перехода можно запомнить в пременных

объекта "model" скорость, дальность и угол падения. При повторном входе в состояние "F" объект-дейстельсть снова создается с новыми начальными условиями.

 

В карте поведения по умолчанию одновременно может срабатывать только один внешний переход.

Если два или более внешних переходов из текущего состояния готовы к срабатыванию, это рассматривается как ошибка.

Однако, если в установках проекта на странице "Основные" уставновить флаг "недетерминированные карты поведения", то в этом случае будет случайно с равной вероятностью

выбираться один из переходов и он будет срабатывать.