PetriNetwork
1.0.0
Petrinetwork เป็นห้องสมุดบน Actionscript 3 ซึ่งจำลองการทำงานของเครือข่าย Petri ออกแบบมาเพื่อสร้างแอนิเมชั่นแฟลชแบบโต้ตอบในสภาพแวดล้อมการฝึกอบรม hypertest
เครือข่าย Petri เป็นมัลติโพรต์แบบหลายประเภทแบบคู่ซึ่งประกอบด้วยท็อปส์ซูของสองประเภท -ตำแหน่งและการเปลี่ยนที่เชื่อมต่อกันโดยอาร์ค ยอดเขาประเภทเดียวกันไม่สามารถเชื่อมต่อได้โดยตรง ในตำแหน่งเครื่องหมาย (เครื่องหมาย) สามารถเคลื่อนย้ายผ่านเครือข่ายสามารถวางในตำแหน่ง
เหตุการณ์คือการดำเนินการของการเปลี่ยนแปลงซึ่งเครื่องหมายจากตำแหน่งอินพุตของการเปลี่ยนแปลงนี้ย้ายไปเป็นวันหยุดสุดสัปดาห์ เหตุการณ์เกิดขึ้นทันทีหรือแตกต่างกันเมื่อเงื่อนไขเป็นจริง
import PetriNetManager . State ;
import PetriNetManager . StateTransition ;
import PetriNetManager . ActionResult ;
import PetriNetManager . SceneManager ;
import PetriNetManager . StatesUpdateEventHandler ;
import flash . display . DisplayObject ; var sceneMgr = new SceneManager ( ) ; var sett : Object = {
//Номера позиций
states : [ 1 , 2 , 3 , 4 , 5 ] ,
//Количество маркеров в каждой позиции
markers : [ 1 , 0 , 0 , 0 , 0 ] ,
//Массив объектов переходов
transitions : [ {
//номер перехода
id : 1 ,
//Входные позиции
inputStates : [ 1 ] ,
//Выходные позиции
outputStates : [ 2 ]
} ,
{
id : 2 ,
inputStates : [ 2 ] ,
outputStates : [ 3 ]
} ,
{
id : 3 ,
inputStates : [ 1 ] ,
outputStates : [ 5 ]
}
]
} ; sceneMgr . initFromObject ( sett ) ; helpBtn . addEventListener ( MouseEvent . CLICK , helpBtnInvoke ) ;
function helpBtnInvoke ( e : MouseEvent ) : void {
sceneMgr . makeAction ( 1 ) ;
} function statesChangedHandler ( e : StatesUpdateEventHandler ) {
for each ( var s : State in e . States ) {
trace ( s . Id + " " + s . hasMarkers ( ) ) ;
}
trace ( "-----------------------------" ) ;
//Если срабатывает первый переход
if ( e . States [ 0 ] . hasMarkers ( ) ) {
//переходим на другой фон
bg1 . gotoAndStop ( 1 ) ;
//меняем текст в навигационном окне
curStr = "Зайдите в меню HELP или нажмите CTRL+SHIFT+D" ;
}
if ( e . States [ 1 ] . hasMarkers ( ) ) {
bg1 . gotoAndStop ( 2 ) ;
curStr = "Выберите пункт Default Keymap Reference" ;
}
if ( e . States [ 2 ] . hasMarkers ( ) ) {
bg1 . gotoAndStop ( 3 ) ;
curStr = "Список со всеми горячими клавишами" ;
}
if ( e . States [ 4 ] . hasMarkers ( ) ) {
bg1 . gotoAndStop ( 4 ) ;
curStr = "Форма поиска команды" ;
}
}
sceneMgr . addEventListener ( StatesUpdateEventHandler . STATES_UPDATE_EVENT , statesChangedHandler ) ; sceneMgr . initFromJson ( net1 . json ) ;