#32003/3/23 11:45:13
- Windows Standard Menu
-- [Parameter Note]
-- 1. pRootState: The state of root item.
-- 2. pNormalRoot: The member of the root item in the normal state.
-- 3. pRolloverRoot: The member of the root item in the rollover state.
-- 4. pChildList: The list for saving sprite number of child items.
property pRootState, pNormalRoot, pRolloverRoot, pChildList
on getPropertyDescriptionList me
myList = [:]
addProp myList, #pRolloverRoot, [#comment: "Rollover Root", #format: #member, #default: ""]
addProp myList, #pChildList, [#comment: "Child List", #format: #list, #default: []]
return myList
end
on isOKToAttach me, spriteType
if spriteType = #script then
return FALSE
else
return TRUE
end if
end
on getBehaviorDescription me
return "WINDOWS STANDARD MENU"&RETURN&"-- Copyright by alphachi"
end
on getBehaviorTooltip me
return "Windows Standard Menu"
end
on beginSprite me
pRootState = FALSE
pNormalRoot = sprite(me.spriteNum).member
HideMenu me
end
on mouseEnter me
pRootState = TRUE
end
on mouseLeave me
if sprite(pChildList[1]).visible then
pRootState = TRUE
else
pRootState = FALSE
end if
end
on mouseDown me
repeat with i in pChildList
sprite(i).visible = TRUE
end repeat
repeat with p = 1 to 100
repeat with q in pChildList
sprite(q).blend = p
updateStage
end repeat
end repeat
end
on HideMenu me
repeat with i in pChildList
sprite(i).blend = 0
sprite(i).visible = FALSE
end repeat
end
on exitFrame me
repeat with i in pChildList
if rollover(i) then
sprite(i).forecolor = 0
sprite(i).backcolor = 205
else
sprite(i).forecolor = 255
sprite(i).backcolor = 0
end if
end repeat
if the mouseDown then
if not rollover(me.spriteNum) then
pRootState = FALSE
end if
end if
if pRootState then
sprite(me.spriteNum).member = pRolloverRoot
else
sprite(me.spriteNum).member = pNormalRoot
HideMenu me
end if
end