#22001/12/25 2:10:18
附件:http://mazhiguo.5dmedia.com/temp/caidan.dir
下面是文本菜单行为:
在上面的caidan.dir中还有一个图形菜单行为,和一个用flash作的菜单效果
property pmember
property pText
property pSelection
property pPressed
property pLastHilite
on beginsprite me
pMember = sprite(me.spriteNum).member
pText = pMember.text
pSelected = pText.line[1]
pPressed = False
pMember.text = pSelected
setmemberRect(me)
end
on mousedown me
pPressed = true
openpopup(me)
end
on openpopup me
pMember.text = pText
setmemberRect(me)
plasthilite = 0
end
on setmemberrect me
memrect = pmember.rect
numlines = pmember.text.lines.count
if pmember.text.line[numlines] = "" then numlines = numlines - 1
memrect.bottom = memrect.top + (numlines * pmember.lineheight)
pmember.rect = memrect
end
on exitframe me
if ppressed then
thisline = getline(me)
if thisline <> plasthilite then
selectline(me,thisline)
plasthilite = thisline
pselection = ptext.line[thisline]
end if
end if
end
on mouseup me
ppressed = false
closepopup(me)
makeselection(me)
end
on mouseupoutside me
ppressed = false
closepopup(me)
end
on closepopup me
pmember.text = pselection
setmemberrect(me)
end
on getline me
if the rollover<>me.spritenum then
return 0
else
y = the mousev - sprite(me.spritenum).locv
linenum = y/(pmember.lineheight) + 1
return linenum
end if
end
on selectline me,clickedline
if clickedline = 1 then
startchar = 1
else
startchar = (pmember.text.line[1..clickedline-1]).length + 2
end if
endchar = (pmember.text.line[1..clickedline]).length + 1
hilite char startchar to endchar of field pmember
end
on makeselection me
-- if plasthilite >0 then
-- alert "you picked number" &&(plasthilite -1)
-- end if
case (plasthilite) of
2:
go to frame "1"
3:
go to frame "2"
4:
go to frame "3"
5:
go to frame "4"
6:
go to frame "5"
7:
go to frame "6"
end case
end
on endsprite me
pmember.text = ptext
end