第一次贴这么长的贴子,也不知大家看得清不清楚,有什么做得不好的地方请大家包涵

-- 对stage上的两个sprite进行匹配
property pDrag -- 判断拖动的sprite
property pOffset --拖动时用的鼠标位移
property pOrigLoc --sprite开始位置
property pLocked -- 锁定匹配成功的sprite
--初始化
on beginSprite me
pOrigLoc = sprite(me.spriteNum).loc
pDrag = FALSE
pLocked = FALSE
end
on mouseDown me
-- 不能拖动已锁定的sprite
if pLocked = TRUE then exit
-- 可拖动
pDrag = TRUE
-- 记录位移
pOffset = sprite(me.spriteNum).loc - the mouseLoc
end
-- 结束拖动并判断位置是否正确
on mouseUp me
pDrag = FALSE
checkLock(me)
end
on mouseUpOutside me
pDrag = FALSE
checkLock(me)
end
-- 改变sprite的位置与鼠标相同
on prepareFrame me
if pDrag then
sprite(me.spriteNum).loc = the mouseLoc + pOffset
end if
end
--检查是否匹配
on checkLock me
-- 决定匹配名
memName = sprite(me.spriteNum).member.name
memNum = memName.word[2]
matchName = memname.word[1]
-- 检查所有的sprite
repeat with i = 1 to the lastChannel
-- 是否为匹配的sprite?
if sprite(i).member.name = matchName then
-- 检查两个sprite的距离是否够近?
if sprite i intersects sprite me.spriteNum then
-- 将两个sprite的loc值设为一致,可更改为自己想要的结果
sprite(me.spriteNum).loc = sprite(i).loc
-- 锁定
pLocked = TRUE
sprite(me.spritenum).loc=sprite(i).loc
-- 退出处理
exit
end if
end if
end repeat
-- 距离不够近则返回原来的位置
sprite(me.spriteNum).loc = pOrigLoc
end
源代码参考Marcromedia Director 7 开发使用手册,由机械工业出版社2000年1月出版
我是靠这本书入的门,它最大的特色就是有大量的示例,而示例中又全是行为,这
为我的lingo编程养成的良好的习惯(至少我认为)。