Внешний переход |
Top Previous Next |
Внешний переход переводит систему из одного состояния в другое (возможно, то же самое).
Рис.1
При срабатывании внешнего перехода в общем случае: •выполняются выходные действия исходного состояния; •выполняются действия перехода; •уничтожается объект-деятельность в исходном состоянии; •выполняются входные действия в конечном состоянии; •создается объект-деятельность в конечном состоянии.
Рис.2
Таким образом, в выходных действиях исходного состояния и в действиях перехода доступны переменные объекта-деятельности. В карте поведения прыгающего мячика на рис.2 объект-деятельность в состоянии "F" является экземпляром глобального класса "Flight" и не может изменять значений переменных объекта "model". Однако, в переходе F --> F видимы все переменные объекта-деятельности "F" (он имеет имя соответствующего состояния). Поэтому в действиях перехода можно запомнить в пременных объекта "model" скорость, дальность и угол падения. При повторном входе в состояние "F" объект-дейстельсть снова создается с новыми начальными условиями.
В карте поведения по умолчанию одновременно может срабатывать только один внешний переход. Если два или более внешних переходов из текущего состояния готовы к срабатыванию, это рассматривается как ошибка. Однако, если в установках проекта на странице "Основные" уставновить флаг "недетерминированные карты поведения", то в этом случае будет случайно с равной вероятностью выбираться один из переходов и он будет срабатывать. |