搜索 社区服务 统计排行 帮助
  • 1679阅读
  • 4回复

给POPSUB的一个建议

楼层直达
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
点击播放器窗口可以获取当前点坐标。能不能加入这样一个功能,直接把点坐标代入{\pos(s,y)}加到字幕行去?
级别: 工作组
注册时间:
2001-11-21
在线时间:
0小时
发帖:
2314
只看该作者 1楼 发表于: 2006-01-21
想做的,不过因为种种原因,
最近精力没放在改程序上。
级别: 工作组
注册时间:
2004-11-18
在线时间:
0小时
发帖:
435
只看该作者 2楼 发表于: 2006-01-21
手写吧,也不算多麻烦-w-
K大-w-,忙里偷闲吧~




级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 3楼 发表于: 2006-01-29
这是我的想法:

在窗体添加一个检查框(addpos),caption="直接加入点坐标"。
然后在“点击播放器窗口”事件的适当处加入一下代码:

if addpos.Value then
if mid$(字幕.text,1,6) = "{\pos(" then
for i = 1 to len(字幕.text)
if mid$(字幕.text,i,1) = "}" then exit for
next
字幕.text = "{\pos(" + 点坐标x + "," + 点坐标y + ")}" + mid$(字幕.text,i+1)
else
字幕.text = "{\pos(" + 点坐标x + "," + 点坐标y + ")}" + 字幕.text
end if
end if

此代码尚需改进,未经测试。
级别: 工作组
注册时间:
2005-05-03
在线时间:
0小时
发帖:
2914
只看该作者 4楼 发表于: 2006-02-06
1、楼上的代码不能适应“pos语句不在行开头”的情况。
以下是“能够适应”的代码
rem subt存储的是字幕,x是横坐标,y是纵坐标
function addpos(subt,x,y)
sublen=len(subt)
exf=false
for cp=1 to sublen-5
if format$(mid$(subt,cp,6))="{\POS(" then
rcp=cp
exf=true
end if
if exf then
for cp=rcp to sublen
if mid$(subt,cp,1)="}" then exf2=true:exit for
next
if exf2 then
subt1=mid$(subt,1,rcp-1)
subt2=mid$(subt,cp+1)
addpos=subt1+"{\pos("+trim(str(x))+","+trim(str(y))+")}"+subt2
else
msgbox("字幕语句中的POS代码有错。",,"提示")
end if
else
addpos="{\pos("+trim(str(x))+","+trim(str(y))+")}"+subt
end if
end function
未经调试,请谨慎使用

2、popsub的“窗口大小、位置的记忆功能”:
最大化窗口后,关闭popsub的时候就记忆了“最大化”的坐标和大小
关闭时检查一下“form.windowsstate”,如果是“2”就表明处在最大化状态,不要记录大小和位置,下次启动恢复窗口大小后把它设为“2”即可。

3、坐标自动添加功能可以使“为日文歌词汉字注音”更加快捷。
建议再增加一个“锁定x/y坐标”的功能。
添加2个check和text,两个check的caption分别叫“锁定x坐标”和“锁定y坐标”。两个文本框输入要锁定的值。
这样,在标注音的时候就可以更方便的对齐注音。
快速回复

限150 字节
上一个 下一个