Flash 板


LINE

不知道有没有回答你的问题 我看你的情况应该是AS3.0的TextField 依照我做过聊天室的经验来说 真的很怪 首先 我预设Enter送出 而Ctrl+Enter换行 Flash的读取用换行字元不是想像中的""或是chr(13) 而是"\r" 但是的写入用换行字元却是"\n" if(key.keyCode==13 && key.ctrlKey==false){ 按下Enter发送,这没问题 if(ctrl_text.text !== "" && ctrl_text.text.substring(ctrl_text.caretIndex-1,ctrl_text.caretIndex) == "\r") { 这个很诡异 当目标text不是空时才会发送 但是按下Enter瞬间其实他是会先换行才执行你送出的function 换句话说,Flash程式本身换行优先,而你的function次要 因此送出的时候侦测text时,会是"文字讯息\r" if(ctrl_text.text == "\r") { ctrl_text.text = "" //如果送出时只有换行字元,表示原先是空的,强制把换行字元弄掉(不换行) }else{ //发送讯息 } } } if(key.keyCode==13 && key.ctrlKey==true){ // Ctrl+Enter ctrl_text.text=ctrl_text.text.substring(0,ctrl_text.caretIndex) //游标所在之处 +"\n" //加上换行 +ctrl_text.text.substring(ctrl_text.caretIndex,ctrl_text.length) //接上结尾 ctrl_text.setSelection(ctrl_text.caretIndex+1,ctrl_text.caretIndex+1) //将游标移到你换行的地方,因为\n算一个,因此要+1 //我记得这个情况+"\r"会没反应 这是使用Ctrl+Enter避开普通Enter会产生基本换行动作的funcion http://www.mediafire.com/?p8ub48j2y3ig5cj 这是funcion区段 呼叫方法是test的键盘侦测 上面的方法听说称为dirty hack www 也就是只是查出Flash预设会怎样,强制反解而已 ※ 引述《yhn0tgb60 (呦厚厚)》之铭言: : 下面这段程式码  只有两个物件 : 一个是 inputTxt 是使用者用来输入文字  : 另一个 msgTxt 用来显示使用者输入的文字 : 当使用者在 inputTxt中输入完文字後按"ENTER" : 就会将 inputTxt贴到 msgTxt 然後将 inputTxt清空 : 当 inputTxt 中没有输入文字时 按下"ENTER" 也不能送出讯息 : 我是用 KeyboardEvent.KEY_DOWN 来判断 是否按下 "ENTER" : 在讯息确定不是"" 送到 msgTxt後 就将讯息清空 : 但出现一个问题 : 就是 "ENTER"会在 KeyboardEvent.KEY_DOWN 讯息结束後 才塞给inputTxt : 所以等於 inputTxt.text='' 并没有完全把讯息清空 : 所以我又加了一个 addEventListener( KeyboardEvent.KEY_UP,KeyUpEnter ); : 在 "ENTER" 放开後 再清一次 inputTxt.text='' : 这样就可以把讯息完全清空了 : 但是 当要输入中文时 就会失败 因为中文输入法选完字後要按"ENTER" : 结果"ENTER" 按下後 中文讯息还来不及送给 msgTxt 就已经被 inputTxt.text='' : 就变成不能打中文 = = : 而当我一直按着 "ENTER" 不放时 "ENTER"的讯息最後还是会不对的被送出 完全档不掉 : 想请问大家的意见 谢谢了 : package : { : import flash.display.MovieClip; : import flash.events.KeyboardEvent; : import flash.ui.Keyboard; : public class test extends MovieClip : { : public function test():void : { : inputTxt.text=''; : msgTxt.text=''; : addEventListener( KeyboardEvent.KEY_DOWN,KeyDownEnter ); : addEventListener( KeyboardEvent.KEY_UP,KeyUpEnter ); : } : private function KeyDownEnter( evt:KeyboardEvent ):void : { : if( evt.keyCode == Keyboard.ENTER ) : { : if( inputTxt.text!='' ) : { : msgTxt.appendText('AAA:'+inputTxt.text+'\n'); : inputTxt.text=''; : } : } : } : private function KeyUpEnter( evt:KeyboardEvent ):void : { : if( evt.keyCode == Keyboard.ENTER ) : { : inputTxt.text=''; : } : } : } : } -- 「杏、どうしたんだ?」 「どっ、どうもしてないわよ。あんたこそ、椋とデートじゃなかったの?」 「ずぶ濡れじゃねぇかよ、ふっふっ」 「来ないで!!!!!!!!!!!!!!……                      来ないで…お愿いだから…」       京都アニメ クラナド~AfterStory~第25话 「もうひとつの世界─杏编」 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 61.62.110.175 ※ 编辑: KawasumiMai 来自: 61.62.110.175 (01/27 23:54)
1F:推 yhn0tgb60:非常谢谢你 我再研究看看 01/28 00:47
2F:推 yhn0tgb60:谢谢 关键在 ENTER='\r' 把'\r'判断掉 问题就解决了 01/30 15:30







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BabyMother站内搜寻

TOP