--          此程序用来控制上、下句之间的跳转，需要事先设置好几个参数
--          一：是放在上一句还是下一句按钮上
--          二：选择被控制的Flash的通道号（由程序自动实现，如有多个请手动选择）

--        注意：  Flash中一定要有2个或者更多的标签

global PauseOrPlay
global FlashLabel  --用与存放Flash演员中的标签所在的帧数
property Mysprite
property MySwfSpri  --  被控制的Flash精灵所在的通道号
property MyJudge  -----用来判断这段程序是放在播放上一句还是播放下一句上
property FlashJudge
property OldName
property HWKdown

on beginsprite me
  HWKdown=0
  if FlashLabel <> void then
    if FlashLabel.count<2 or FlashLabel=[] or  sprite(MySwfSpri).member.type<>#Flash then
      FlashJudge=0
    else
      FlashJudge=1
    end if
  end if
  Mysprite=sprite(me.spritenum)
  OldName=Mysprite.member.name
end beginsprite

on mouseenter me
  Mysprite.member=member(OldName&"h","con_hwk")
  Mysprite.cursor=280
end mouseenter

on mouseleave me
  Mysprite.member=member(OldName,"con_hwk")
  Mysprite.cursor=-1
end mouseleave

on mousedown me
  mysprite.cursor=-1
  HWKdown=1
  sprite(MySwfSpri).play()
  if FlashJudge=1 then
    --  取得当前Flash播放的帧数
    CurrentSwfFrame=sprite(MySwfSpri).frame
    --  实现上一句或下一句的跳转
    Sentence(MyJudge,CurrentSwfFrame,FlashLabel,MySwfSpri)
  end if
end mousedown

on mouseup me
  Mysprite.cursor=280
end mouseup

on exitframe me
  if PauseOrPlay=1 and HWKdown=1 then
    jj=sprite(MySwfSpri).frame
    hwkFlashLabel=sprite(41).getframelabel(jj)
    hwkFlashLabel=hwkFlashLabel.char[1..5]
    if hwkFlashLabel="close" then
      sprite(MySwfSpri).hold()
      HWKdown=0
    end if
  end if
end

--前后标签间的跳转函数
--注：panduan表示判断当鼠标点击后是向后跳还是向前跳
--    num表示当前Flash播放的帧数
--    templist表示存有Flash标签的列表
--    SwfSprite表示被控制的Flash的通道号
on Sentence panduan,num,templist,swfsprite
  aa=templist.count
  repeat with i = 1 to aa
    bb=templist.getat(i)
    if num<bb then
      case panduan of
        "下一句":
          sprite(swfsprite).gotoframe(bb)
          exit repeat
        "上一句":
          dd=templist.getpos(bb)
          put dd
          case dd of
            1:exit repeat
            2:
              bb=templist.getat(i-1)
              sprite(swfsprite).gotoframe(bb)
              exit repeat
            otherwise:
              bb=templist.getat(i-2)
              sprite(swfsprite).gotoframe(bb)
              exit repeat
          end case
        otherwise:nothing
      end case
    else
      if i=aa and num>bb then
        case panduan of
          "下一句":exit repeat
          "上一句":
            bb=templist.getat(i-1)
            sprite(swfsprite).gotoframe(bb)
            exit repeat
          otherwise:nothing
        end case
      end if
    end if
  end repeat
end Sentence

on getPropertyDescriptionList me
  ----自动获取通道上Flash精灵的编号
  set SwfSprites=[]
  ----遍历 1 到 20 号精灵通道，寻找Flash精灵
  repeat with spritenum=1 to 100
    case sprite(spritenum).member.type of
      (#flash):
        append SwfSprites,spritenum
    end case
  end repeat
  set Judge=["上一句","下一句"]
  
  ----------------------------
  pro=[:]
  setaprop pro,#MyJudge,[ #comment: "上一句还是下一句",#format:#string,#default: 1, #range:Judge]
  setaprop pro,#MySwfSpri,[ #comment: "受控制的flash精灵的定位:",#format:#integer,#default: 1, #range:SwfSprites]
  return pro 
end getPropertyDescriptionList