上一篇 | 下一篇

如何在文本框中限制输入

发布: 2007-1-25 16:42 | 作者: three-m | 来源: aougu.net | 查看: 156次

  大家是如何对文本输入实现限制的呢?这里介绍一下用keydown句柄和pass指令实现的方法。奥古多媒体+I4Y\HZ
奥古多媒体c I#li u(oi9|s
  首先,让我们看看如何完全屏蔽和完全不屏蔽字符输入。
4N'W$u|+r'r6t-}.sz
BCgF#Kj'M@   如果在某个可编辑文本精灵上加入下面这段代码,然后运行,那么在文本框内我们将不能输入任何字符:
9H$|3}Q:C~!j)_F 奥古多媒体I R)^_`8GI;@
  on keydown me奥古多媒体Fl+[ [0i1P&A
    nothing
}-P2^:EuA)SuF)r   end奥古多媒体C5H]1?dK4I$U E

6i/C:@P.i"n 奥古多媒体7W7U ^+@-w!D'Zqs+Q-B
  如果在某个可编辑文本精灵上加入下面这段代码,然后运行,那么在文本框内我们将可以输入任何字符:奥古多媒体"@_v%t"\8Ww
奥古多媒体aDxWt Z5F
  on keydown me
)i)G2dEZI     pass奥古多媒体;Xvphi.B2n.M)d
  end奥古多媒体`/Sm:~o AB`

jFa1r]xw^   再让我们了解一下keydown句柄和pass指令的作用过程。奥古多媒体6V2R9GC2c)N
奥古多媒体;vSh\3f!r_X
  on keydown (me):是我们在键盘按键所出发的事件,对于含有keydown 的精灵行为脚本、演员脚本和电影脚本,截获执行这个事件的先后顺序是:精灵行为脚本-->演员脚本-->电影脚本。
B[*Abf&l   
#]\uoj-Q   pass:这个指令使我们可以告诉特定的程序代码,在截获某个系统事件后将这个事件继续下传,以让优先等级次级的程序获取执行事件。如在上面的第二代码中pass使得精灵行为将keydown事件继续下传,结果是文本域接受输入字符并显示在文本精灵中。
l,qcog_3nVD-I   奥古多媒体Fx$I @0?+@V+N X!i
  对于文本域来说,获取按键输入的优先权高于电影脚本,但低于精灵行为以及演员脚本。奥古多媒体.P'O6tw,[ a*Am]'y,W!l
  
g0l(U tI)r5y&o   下面是几个限制输入的例子。
+aC^.Uv:B&g   奥古多媒体 @~!B#b [[j V
  屏蔽回车键 --精灵行为。奥古多媒体%yu }aD P0W
  on keydown me
1NkG%{;W5|FzA     if the key=  return then奥古多媒体hoN)s.@v"X
      nothing --屏蔽“阻断”keydown事件!奥古多媒体 p,w)H6bG!Q'l%v
    else
-@8TI(@-E d       pass --继续下传keydown事件!奥古多媒体.qE$x2R~Z'd@']&sS$z/Q!V
    end if奥古多媒体&aFe$QCp]+h-f
  end
YW-SF^a y
-e aj;Ew],H   屏蔽f键 --精灵行为奥古多媒体;tI&\}Li,^l

p0|6xS[1q(oY?2o   on keydown me奥古多媒体MUZY wj)B,H[
    if the key=  "f" then奥古多媒体kw2wH6U-x(FA
      nothing --屏蔽“阻断”keydown事件!奥古多媒体 lA)d1Dfqaw n
    else
K0a\_%h,]0s;t uW/[       pass --继续下传keydown事件!奥古多媒体{wR'YII jg
    end if
W _m!tB#X!s yE   end奥古多媒体'id1t TO0G,h

sTf:V,no;g-]'@   另外,这里提供一个屏蔽字符串的行为供大家参考。如下,只能输入a-z,1-9和-。
\l&D{w1K
fS[V D2j0zio'aj3h   property spriteNum, letters
Ga6f0pQ%d"VW:B/N   on keyDown me
bw*\X c$u-v#TS     if (letters contains the key) then 奥古多媒体.d F,k] Z4}"X!i
      pass 奥古多媒体.T8SEk[k2MRUY
    else 奥古多媒体7`)`bH Y5~ HO'wu
      beep
0T;n[ yS7Z[!I:Qk     end if 奥古多媒体)^$Z+_/`1r;FuE
  end
nXhQv4c8\ ?;fY   on getPropertyDescriptionList me 奥古多媒体.iNT1H2Bb)z;m{0X
    p_list = [#letters : [#format : #string, #default : "abcdefghijklmnopqrstuvwxyz1234567890-", #comment : "Allowed characters:"]]
g V-L%Rs9X     return p_list
Q sum:L^-f4rS   end

字号: | 推荐给好友

 

评分:0

我来说两句

seccode


最新歌曲
转机 放生 黄玫瑰 摇啊摇 那滋味 擦肩而过 你若成风 幸福一辈子 依然在一起 吻得太逼真 感动天感动地 坐上火车去拉萨 怎么会狠心伤害我
心碎 冲动 小太阳 别碰我 蒲公英 爱情小偷 只要不亏 一定要爱你 等爱的玫瑰 无情的温柔 北极星的眼泪 最后一次的温柔 亲爱的那不是爱情
光荣 火花 下雨天 我可以 樱花草 为你写诗 独家记忆 再见小时候 寂寞才说爱 忘不掉的伤 爱上你是个错 第三者的第三者 孤独的时候可以抱你
假如 城府 是非题 有缘人 舍不得 我的答铃 只欠秋天 外滩十八号 越爱越难过 123木头人 爱走了心碎了 爱上你是我的错 爱情里没有谁对谁错