??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲国产精品无码久久久秋霞1,99ri精品国产亚洲,亚洲成a人在线看天堂无码http://www.tkk7.com/szhswl/宋针q的个hI间zh-cnSat, 10 May 2025 17:20:25 GMTSat, 10 May 2025 17:20:25 GMT60JS屏蔽功能c?/title><link>http://www.tkk7.com/szhswl/articles/291529.html</link><dc:creator>宋针q?/dc:creator><author>宋针q?/author><pubDate>Mon, 17 Aug 2009 10:00:00 GMT</pubDate><guid>http://www.tkk7.com/szhswl/articles/291529.html</guid><description><![CDATA[<span style="color: teal">1.屏蔽功能c?<br /> <br /> 1.1 屏蔽键盘所有键 <br /> <script language="javascript"> <br /> <!-- <br /> function document.onkeydown(){ <br /> event.keyCode = 0; <br /> event.returnvalue = false; <br /> } <br /> --> <br /> </script> <br /> <br /> 1.2 屏蔽鼠标右键 <br /> <br /> 在body标签里加上on_contextmenu=self.event.returnvalue=false <br /> <br /> 或?<br /> <br /> <script language="javascript"> <br /> <!-- <br /> function document.on_contextmenu() <br /> { <br /> return false; <br /> } <br /> --> <br /> </script> <br /> <br /> function nocontextmenu() <br /> { <br /> if(document.all) { <br /> event.cancelBubble=true; <br /> event.returnvalue=false; <br /> return false; <br /> } <br /> } <br /> <br /> 或?<br /> <br /> <body onmousedown="rclick()" on_contextmenu= "nocontextmenu()"> <br /> <br /> <script language="javascript"> <br /> <!-- <br /> function rclick() <br /> { <br /> if(document.all) { <br /> if (event.button == 2){ <br /> event.returnvalue=false; <br /> } <br /> } <br /> } <br /> --> <br /> </script> <br /> <br /> <br /> 1.3 屏蔽 Ctrl+N、Shift+F10、F5h、退格键 <br /> <br /> <script language="javascript"> <br /> <!-- <br /> //屏蔽鼠标右键、Ctrl+N、Shift+F10、F5h、退格键 <br /> function window.onhelp(){return false} //屏蔽F1帮助 <br /> function KeyDown(){ <br /> if ((window.event.altKey)&& <br /> ((window.event.keyCode==37)|| //屏蔽 Alt+ 方向?← <br /> (window.event.keyCode==39))){ //屏蔽 Alt+ 方向?→ <br /> alert("不准你用ALT+方向键前q或后退|页Q?); <br /> event.returnvalue=false; <br /> } <br /> <br /> /* 注:q还不是真正地屏?Alt+ 方向键, <br /> 因ؓ Alt+ 方向键弹告框Ӟ按住 Alt 键不放, <br /> 用鼠标点掉警告框Q这U屏蔽方法就失效了。以后若 <br /> 有哪位高手有真正屏蔽 Alt 键的ҎQ请告知?/ <br /> <br /> if ((event.keyCode ==<img src="http://guoqinhua1986-126-com.javaeye.com/images/smiles/icon_cool.gif" alt="" /> && <br /> (event.srcElement.type != "text" && <br /> event.srcElement.type != "textarea" && <br /> event.srcElement.type != "password") || //屏蔽退格删除键 <br /> (event.keyCode ==116)|| //屏蔽 F5 h?<br /> (event.ctrlKey && event.keyCode==82)){ //Ctrl + R <br /> event.keyCode=0; <br /> event.returnvalue=false; <br /> } <br /> if ((event.ctrlKey)&&(event.keyCode==78)) //屏蔽 Ctrl+n <br /> event.returnvalue=false; <br /> if ((event.shiftKey)&&(event.keyCode==121)) //屏蔽 shift+F10 <br /> event.returnvalue=false; <br /> if (window.event.srcElement.tagName == "A" && window.event.shiftKey) <br /> window.event.returnvalue = false; //屏蔽 shift 加鼠标左键新开一|页 <br /> if ((window.event.altKey)&&(window.event.keyCode==115)){ //屏蔽Alt+F4 <br /> window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px"); <br /> return false;} <br /> } <br /> /* 另外可以?window.open 的方法屏?IE 的所有菜?<br /> W一U方法: <br /> window.open("你的.htm", "","toolbar=no,location=no,directories= no,menubar=no,scrollbars=no,resizable=yes,status=no,top=0,left=0") <br /> W二U方法是打开一个全屏的面Q?<br /> window.open("你的.asp", "", "fullscreen=yes") <br /> */ <br /> //--> <br /> </script> <br /> <br /> 1.4屏蔽览器右上角“最化”“最大化”“关闭”?<br /> <br /> <script language=javascript> <br /> function window.on_beforeunload() <br /> { <br /> if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) <br /> { <br /> window.event.returnvalue = ""; <br /> } <br /> } <br /> </script> <br /> <br /> 或者用全屏打开面 <br /> <br /> <script language="javascript"> <br /> <!-- <br /> window.open(www.32pic.com,"32pic","fullscreen=3,height=100, width=400, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no"); <br /> --> <br /> </script> <br /> <br /> 注:在body标签里加上on_beforeunload="javascript:return false"Q不能关闭H口Q?<br /> <br /> 1.5屏蔽F5?<br /> <br /> <script language="javascript"> <br /> <!-- <br /> function document.onkeydown() <br /> { <br /> if ( event.keyCode==116) <br /> { <br /> event.keyCode = 0; <br /> event.cancelBubble = true; <br /> return false; <br /> } <br /> } <br /> --> <br /> </script> <br /> <br /> 1.6屏蔽IE后退按钮 <br /> <br /> 在你链接的时候用 <a href="javascript:location.replace(url)"> <br /> <br /> 1.7屏蔽ȝ口滚动条 <br /> <br /> 在body标签里加?style="overflow-y:hidden" <br /> <br /> 1.8 屏蔽拷屏,不断地清I剪贴板 <br /> <br /> 在body标签里加上onload="setInterval('clipboardData.setData(\'Text\',\'\')',100)" <br /> <br /> 1.9 屏蔽|站的打印功?<br /> <br /> <style> <br /> @media print { <br /> * { display: none } <br /> } <br /> </style> <br /> <br /> 1.10 屏蔽IE6.0 囄上自动出现的保存图标 <br /> <br /> Ҏ一Q?<br /> <META HTTP-EQUIV="imagetoolbar" CONTENT="no"> <br /> Ҏ二: <br /> <img galleryimg="no"> <br /> <br /> 1.11 屏蔽中所有的script <br /> <br /> <noscrript></noscript> <br /> <br /> <br /> 2.表单提交验证c?<br /> <br /> <br /> 2.1 表单不能ؓI?<br /> <br /> <script language="javascript"> <br /> <!-- <br /> function CheckForm() <br /> { <br /> if (document.form.name.value.length == 0) { <br /> alert("误入您姓名!"); <br /> document.form.name.focus(); <br /> return false; <br /> } <br /> return true; <br /> } <br /> --> <br /> </script> <br /> <br /> 2.2 比较两个表单的值是否相?<br /> <br /> <script language="javascript"> <br /> <!-- <br /> function CheckForm() <br /> if (document.form.PWD.value != document.form.PWD_Again.value) { <br /> alert("您两ơ输入的密码不一P请重新输?"); <br /> document.ADDUser.PWD.focus(); <br /> return false; <br /> } <br /> return true; <br /> } <br /> --> <br /> </script> <br /> <br /> 2.3 表单只能ؓ数字?_",用于电话/银行帐号验证?可扩展到域名注册{?<br /> <br /> <script language="javascript"> <br /> <!-- <br /> function isNumber(String) <br /> { <br /> var Letters = "1234567890-"; //可以自己增加可输入?<br /> var i; <br /> var c; <br /> if(String.charAt( 0 )=='-') <br /> return false; <br /> if( String.charAt( String.length - 1 ) == '-' ) <br /> return false; <br /> for( i = 0; i < String.length; i ++ ) <br /> { <br /> c = String.charAt( i ); <br /> if (Letters.indexOf( c ) < 0) <br /> return false; <br /> } <br /> return true; <br /> } <br /> function CheckForm() <br /> { <br /> if(! isNumber(document.form.TEL.value)) { <br /> alert("您的电话L不合法!"); <br /> document.form.TEL.focus(); <br /> return false; <br /> } <br /> return true; <br /> } <br /> --> <br /> </script> <br /> <br /> <br /> 2.4 表单输入数?长度限定 <br /> <br /> <script language="javascript"> <br /> <!-- <br /> function CheckForm() <br /> { <br /> if (document.form.count.value > 100 || document.form.count.value < 1) <br /> { <br /> alert("输入数g能小于零大于100!"); <br /> document.form.count.focus(); <br /> return false; <br /> } <br /> if (document.form.MESSAGE.value.length<10) <br /> { <br /> alert("输入文字于10!"); <br /> document.form.MESSAGE.focus(); <br /> return false; <br /> } <br /> return true; <br /> } <br /> //--> <br /> </script> <br /> <br /> 2.5 中文/英文/数字/邮g地址合法性判?<br /> <br /> <SCRIPT LANGUAGE="javascript"> <br /> <!-- <br /> <br /> function isEnglish(name) //英文值检?<br /> { <br /> if(name.length == 0) <br /> return false; <br /> for(i = 0; i < name.length; i++) { <br /> if(name.charCodeAt(i) > 128) <br /> return false; <br /> } <br /> return true; <br /> } <br /> <br /> function isChinese(name) //中文值检?<br /> { <br /> if(name.length == 0) <br /> return false; <br /> for(i = 0; i < name.length; i++) { <br /> if(name.charCodeAt(i) > 128) <br /> return true; <br /> } <br /> return false; <br /> } <br /> <br /> function isMail(name) // E-mail值检?<br /> { <br /> if(! isEnglish(name)) <br /> return false; <br /> i = name.indexOf("@"); <br /> j = name.lastIndexOf("@"); <br /> if(i == -1) <br /> return false; <br /> if(i != j) <br /> return false; <br /> if(i == name.length) <br /> return false; <br /> return true; <br /> } <br /> <br /> function isNumber(name) //数值检?<br /> { <br /> if(name.length == 0) <br /> return false; <br /> for(i = 0; i < name.length; i++) { <br /> if(name.charAt(i) < "0" || name.charAt(i) > "9") <br /> return false; <br /> } <br /> return true; <br /> } <br /> <br /> function CheckForm() <br /> { <br /> if(! isMail(form.Email.value)) { <br /> alert("您的电子邮g不合法!"); <br /> form.Email.focus(); <br /> return false; <br /> } <br /> if(! isEnglish(form.name.value)) { <br /> alert("英文名不合法Q?); <br /> form.name.focus(); <br /> return false; <br /> } <br /> if(! isChinese(form.cnname.value)) { <br /> alert("中文名不合法Q?); <br /> form.cnname.focus(); <br /> return false; <br /> } <br /> if(! isNumber(form.PublicZipCode.value)) { <br /> alert("邮政~码不合法!"); <br /> form.PublicZipCode.focus(); <br /> return false; <br /> } <br /> return true; <br /> } <br /> //--> <br /> </SCRIPT> <br /> <br /> 2.6 限定表单不能输入的字符 <br /> <br /> <script language="javascript"> <br /> <!-- <br /> <br /> function contain(str,charset)// 字符串包含测试函?<br /> { <br /> var i; <br /> for(i=0;i<charset.length;i++) <br /> if(str.indexOf(charset.charAt(i))>=0) <br /> return true; <br /> return false; <br /> } <br /> <br /> function CheckForm() <br /> { <br /> if ((contain(document.form.NAME.value, "%\(\)><")) || (contain(document.form.MESSAGE.value, "%\(\)><"))) <br /> { <br /> alert("输入了非法字W?); <br /> document.form.NAME.focus(); <br /> return false; <br /> } <br /> return true; <br /> } <br /> //--> <br /> </script></span> <img src ="http://www.tkk7.com/szhswl/aggbug/291529.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/szhswl/" target="_blank">宋针q?/a> 2009-08-17 18:00 <a href="http://www.tkk7.com/szhswl/articles/291529.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于Flex及AS3的百多条小知识http://www.tkk7.com/szhswl/articles/264012.html宋针q?/dc:creator>宋针q?/author>Sun, 05 Apr 2009 11:35:00 GMThttp://www.tkk7.com/szhswl/articles/264012.htmlhttp://www.tkk7.com/szhswl/comments/264012.htmlhttp://www.tkk7.com/szhswl/articles/264012.html#Feedback0http://www.tkk7.com/szhswl/comments/commentRss/264012.htmlhttp://www.tkk7.com/szhswl/services/trackbacks/264012.html

【改变输出swf的尺?背景颜色或频?nbsp;
?Navigator"H框里右键你的项?gt;选中"Properties">选中"ActionScript Compiler">?Additional compiler arguments"里输入你所需要的命o
如想改变背景颜色,误? -default-background-color 0xffffff 
【鼠标坐标?nbsp;
mouseX mouseY 
【检查变量类型ƈq回布尔倹{?nbsp;
is 
【检查变量类型ƈq回cd?nbsp;
typeof 
【检查对象类型ƈq回该对象?nbsp;
as 
【是数字但不是有效数字问题?nbsp;
var quantity:Number = 15 - "rabbits"; 
trace(typeof quantity); //昄: "number" , 但它是NaN (not a number) 
trace(quantity is Number); //true 
trace(quantity != NaN); //false 
//使用isNaN()函数? 
isNaN(quantity); //true 
//变量是否内含有效数? 
!isNaN(quantity); //false 
【取消默认的严格~译模式?nbsp;
?Navigator"H框里右键你的项?gt;选中"Properties">选中"ActionScript Compiler">取消"Enabel compile-time type checking"选项 
【基元数据类型和复杂数据cd好比"值类??引用cd"?nbsp;
基元数据cdcM按g? 
var intOne:int = 1; 
var intTwo:int = 1; 
trace(intOne == intTwo); //true 
【复杂数据类型类似按引用传递?nbsp;
var arrayOne:Array = new Array("a", "b"); 
var arrayTwo:Array = arrayOne; 
trace(arrayOne == arrayTwo); //true 
//----------------------------------- 
var arrayOne:Array = new Array("a", "b"); 
var arrayTwo:Array = new Array("a", "b"); 
trace(arrayOne == arrayTwo); //false 
【优化逻辑AND(&&)和OR(||)的小知识?nbsp;
对于逻辑And(&&): 
    除非条g表达式的前半部分为真,否则,ActionScript不会再去求算逻辑ANDq算W的后半?如果前半部ؓ?整个条g表达式一定ؓ?所以再L后半部没效率? 
对于逻辑OR(||): 
    除非条g表达式前半部为假,否则,ActionScript不会再去求算逻辑ORq算W的后半?如果前半部ؓ?整个条g表达式一定ؓ? 
ȝ:使用逻辑AND(&&)?把结果最可能为false的表辑ּ攑ֈ前面;使用逻辑OR(||)?把结果最可能为true的表辑ּ攑ֈ前面. 
【TimercL意事V?nbsp;
不要认ؓTimer可以极其准确;使用Timer旉间隔不要低于10毫秒. 
【private,protected,internal,public讉K权限?nbsp;
private:只能在类本n内部讉K,按惯?命名U有成员时以下划U?_"开? 
protected:可以q本n或Q何子c访?但这是以实例为基?换言?cd例可以访问自q保护成员或者父cȝ保护成员,但不能访问相同类的其它实例的保护成员,按惯?命名保护成员时以下划U?_"开? 
internal:可以q本n或者相同包内的Mc访? 
public:可以在类内部讉K,也可以由cd例访?或者声明ؓstatic?可以直接从类讉K. 
【一个函数具有未知个数的参数,用arguments对象?...(rest)"W号讉K它的参数?nbsp;
注意:使用"...(rest)"参数会 arguments 对象不可? 
private funciton average():void{ 
    trace(arguments.length); //输出参数的个?nbsp;
    // arguments的类型是:object,但可以像讉K数组一样去讉K?nbsp;
    trace(arguments[1]); //输出W二个参?nbsp;

private function average(...argu):void{ 
    trace(argu[1]); //输出W二个参?argu参数名是自定义的. 

【错误处理try,catch,finally?nbsp;
private function tryError():void{ 
    try { 
        trace("试开?try"); 
        throwError(); 
    }catch(errObject:Error) { 
        trace("错误信息:" + errObject.message); 
        trace("试l束-catch"); 
        return; 
    }finally{ 
        trace("虽然catch里已l有returnҎ,但位于returnҎ后面的finally里的代码依然会被执行.其实无论returnҎ是在try?q是catch?finally里的代码始终会被执行"); 
    } 
    trace("前面已经有return?此处是不会再执行?除非没有抛出错误,以catch里的代码没有被执?); 

private function throwError():void{ 
    throw new Error("抛出错误"); 

【for...in与for each...in的区别?nbsp;
与for...in循环不同的是,for each...in循环中的q代变量包含属性所保存的?而不包含属性的名称(或主?索引). 
【命名包路径的小技巧?nbsp;
    使用相应于拥有者和相关目的包名称会比较好.按惯例来?包名U的开头应该是逆向的网址名称.例如,如果Example Corp(examplecorp.com)写了一些ActionScript3.0c?׃把所有类攑֜com.examplecorp包内(或?com.examplecorp的子包内).如此一?如果英国有另一家Example Corp(examplecorp.co.uk)也写了一些ActionScript3.0c?只要使用包uk.co.examplecorp,可保 唯一? 
    当类属于特定应用E序的一部分?应该放在该应用E序特定的子包内.例如,Example Corp可能有个应用E序名叫WidgetStore.如果WidgetStore应用E序使用一个名为ApplicationManager的类,则此 cd应该攑֜com.examplecorp.widgetstore包内,或者位于该包的子包? 
    按惯例来?包名U的开头是写字母. 
【隐式的取出Ҏ(getter)和设定方?setter)?nbsp;
public function get count():uint { 
    return _count; 

public function set count(value:uint):uint { 
    if(value < 100){ 
        _count = value; 
    }else { 
        throw Error(); 
    } 

【确保类是绝不会有子c?使用final?nbsp;
final public class Example{} 
【super关键字的使用?nbsp;
super(); //父类的构造函?只能在类实例构造函数内部?nbsp;
super.propertyName; //调用父类的属?属性需要声明ؓpublic或protected 
super.methodName(); //调用父类的方?Ҏ需要声明ؓpublic或protected 
【徏立常?使用关键字const而不是var?nbsp;
static public const EXAMPLE:String = "example"; 
【检播攑֙版本?nbsp;
flash.system.Capabilities.version 
对于8.5版以前的MFlash Player版本,q种Ҏ都不适用. 
【判断客Lpȝ?nbsp;
flash.system.Capabilities.os 
【检播攑֙cd?nbsp;
flash.system.Capabilities.playerType 
可能的值有: 
"StandAlone"Q用于独立的 Flash Player 
"External"Q用于外部的 Flash Player 或处于测试模式下 
"PlugIn"Q用?Flash Player 览器插?nbsp;
"ActiveX"Q用?Microsoft Internet Explorer 使用?Flash Player ActiveX 控g 
【检系l语a?nbsp;
flash.system.Capabilities.language 
【判断用h否启用了IME(输入法编辑器)?nbsp;
flash.system.IME.enabled 
【检屏q的分L率?nbsp;
flash.system.Capabilities.screenResolutionX 
flash.system.Capabilities.screenResolutionY 
【把弹出H口居中的算法?nbsp;
X = (舞台?2)-(H口?2) 
Y = (舞台?2)-(H口?2) 
【控制媄片配合Player的方?包括~放问题?nbsp;
stage.scaleMode 
可供选择?flash.display.StageScaleMode 
【舞台的寚w方式?nbsp;
stage.align 
可供选择?flash.display.StageAlign 
【隐藏Flash Player的右键菜单?nbsp;
stage.showDefaultContextMenu = false; 
【检系l是否具有音频功能?nbsp;
flash.system.Capabilities.hasAudio 
【检播攑֙是在hMP3解码器的pȝ上运?q是在没有MP3解码器的pȝ上运行?nbsp;
flash.system.Capabilities.hasMP3 
【检播攑֙?(true) q是不能 (false) 播放式视频?nbsp;
flash.system.Capabilities.hasStreamingVideo 
【检播攑֙是在支持 (true) 嵌入视频的系l上q行Q还是在不支?(false) 嵌入视频的系l上q行?nbsp;
flash.system.Capabilities.hasEmbeddedVideo 
【检播攑֙?(true) q是不能 (false) 对视频流Q如来自 Web 摄像头的视频)q行~码?nbsp;
flash.system.Capabilities.hasVideoEncoder 
【显C?Flash Player 中的"安全讄"面板?nbsp;
flash.system.Security.showSettings(); 
可供选择?flash.system.SecurityPanel 
【让其它域的.swf讉K本域?swf?nbsp;
在本域的.swf文g里加?flash.system.Security.allowDomain() 
或者用安全策略文?crossdomain.xml".在Flash 8以前,q个文g必须攑֜.swf所在域的根目录,现在,你可以用flash.system.Security.loadPolicyFile(),?定安全策略文件所在的位置.拒绝M域的做法是在<cross-domain-policy>标签内什么也不填,安全{略文g也支持通用字符 "*": 
<?xml version="1.0"?> 
<!-- http://www.mydomain.com/crossdomain.xml --> 
<cross-domain-policy> 
    <allow-access-from domain="www.riahome.cn" /> 
    <allow-access-from domain="*.Y-boy.cn" /> 
    <allow-access-from domain="210.38.196.48" /> 
    <allow-access-from domain="*" /> 
</cross-domain-policy> 
【数字的不同q制之间的{换?nbsp;
parseInt(str:String, radix:uint = 0):Number q回十进制的?参数radix表示要分析的数字的基?如果省略radix,默认ؓ10,除非字符串的开头是"0x","0X"?0": 
trace(parseInt("0x12")); //讑֮radix?6,输出:18 
trace(parseInt("017")); //讑֮radix?,输出:15 
或者用Number,uint和int对象的toString(radix)Ҏ. 
【用Math.round()对一个数取整,四舍五入?nbsp;
Math.round() 
trace(Math.round(204.499)); //输出:204 
trace(Math.round(401.5)); //输出:402 
【用Math.floor()对一个数向下取整,是只要整数部分而不理会数分?nbsp;
trace(Math.floor(204.99)); //输出:204 
【用Math.ceil()对一个数向上取整,只要数部分不ؓ?整数部分加1?nbsp;
trace(Math.ceil(401.01)); //输出:402 
【生一个随机数?nbsp;
使用Math.random()产生一个伪随机数n,其中 0 <= n < 1 
【把数字取至最q的数点位,x定精度?nbsp;
1. 军_你要取的数字的小数点位数:例如,如果你想?0.337取成90.34,pCZ要取C位小数点?也就是说你想取至最q的0.01; 
2. 让输入值除以步?所选的数字(此例?.01); 
3. 使用Math.round()把步?所计得的值取成最q的整数; 
4. 把步?所得的l果乘以步骤2用于除法的那个? 
例如,要把90.337取成两个数点位?可以使用: 
trace(Math.round(90.337/0.01)*0.01); //输出:90.34 
【把数字取成一个整数的最接近倍数倹{?nbsp;
?,q样会把92.5取成5的最q倍数? 
trace(Math.round(92.5/5)*5); //输出:95 
?,q样会把92.5取成10的最q倍数? 
trace(Math.round(92.5/10)*10); //输出:90 
【在指定数D围内获得随机数?nbsp;
//可取范围:[min, max] 
private function randRange(min:Number, max:Number):Number { 
    var randomNum:Number = Math.floor(Math.random() * (max - min + 1)) + min; 
    return randomNum; 

应用例子: 
模拟投银?卛_望得到随机布?true ?false): randRange(0, 1); 
模拟投骰?卛_望得到随机六个? randRange(1, 6); 
为避免被~存而需要生一个独一无二的数字追加在URL,通常最x法是取得当前毫秒? 
【弧?radian)与度?degree)之间的{换?nbsp;
从弧度{为度? degrees = radians * 180 / Math.PI 
从度数{为弧? radians = degrees * Math.PI / 180 
【计两点之间的距离?nbsp;
勾股定理: c2 = a2 + b2 
假设有两个媄片剪辑mc1和mc2,则它们两炚w的距c? 
var c:Number = Math.sqrt(Math.pow(mc1.x - mc2.x, 2) + Math.pow(mc1.y - mc2.y, 2)); 
【模拟圆周运动?nbsp;
已知圆心o(x0, y0),半径r和弧度angle,求圆上Q意一点P(x, y)的坐? 
x = x0 + (Math.cos(angle) * r); 
y = y0 + (Math.sin(angle) * r); 
注意:舞台的x轴正方向水^向右,y轴正方向垂直向下. 
【模拟椭圆运动?nbsp;
已知圆心o(x0, y0),长ua,短ub以及弧度angle,求圆上Q意一点P(x, y)的坐? 
x = x0 + (Math.cos(angle) * a); 
y = y0 + (Math.sin(angle) * b);

【华氏温度和摄氏温度之间的{换?nbsp;
华氏温度 = 摄氏度数 * 9 / 5 + 32 
摄氏温度 = (华氏度数 - 32) * 5 /9 
【公斤与之间的转换?nbsp;
公斤 = ?* 2.2 
?= 公斤 / 2.2 
【向数组d元素?nbsp;
var array:Array = new Array(); 
array.push("a", "b"); 
//向数l尾端添加单一元素也可以这? 
array[array.length] = "c"; 
//如果以烦引设定的元素不存?数组本n会自动扩展以包含_的元素数?介于中间的元素会被设为undefined: 
array[5] = "e"; 
trace(array[4]); //输出: undefined 
【向数组开端添加元素?nbsp;
var array:Array = ["a", "b"]; 
array.unshift("c", "d"); 
trace(array); //输出: c,d,a,b 
【删除数l中W一个元素ƈq回该元?使用shift()Ҏ?nbsp;
var letters:Array = new Array("a", "b", "c"); 
var firstLetter:String = letters.shift(); 
trace(letters); //输出: b,c 
trace(firstLetter); //输出: a 
【删除数l中最后一个元素ƈq回该元素的?使用pop()Ҏ?nbsp;
var letters:Array = new Array("a", "b", "c"); 
trace(letters); //输出: a,b,c 
var letter:String = letters.pop(); 
trace(letters); //输出: a,b 
trace(letter); //输出: c 
【删除数l中的元?l数l添加新元素q返回删除的元素,使用splice()Ҏ?nbsp;
splice(startIndex:int, deleteCount:uint, ... values):Array 
startIndex: 一个整敎ͼ它指定数l中开始进行插入或删除的位|处的元素的索引; 
deleteCount: 一个整敎ͼ它指定要删除的元素数? 
... values: 用逗号分隔的一个或多个值的可选列表或数组Q此列表或数l将插入到此数组中由 startIndex 参数指定的位|? 
【查找数l中W一个相匚w的元素?nbsp;
var array:Array = ["a", "b", "c", "d", "a", "b", "c", "d"]; 
var match:String = "b"; 
for(var i:int = 0; i < array.length; i++) { 
    if(array[i] == match) { 
        trace("Element with index " + i + " found to match " + match); 
        //输出: Element with index 1 found to match b 
        break; 
    } 

【查找数l中最后一个相匚w的元素?nbsp;
var array:Array = ["a", "b", "c", "d", "a", "b", "c", "d"]; 
var match:String = "b"; 
for(var i:int = array.length - 1; i >= 0; i--) { 
    if(array[i] == match) { 
        trace("Element with index " + i + " found to match " + match); 
        //输出: Element with index 5 found to match b 
        break; 
    } 

【把字符串{成数l?nbsp;
使用String.split()Ҏ: 
var list:String = "I am YoungBoy."; 
var words:Array = list.split(" "); //以空g为分隔符字W串切割 
trace(words); //输出: I,am,YoungBoy. 
【把数组转成字符丌Ӏ?nbsp;
使用String.join()Ҏ: 
var myArr:Array = new Array("one", "two", "three"); 
var myStr:String = myArr.join(" and "); 
trace(myArr); //输出: one,two,three 
trace(myStr); //输出: one and two and three 
【用对象数l处理相x据?nbsp;
var cars:Array = new Array(); 
cars.push({make:"Mike", year:1997, color:"blue"}); 
cars.push({make:"Kelly", year:1986, color:"red"}); 
for(var i:int = 0; i < cars.length; i++) { 
    trace(cars[i].make + " - " + cars[i].year + " - " + cars[i].color); 

//输出: 
//     Mike - 1997 - blue 
//     Kelly - 1986 - red 
【在数组中获取最或最大倹{?nbsp;
var scores:Array = [10, 4, 15, 8]; 
scores.sort(Array.NUMERIC); 
trace("Minimum: " + scores[0]); 
trace("Maximum: " + scores[scores.length - 1]); 
【用for ... in语句d兌数组元素?nbsp;
var myObject:Object = new Object(); 
myObject.name = "YoungBoy"; 
myObject.age = 20; 
for(var i:String in myObject) { 
    trace(i + ": " + myObject[i]); 

//输出: name: YoungBoy 
//      age: 20 
注意: for ... in循环不会昄对象所有的内徏属?例如,循环会显C执行期间新增的Ҏ属?但是,不会列出内徏对象的方?即都是储存在对象属性内. 
【AVM(ActionScript Virtual Machine,虚拟?和渲染引?Rendering Engine)?nbsp;
AVM负责执行ActionScriptE序,而渲染引擎则是把对象l制在显C器? 
【指出容器的昄清单中有多少昄对象?nbsp;
每个容器都有numChildren属? 
【把目新增xC清单?nbsp;
addChild(child:DisplayObject) 
addChildAt(child:DisplayObject, index:int) 
index: d该子的索引位置.如果指定当前占用的烦引位|?则该位置以及所有更高位|上的子对象会在子列表中上UM个位|? 
【从昄清单中移除项目?nbsp;
removeChild(child:DisplayObject) 
removeChildAt(index:int) 
index: 要删除的 DisplayObject 的子索引,该子之上的M昄对象的烦引位|都减去1. 
如果想移除窗口所有子元g,可以l合removeChildAt(),numChildren属性以及for循环.因ؓ每次一个子元g被移除时,索引位置都会变化,所?有两U方法可以处理所有子元g的移? 
1. LU除位置0的子元g; 
2. 倒过来移除子元g,也就是从开? 
【更改现有子在昄对象容器中的位置?nbsp;
setChildIndex(child:DisplayObject, index:int):void 
可能用到的方? 
q回 DisplayObject ?child 实例的烦引位|? getChildIndex(child:DisplayObject):int 
q回位于指定索引处的子显C对象实? getChildAt(index:int):DisplayObject 
注意: 当子元gUd低于它现在所在位|的索引?那么,从标的烦引v,直到子元件烦引前面的那个索引的所有子元g都会令其索引增加1,而该子元件就会指定至标的 索引.当子元gUd较高索引?从该子元件烦引之上的那个索引?直到标的索引的所有子元g都会令其索引往下减1,而该子元件就会指定至标的索引? 
【关于TextField以垂直方式把文字摆在按钮表面中心点的技巧?nbsp;
textField.y = (_height - textField.textHeight) / 2; 
textField.y -= 2; //?个像素以调整偏移?nbsp;
【外?swfq载入和互动?nbsp;
1. 监听init事g; 
2. 透过content属性存取所载入的媄? 
当所载入的媄片做好够的初始化工?使其Ҏ和属性可以接受互动时,init事g׃被发?只有在蝲入器发vinit事g?才能控制q.所载入的媄片还没初始化p着与它互动,是会产生执行期间错误? 
_loader.contentLoaderInfo.addEventListener(Event.INIT, handleInit); //当蝲入的.swf的属性和Ҏ可用?nbsp;
_loader.load(new URLRequest("ExternalMovie.swf")); 
private function handleInit(event:Event):void { 
    var movie:* = _loader.content; 
    trace(movie.getColor()); 
    movie.setColor(0xFF0000); 

【TextField有两U类?动?dynamic)和输?input),默认gؓ动?改变TextFieldcdҎ?nbsp;
field.type = TextFieldType.INPUT; //selectable属性默认gؓtrue 
flash.text.TextFieldType.INPUT和flash.text.TextFieldType.DYNAMIC 
【过滤文字输入?nbsp;
TextField.restrict = "此处为可输入的内?; 
field.restrict = "^此处为禁止输入的内容"; 
restrict属性支持一些类似正则表辑ּ的样? 
field.restrict = "a-zA-z"; //只允许大字?nbsp;
field.restrict = "a-zA-z "; //只允许字母和I格 
field.restrict = "0-9"; //只允许数?nbsp;
field.restrict = "^abcdefg"; //除了写字母abcdefg不允许外,其它都允?nbsp;
field.restrict = "^a-z"; //所有小写字母都不允?但是,其它内容都允?包括大写字母 
field.restrict = "0-9^5"; //只允许数??例外 
让restrict字符包含hҎ意义的字?例如-和^): 
field.restrict = "0-9\\-"; //允许数字和破折号 
field.restrict = "0-9\\^"; //允许数字和^ 
field.restrict = "0-9\\\\"; //允许数字和反斜杠 
你也可以使用Unicode转义序列,指定允许的内?例如: 
field.restrict = "^\u001A"; 
注意:ActionScript有区分大写?如果restrict属性设为abc,允许字母的大写Ş?A,B和C)输入时会变成写对待形式(a,b和c),反之亦然.restrict属性只影响用户可以输入的内?脚本可将M文本攑օ文本字段? 
【设定输入框的最大长度?nbsp;
TextField.maxChars:int 
【向TextFieldq加内容?nbsp;
TextField.appendText(text:String):void 
与通过?text 属性用加法赋值来q接两个字符?例如 field.text += moreText)相比,此方法的效率更高. 
【显CHTML格式的文字?nbsp;
TextField.htmlText = "<b>Html text</b>"; 
支持的HTML标签集有: <b>,<i>,<u>,<font>(有face,size以及color属?,< p>,<br>,<a>,<li>,<img>以及<textformat>(?leftmargin,rightmargin,blockindent,indent,leading以及tabstops属?相应?TextFormatcȝ同名属? 
【羃减空白?nbsp;
TextField.condenseWhite = true; 
删除hHTML文本的文本字D中的额外空?I格,换行W等),如同多数HTML览器所做的那样. 
注意: 在设|?htmlText 属性之前设|?condenseWhite 属?nbsp;
【自动大调整和寚w?nbsp;
TextField.autoSize = TextFieldAutoSize.LEFT; 
可选之? 
flash.text.TextFieldAutoSize.CENTER 
flash.text.TextFieldAutoSize.LEFT 
flash.text.TextFieldAutoSize.NONE 
flash.text.TextFieldAutoSize.RIGHT 
【指C文本字D|否自动换行?nbsp;
TextField.wordWrap = true; //自动换行 
【用E序手段滚动文字?nbsp;
水^方向以像素ؓ单位,而垂直方向以行做单位: 
scrollV: 指出文字框可见区域的最行,可读? 
bottomScrollV: 指出文字框内最底端可见?只读; 
maxScrollV: scrollV的最大?只读; 
numLines: 定义多行文本字段中的文本行数,只读; 
TextField.scrollV = field.maxScrollV; //滚动到最后一?nbsp;
【响应滚动事件?nbsp;
field.addEventListener(Event.SCROLL, onTextScroll); 
【样式化文字的方法?nbsp;
1. 使用HTML标签q行样式? 
2. 使用TextFormat对象; 
3. 使用CSS. 
例如: HTML是用<font>标签,TextFormat对象是设定font属?而CSS是用font-family属性的. 
受支持的层叠样式?CSS)属性和?及其相应的ActionScript属性名U?括号内): 
color(color),display(display),font-family(fontFamily),font-size(fontSize),font-style(fontStyle),font-weight(fontWeight),kerning(kerning),leading(leading),letter-spacing(letterSpacing),margin-left(marginLeft),margin-right(marginRight),text-align(textAlign),text-decoration(textDecoration),text-indent(textIndent) 
受支持的HTML实体: <(于? <), >(大于? >), &(? &), "(双引? "), '(撇号,单引? &apos;) 
其中样式对象的两U写? 
写法一: 
var sampleStyle:Object = new Object(); 
sampleStyle.color = "#FFFFFF"; 
sampleStyle.textAlign = "center"; 
css.setStyle(".sample", sampleStyle); 
写法? 
var sampleStyle:Object = {color: "#FFFFFF", textAlign: "center"}; 
css.setStyle(".sample", sampleStyle); 
【对用户输入的文字进行样式化?nbsp;
使用defaultTextFormat属?样式会施加至用户键入输入框的文字w上: 
var formatter:TextFormat = new TextFormat(); 
formatter.color = 0x0000FF; //把文字变成蓝?nbsp;
field.defaultTextFormat = formatter; 
【对现有文字的一部分q行样式化?nbsp;
TextFormat.setTextFormat(format:TextFormat, beginIndex:int = -1, endIndex:int = -1):void 
【设定文字框的字体?nbsp;
例子: 
HTML: field.htmlText = "<font face='Arial'>Formatted text</font>"; 
TextFormat: formatter.font = "Arial"; 
CSS: P{ font-family: Arial; } 
也可以用以逗号隔开的字体清? formatter.font = "Arial, Verdana, Helvetica"; 
注意: 
字体和字体群l不?字体组有三U? _sans,_serif以及_typewriter. 
_sans组一般就是指Arial或Helveticaq种字体; 
_serif组一般就是指Times或Times New Romanq种字体; 
_typewriter组一般就是指Courier或Courier Newq种字体. 
【嵌入字体?nbsp;
使用[Embed]后设标签.[Embed]后设标签应该出现在ActionScript文g?处于cd告之?你可以内嵌TrueType字体或系l字?内嵌TrueType字体时的语法: 
[Embed(source="pathToTtfFile", fontName="FontName", mimeType="application/x-font-truetype")] 
pathToTtfFile: ttf文g的\?TrueType字体的\径可以是相对?也可以是l对? 
FontName: 字体名称; 
内嵌pȝ字体的语? 
[Embed(systemFont="Times New Roman", fontName="Times New Roman", mimeType="application/x-font-truetype")] 
fontName: 以相同名UC为实际系l字体名U? 
注意: 在用嵌入字体时,要把TextField的embedFonts属性设为true,q样TextField只能用内嵌字体了.如果你试着?embedFonts设ؓtrue的TextField使用讑֤字体,什么都不会昄.如果embedFonts设ؓtrue,无法指定以逗号盔R的字 体清? 
【徏立可以旋转的文字?nbsp;
使用内嵌字体.当你旋{文字框时,讑֤字体׃消失. 
【显CUnicode文字?nbsp;
1. 从外部来源蝲入Unicode文字; 
2. 假如你的~辑器支持Unicode(?Flex Builder),则可以直接在ActionScriptE序中用该字符; 
3. 使用Unicode转义字符,ActionScript里所有Unicode转义字符都以\u开?后面再跟四位十六q制数字. 
注意: 如果你想取得Unicode字符,在Windows下? 开?gt;所有程?gt;附g>pȝ工具>字符映射? 
【把Flash Player的焦点带l文字框?nbsp;
stage.focus = field; 
把焦点移? 
stage.focus = null; 
注意: ?swf文g首次载入至网|览器?q没有焦?因此,以程序的方式把焦Ҏ定给Flash应用E序的一个元素前,必须先把焦点U至Flash Player. 
【以ActionScript选取文字?nbsp;
使用TextField.setSelection(beginIndex:int, endIndex:int):void 
Z可以正常选取文字,文字框必d有焦? 
stage.focus = field; //把焦点设l文字框 
field.text = "This is example text"; //讑֮文字 
field.setSelection(0, 4); //?This"q个单词以高亮显C?nbsp;
使用只读的selectionBeginIndex和selectionEndIndex属性访问所选取的字W范围的索引. 
【在文字内设定安插点(游标位置)q访问游标位|的索引倹{?nbsp;
可以使用TextField.setSelection()把v始和l尾的烦引参数都设成相同?在文字内讑֮游标位置(假设h焦点): 
field.setSelection(0, 0); //在第一个字W前摆放安插?nbsp;
trace(field.caretIndex); //输出游标位置的烦引?/p>

 

本文转自:http://hi.baidu.com/honfei/blog/item/df5d1e945a7b441bd31b7045.html



]]>
驯服Tiger之线E中的默认异常处??http://www.tkk7.com/szhswl/articles/251578.html宋针q?/dc:creator>宋针q?/author>Fri, 16 Jan 2009 07:16:00 GMThttp://www.tkk7.com/szhswl/articles/251578.htmlhttp://www.tkk7.com/szhswl/comments/251578.htmlhttp://www.tkk7.com/szhswl/articles/251578.html#Feedback0http://www.tkk7.com/szhswl/comments/commentRss/251578.htmlhttp://www.tkk7.com/szhswl/services/trackbacks/251578.html
  虽然我们不想创徏在无法预期时抛出q行时异常的E序Q但q种情况q是会发生——尤其是W一ơ运行复杂程序时。通常是用默认行为、打印堆栈溢出和l束U程的生命来处理q些异常?

  从哪里发现默认行为?每个U程都属于一个由 java.lang.ThreadGroup c表C的U程l。顾名思义Q线E组允许您将U程l合在一赗您可能是ؓ了方便而将U程l合Q例如,一个线E池中的所有线E都属于l?XQ而另一个池的所有线E则属于l?YQ或者是Z讉K控制而将U程q行l合。组 X 中的U程无权讉K或改变组 Y 中的U程Q除非它们都在同一U程l内Q或在一个子l内Q?

  ?Tiger 之前Q?ThreadGroup cL供了一U处理未捕获异常的方法: ThreadGroup ?uncaughtException() Ҏ。如果异怸?ThreadDeath Q则线E的名称和堆栈回溯(stack backtraceQ发送到 System.err 。但?Tiger d了另一U方法: Thread.UncaughtExceptionHandler 接口。细?ThreadGroup 或安装该新接口的实现都允许您更改默认行ؓ。我们将?Tiger 之前和之后提供的Ҏ都进行研I?

  使用 ThreadGroup 的定制行?/strong>

  发生未捕L异常Ӟ默认行ؓ是将堆栈溢出打印输出到系l错误( System.err Q中Q如清单 1 中所C。不需要用Q何命令参数来启动E序?

  清单 1. U程溢出CZ

public class SimpleDump {
 public static void main(String args[]) {
  System.out.println(args[0]);
 }
}

  不用Q何参数运行该E序生成清?2 中的输出。尽它不是一个很长的堆栈跟踪Q但它是一个完整的堆栈跟踪?br />
  清单 2. 默认U程溢出输出

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
at SimpleDump.main(SimpleDump.java:3)

  正如 Java q_的许多东西一P如果不喜Ƣ默认行为,您可以对其进行更攏V在 Java q_?Tiger 版以前的版本中,不能替代所有线E的默认行ؓQ但是可以创Z个新?ThreadGroup Qƈ更改在该l内创徏的Q何线E的默认行ؓ。您可以重写 uncaughtException(Thread t, Throwable e) Ҏ来定制该行ؓ。然后,当发生未预料的运行时异常Ӟ该线E组内创建的MU程都将获得新的行ؓ。不q,最好是修复基础问题Q我提供一个简单的CZQ说明更攚w认行为所必需的步骤。清?3 展示了将执行代码攑օ新线E的调整q的试E序Q?

  清单 3. 调整q的U程溢出CZ

public class WindowDump {
 public static void main(String args[]) throws Exception {
  ThreadGroup group = new LoggingThreadGroup("Logger");
  new Thread(group, "myThread") {
   public void run() {
    System.out.println(1 / 0);
   }
  }.start();
 }
}

  LoggingThreadGroup cL一个新的内容,清单 4 中显CZ它的定义。ؓ了进行说明,通过重写 uncaughtException() Ҏ实现的特D行为将在一个弹出窗口中昄该异常,q项操作是在Ҏ Handler 的帮助下使用 Java Logging API 来完成的?

  清单 4. LoggingThreadGroup 的定?br />
import java.util.logging.*;

public class LoggingThreadGroup extends ThreadGroup {
 private static Logger logger;
 public LoggingThreadGroup(String name) {
  super(name);
 }
 public void uncaughtException(Thread t, Throwable e) {
  // Initialize logger once
  if (logger == null) {
   logger = Logger.getLogger("example");
   Handler handler = LoggingWindowHandler.getInstance();
   logger.addHandler(handler);
  }
  logger.log(Level.WARNING, t.getName(), e);
 }
}

  q里创徏的定?Handler 的类型ؓ LoggingWindowHandler Q该cd的定义在清单 5 中。处理程序用了一个支持类 LoggingWindow Q该cd异常昄在屏q上?清单 6 中显CZ该类的定义?Handler ?public void publish(LogRecord record) Ҏ实现了一些重要操作。其余操作大部分只与配置有关?

  清单 5. LoggingWindowHandler 的定?br />
import java.util.logging.*;

public class LoggingWindowHandler extends Handler {
 private static LoggingWindow window;
 private static LoggingWindowHandler handler;

 private LoggingWindowHandler() {
  configure();
  window = new LoggingWindow("Logging window...", 400, 200);
 }

 public static synchronized LoggingWindowHandler getInstance() {
  if (handler == null) {
   handler = new LoggingWindowHandler();
  }
  return handler;
 }

 /**
 * Get any configuration properties set
 */
 private void configure() {
  LogManager manager = LogManager.getLogManager();
  String className = getClass().getName();
  String level = manager.getProperty(className + ".level");
  setLevel((level == null) ? Level.INFO : Level.parse(level));
  String filter = manager.getProperty(className + ".filter");
  setFilter(makeFilter(filter));
  String formatter = manager.getProperty(className + ".formatter");
  setFormatter(makeFormatter(formatter));
 }

 private Filter makeFilter(String name) {
  Filter f = null;
  try {
   Class c = Class.forName(name);
   f = (Filter)c.newInstance();
  } catch (Exception e) {
   if (name != null) {
    System.err.println("Unable to load filter: " + name);
   }
  }
  return f;
 }

 private Formatter makeFormatter(String name) {
  Formatter f = null;
   try {
    Class c = Class.forName(name);
    f = (Formatter)c.newInstance();
   } catch (Exception e) {
    f = new SimpleFormatter();
   }
   return f;
  }

  // Overridden abstract Handler methods

  public void close() {
  }

  public void flush() {
 }

 /**
 * If record is loggable, format it and add it to window
 */
 public void publish(LogRecord record) {
  String message = null;
  if (isLoggable(record)) {
   try {
    message = getFormatter().format(record);
   } catch (Exception e) {
   reportError(null, e, ErrorManager.FORMAT_FAILURE);
   return;
  }
 try {
  window.addLogInfo(message);
 } catch (Exception e) {
  reportError(null, e, ErrorManager.WRITE_FAILURE);
 }
}
}
}                            

  清单 6. LoggingWindow 的定?br />
import java.awt.*;
import javax.swing.*;

public class LoggingWindow extends JFrame {
 private JTextArea textArea;
 
 public LoggingWindow(String title, final int width,
 final int height) {
  super(title);
  EventQueue.invokeLater(new Runnable() {
   public void run() {
    setSize(width, height);
    textArea = new JTextArea();
    JScrollPane pane = new JScrollPane(textArea);
    textArea.setEditable(false);
    getContentPane().add(pane);
    setVisible(true);
   }
  });
 }  

 public void addLogInfo(final String data) {
  EventQueue.invokeLater(new Runnable() {
   public void run() {
    textArea.append(data);
   }
  });
 }
}

  执行 清单 3 中的 WindowDump E序出现屏q。因为没有从 Logger 中删除控制台处理E序Q所以堆栈溢Z出现在控制C?

  发生q行时异常时Q可能要做许多工作来更改发生的问题。该代码的大部分都是 Logging HandlerQ但是,要执行更改,必ȝ?ThreadGroup Q重?uncaughtException() Q然后在该线E组中执行您的线E。不q,让我们通过只安?Thread.UncaughtExceptionHandler Q来看一?Tiger 的处理方式?

  使用 UncaughtExceptionHandler 的定制行?/strong>

  对于 TigerQ?Thread cd义中d了一个新的公共内部类 UncaughtExceptionHandler Q更完整的名UCؓ Thread.UncaughtExceptionHandler Q其他类讉K内部cL需要用完整名Uͼ。接口的定义是一个方法,如图 7 中所C:

  清单 7. UncaughtExceptionHandler 的定?br />
public interface Thread.UncaughtExceptionHandler {
 public void uncaughtException(Thread, Throwable);
}

  您可能没有注意到Q清?7 中的Ҏ与我们前面重写的 ThreadGroup 的方法相同。实际上Q现在由 ThreadGroup cd现该接口?

  新的内部cd以帮助我们了解下列两ҎҎQƈ有助于我们在 Thread 中用它们:

getUncaughtExceptionHandler() ?setUncaughtExceptionHandler() ?
getDefaultUncaughtExceptionHandler() ?setDefaultUncaughtExceptionHandler() ?/td>

  W一Ҏ法是 getUncaughtExceptionHandler() ?setUncaughtExceptionHandler() Q它们允许您为当前线E及其后代定制行为,从而允怺十或更多的线E拥有自q定制行ؓ。不q,您更可能使用W二Ҏ?getDefaultUncaughtExceptionHandler() ?setDefaultUncaughtExceptionHandler() 。如果用第二对Ҏ讄默认处理E序Q那么没有自q异常处理E序的所有线E都用默认处理程序?

  听v来好像很单。ؓ了进行说明,清单 8 转换?清单 3 中的 ThreadGroup 友好的程序,使用新的 UncaughtExceptionHandler 接口Q?

清单 8. UncaughtExceptionHandler CZ

public class HandlerDump {
 public static void main(String args[]) throws Exception {
  Thread.UncaughtExceptionHandler handler = new LoggingThreadGroup("Logger");
  Thread.currentThread().setUncaughtExceptionHandler(handler);
  System.out.println(1 / 0);
 }
}

  该程序只是将 LoggingThreadGroup 重用?UncaughtExceptionHandler Qƈ没有创徏新的处理E序实现。请注意Q与原来的代码相比,C码要z得多?

  其他U程更改

  Thread cM仅支持?Tiger d的未捕获异常处理E序Q它q支持?getAllStackTraces() 获得所有有效线E的堆栈跟踪Q或者支持?getStackTrace() 来只获得当前U程的堆栈跟t。这两种堆栈跟踪都返回类型ؓ java.lang.StackTraceElement 的对象, java.lang.StackTraceElement ?Java 1.4 q_中添加的一个类Q它可以让您生成自己的堆栈跟t。同ӞJava 5 q_新添加的功能是一个惟一U程标识W(可以使用 getId() 获得该标识符Q和一个新?Thread.State c,以及与该cȝ关的 getThreadState() Ҏ。最后一个线E更Ҏ一个状态枚举表Q该表是用来监视pȝ状态,而不是用来同步状态的?

  l束?/strong>

  像添加未捕获的异常处理程序这L单库更改Q可以极大地增加原代码的可理解性。虽然在U程l别上Q新的库代码的功能与原来库代码的相同Q但新模型中的易用性和灉|性远q超Z代码调整ؓ更新的方式所需的时间。当Ӟ老方法仍然可以用,但最好将代码更新为最新的库功能?

]]>
sqlserver 2000 常用函数http://www.tkk7.com/szhswl/articles/251137.html宋针q?/dc:creator>宋针q?/author>Tue, 13 Jan 2009 08:14:00 GMThttp://www.tkk7.com/szhswl/articles/251137.htmlhttp://www.tkk7.com/szhswl/comments/251137.htmlhttp://www.tkk7.com/szhswl/articles/251137.html#Feedback0http://www.tkk7.com/szhswl/comments/commentRss/251137.htmlhttp://www.tkk7.com/szhswl/services/trackbacks/251137.html阅读全文

]]>
glassfish数据库连接池备䆾日志http://www.tkk7.com/szhswl/archive/2008/12/24/248164.html宋针q?/dc:creator>宋针q?/author>Wed, 24 Dec 2008 14:42:00 GMThttp://www.tkk7.com/szhswl/archive/2008/12/24/248164.htmlhttp://www.tkk7.com/szhswl/comments/248164.htmlhttp://www.tkk7.com/szhswl/archive/2008/12/24/248164.html#Feedback0http://www.tkk7.com/szhswl/comments/commentRss/248164.htmlhttp://www.tkk7.com/szhswl/services/trackbacks/248164.html Q,sqlserver 2000(打了sp4补丁?的数据库q接池的配置?br />         配置的时候出C一些问题,在网上找了资料,最后还是比较顺利地一一解决。在glassfish的安装目录:%glassfish_home%\lib\install\templates\resoures\jdbc文g夹下Q有各个数据库的q接池的配置说明Q随侉K了一个:microsoft_sqlserver2000_datasource.xmlQ查看里面内定w配置Q?br />         <property name="user" value="DB_USER"/>
        <property name="password" value="DB_PASSWORD"/>
        <property name="selectMethod" value="direct"/>
        <property name="serverName" value="DB_HOSTNAME"/>
        <property name="portNumber" value="1433"/>
        <property name="databaseName" value="DATABASE_NAME"/>
如下图:

Ҏ配置文g里说明:
        datasource-classname="com.microsoft.jdbcx.sqlserver.SQLServerDataSource"
        res-type="javax.sql.DataSource"
如下图:

q里注意的是Q需要连接驱动jar包三个,攑֜%glassfish_home%\lib下:
msbase.jar、mssqlserver.jar、msutil.jar
然后点击ping按钮Q测试连接是否成功,如果如上配置Qsqlserver已经启动Q则如下图:

q有是sqlserver的n份验证得为؜合模式,如下图:

不然如上配|在pingӞ会报用户"sa"dp|Q未与信任SQL Serverq接相关联,如下图:

Q,mysql 5.1的数据库q接池的配置?br /> 配置比较利Q查看mysql_type4_datasource.xml配置文gQ?br />         <property name="user" value="DB_USER"/>
        <property name="password" value="DB_PASSWORD"/>
        <property name="url" value="jdbc:mysql://DB_HOSTNAME:3306/DATABASE_NAME"/>
不过偶这里采用了另外的配|方式,如下图:

q且Q?br />         datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
        res-type="javax.sql.DataSource">
如下图:

而且?glassfish_home%\lib下放mysqlq接驱动Q?br /> mysql-connector-java-5.0.8-bin.jar
然后点击ping按钮Q测试连接是否成功,如果如上配置Qmysql已经启动Q则如下图:



]]>
Python, Ruby ?GroovyQ谁与争锋?(? http://www.tkk7.com/szhswl/articles/244867.html宋针q?/dc:creator>宋针q?/author>Sun, 07 Dec 2008 06:40:00 GMThttp://www.tkk7.com/szhswl/articles/244867.htmlhttp://www.tkk7.com/szhswl/comments/244867.htmlhttp://www.tkk7.com/szhswl/articles/244867.html#Feedback0http://www.tkk7.com/szhswl/comments/commentRss/244867.htmlhttp://www.tkk7.com/szhswl/services/trackbacks/244867.html随着计算机硬件的快速发展,10q前因ؓ速度问题而被诟病的Java现在成了计算机流a语言中的老大Q但是它却仍被认为复杂笨重,q几q来动态语a却有后来赶上的趋势,掌握一门动态语a成了E序员需要考虑的事宜?q期接触了几U流行的动态语aPython, Ruby, GroovyQ它们相比静态语aJava/C++来说Q大为简单,灉|Q省Ӟ那么选择何种语言Q?尝三种语言后,写下此文Q作为在JavaEye留的W一爪?

从TIOBE|站的语a排名可以看出Q比?000?008q_Java ?0%跌到20%左右, C++?8%跌到11Q, 静态语a?2%占有率降C60%; 动态语a?7%升到40%Q其中Python?%?%, Ruby?< 1%?.5%。PHP?%长到11%?以上数据为大U估?

从企业界角度看,语言的流行性与以个几点有关Q?

1)  成熟的库(library)
   Python的库非常多, Groovy可以调用强大的Java所有的库,ruby差些Q但是正在赶上?

2) 行框架
  如果某种语言有个行框架Q那p吸引q来很多使用者。Ruby on Rail是杀手框架。Python 框架很多Q但是目前尚没有特别H出的。Groovyq年轻,只有个GrailsQ但是可以利用JAVA已有的框架如SPRING HIBERNATE?

3) 行E序
   如果某个行E序使用了某语言Q那么这U语a不可必免会被多h使用。比如iPhone的出C一U可能没多少人听说过?Cocoa热了hQ因Zh们用它编写在iPhone上运行的手机E序。这三种动态语a中Python在图象处理,或科学计界已占有一席之地。Ruby可能落后一些,Groovy几乎没有。JavaEye

4) 企业界的們֐
市场通常会們֐于简单好用省时省力,易于使用l护Q稳定,能承受大负荷(scalable)的语aQ这也是JAVA的流行性当时超qCQ?的原因,q三个语a比静态语a都简单,其中Python׃其语法和句法单,所以可能是最好维护,而且能够承受高负?Youtube每天C点击)QRUBY 有些语法也能使程序写得很单,Ml护上比Python感觉差了一点,让其他h看程序可能不是非常直接易懂,性能上目前也差些。Groovy 模仿了大量RUBYQ也借鉴了少量Python文法Q由于在JVM上运行,性能上应该是不错的?

5)对硬件的利用
对着双核的出玎ͼ可以预料双核Q四核,16, 32..核CPU都可能在未来出现。如果未来语a只能利用多核中的一核,那未免太费了,也可能因此而落于h后。从q一点上看GROOVY有天然优势,能借助JVM完成q一dQPYTHON 正在U极研制新的Ҏ实现Q也可以在JVM或WINDOW环境下运行JPython 与IronPythonQRuby落后些,但是也有JRuby和IronRubyQv步晚些?


从语a的各自优~点来看Q?

Python:

1)三者中最成熟Q通用Q工具库多,资源丰富Q文档等支持强大Q几乎能做Q何事Q网l,囑Ş界面Q桌面程序,服务器,囑Ş处理Q算法等?

2)相比之下性能好,q行速度快,负蝲力强?

3)单易学,文法z,其用空白羃q代替花括号或END使代码看h很干净Q易L懂因此易l护?

4)Z量使用一U方法完成一件事Q越单越好的哲学。这U哲学适合大型目Q因其他人看着易懂Q好l护Q不至于q多灉|J杂的语法自己玩的爽了Q别人看得傻了。这与RUBY的用许多U方法完成一件事的哲学正相反。GROOVY感觉在两者之间?

5)得到业界承认

a) 大多数LinuxQ或者流行Linux中绝大多数都默认安装PythonQ这意味着不管你是哪国人在哪里Q想用哪台Linux机子Q想用Python可以用Q省旉手;要用Ruby Groovyq得安装?
b) 有巨头支持。几个例子,Google 互联|老大Q公司内部中Python是官方的W三语言Q有内部员工说他们是能用PythonqPythonQ?实在不行才用C++;   Youtube 大部分是?Python写的Q著名Linux发行版Ubuntu的发行公司的官方语言Q也是其创始人的首选语aQ其他还有Redhat, NASA, 动画公司Pixar{;桌面E序如流行程序BT客户端等Q?

~点Q?
1)不是完全的面向对象,语法中؜杂有函数调用Ҏ?
2)使用I白~进代替截止W在|页制作有点问题Q这时还得需要新语言或语法,代码Copy Paste{时Q用Tab时也可能有点ȝQ?
3)好象目前q不支持多核CPU
4)管创始Pythonq一名字取自一个喜剧团体,但是其名字或图标可能会一些h反感Q有些Python语言|站的的Python囄着实不令h喜欢。不喜欢q种动物的h可以考虑选其它的Q比如Python的弟弟Ruby?

要:Python适合大中型企业各类开发,几乎无所不在Q无所不能Q想跟紧大型企业或者需要成熟的库,Python可能较合适?

Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-Q-

Ruby

1) 语法是更U正的面向对象语aQ许多功能让从Java/C++世界q来的h耳目一斎ͼ因ؓ它借鉴了包括Python, Smalltalk, Lisp{在内的一些其它优U语言的优炏V一切都是ObjectQ如避免Python的类似len("name")Q而采?"name”.length, q有提供cd部参数数据的保护{?提供的更多语法,使程序更易懂l, 比如它有Block closure,它用' < ' 来表C类l承Q用?来表C回是否的函数?

2) 灉|的魔q语法,如模块的混入Q块Q开攑ּ的类定义Q加上已有的动态性其变得极其灵z;各种J多的著名设计模式在它手中好象都失去了意义,Java做梦都想辑ֈ的灵zL在RUBY手中轻而易举,Spring AOP相比也失M光泽Q设计大师们的法则与多年l验也好象都不再适用?

3) 相比Python提供了End作ؓE序块的截止W,q是Rubist们自认ؓ的一大进步,也是与Python的一个重要区别?

4) 杀手框架QRuby on RailsQ及q有些其它杀手框架正在一一跃出?

5Q有跑在JVM的JRuby和微软的IronRuby

6Q名字与图标很好    Ruby U宝x瞄准Perl Q珍珠)的承者而来的,名字与图标都优雅端庄赏心阅目?

~点
1)灉|可能有负面媄?
开攄cd大型E序中可能会造成混ؕQ不易懂不易l护Q类可能会不知道是谁在哪个角落改?不过有了IDE的支持这U情况可能可以解?Q语法方法的灉|可能使代码不规范Q一个h喜欢写魔qM码的有可能后来人看不懂Q其用多U方法实C个目的的哲学好象是在鼓励代码的多LzL,q在大型目中会加大l护隑ֺ。这可能也是Z目前未有大型企业界使用Ruby的原因?

2)性能相对不强   原有的Ruby速度慢,E_性相对差些,据说是原有的GC写的不强。不q随着新的更好的RUBY~译器的出现与硬件的快速发展与h降低Q此性能问题应该能够在不q的未来解决。据Java Eye的RobbinԌ即有此性能问题Q扩充硬件或讄pȝ也多可解决问题?

3)对线E支持不强,Ruby 2.0据说要加?

4)好象未支持多核Q不q未来可能解冻I道理?)

5)对End的意?nbsp; 不少为Ruby的Endq多Q显得不好看。代码在写很多层时尤其如此,q样使查扄应的起始位置增加隑ֺ。有人徏议其创始人Mats提供End的替代字W,他有此意Q但是好象没有他看的上的Q如果谁不喜ƢEnd的,找个自认Z错的字符发给总部吧,要趁早,否则以后来难攏V?

要:Ruby是o人兴奋的Q学习Ruby可以加深E序员对面向对象Q及计算a的理解,从这一点上_Python更只象个工具QRuby灉|却又很有深度Q值得一学。Ruby的主要缺Ҏ其性能性,但是看Java的历史可知,当时Java的速度被评为比C++差得太远Q可是几q后性能随着g的发展而大大加强,所以Ruby的性能应该在未来不会是大问题?

看过Python 和ruby后,本应此|手了,但是对这两语a感觉仍有遗憾之处Q于是看C以前看Ruby时瞧不上的Groovy, 却发现这是个不可看的语aQ不仅如此,而且Groovy可能会成为未来耀眼的新星?


------------------------------------
Groovy

1Q初看Groovy, 它好象是Ruby 与java的结合体Q也d了少量Python的东ѝRuby中引以ؓ傲的一切是对象QGroovy也可以作刎ͼ?3.times { ...},   块传递,动态改变类Q增加类函数{。它借鉴了大量Ruby 的语法,但是保留了C/C++/JavaE序员熟悉的花括P没有用Ruby无所不在?End”。而且对Ruby的一些生ȝ字符q行了改q,使得更加友好易懂Q如块中?| x | 换成?→ x

2Q被Thoughtwork(是写重构那本书的Martin Fowler所在公?l理UCؓ “Java 2.0” Q可?#8220;无缝”l合Java 代码Q你可以在Groovy文g中写Java代码Q用Java库。Groovy象是个轻量的动态版Java,而且加大扩展了许多易用的句法Q以前曾惌的一?Java 要是q么写多好啊" 竟然在Groovy中实CQ?如去掉了多余的分P三引号得多行的文本变量整洁好看Q砍掉了没多大用的getter setter{?

3 )可以使用所有Java的库Q因为Groovy"是Java”。相比Ruby爱好者在一个一个辛苦编写各U库的时候,Groovy已经是站在Java 的R头上向前冲了?
        
4)支持多核CPUQ未来的g是多核CPU的世界,谁不支持多核可能不是淘汰p后。由于跑在JVM上,Groovy再次领先于Python和RubyQ有Q也有Jython 和Jruby 啊,但是从与Java的结合性及调用Java代码或库来说QGroovy无疑是极佳的l合QJruby或Jython相比下显得ƈ不自然?
 
5)性能不错
Groovy不再是一个玩h试用品,一个已l用Groovy的公司其正式发布的品中有超q十万行Groovy代码?
其性能相比Python我不清楚Q但有测试说Grail性能不亚于,甚至更强于Ruby on Rails.׃Groovy跑在JVM上,性能应该不会太差?

6)业界的支?
Groovy 2003q左叛_出现Q还是新生儿Q还谈不上大型业界的大量支持Q就qSun公司也对Ruby青眼有加Q得Groovy爱好者大׃qI抱怨Sun偏向外hQ不向自p个Java 亲生子。目前可能只有Oracle与Thoughwork支持?那么目前业界q未大力支持Q谁可能会支持Groovy呢?U下认同q种说法Q就是全世界Java与C++的几百万E序员中可能会有不少支持的。这是由于Groovy与JavaQ或Cpd语言句法的近似及与其与Java“无缝”l合的特点相关的。流行语a的发展目前ؓ止是在相似的基础上发展的Q想想C → C++ → Java 他们的句法是不是怼Q从q一点上看,Groovy最与JavacMQ?试想Q如果有两种语言有相q的功能Q一U有你熟悉的句法Q另一U却较ؓ生僻Q哪U语a更易上手Q从企业界的角度来说QJava的业?Sun, IBM Oracle{?在过dq中已经投资了大量金׃旉在Java上,如果一U语a能与目前的Java目自然l合使用调用Q另一U语a有全新的语法要员工学习,企业界的目l理会选择哪个Q?即Ruby On Rails再强大,如果使用Ruby Python意味着十年来的人力Q资源,框架(Spring Hibernate)库等投资大部分作废,在Grail能带来Rails 70%的编码效率,120%的性能Qƈ且利用已有的框架与员工的情况下,企业会选择哪个Q所以个为JavaE序员或企业界可能会以后认识到Groovy能带来的益处?

7Q名字v的也不错
名字?#8220;很棒“Q?”极佳“Q?有着很积极正面的含意

~点Q?

1Q它虽然借鉴了大量Ruby的语法,但是有少部分没有完全实现Q如开攄c,它只是在一定范围内对类开放修攏V?

2QGroovy是Java, 目前只有JVM的实玎ͼ只能跑在有JVM的机子上。做桌面E序有着Java相同的弱点,不适合做小巧的WindowE序

Groovy是个有前途的语言Q照现在的势头发展,仅管它现在排名在39名,未来几年内闯?0名,再过些年闯入前十名或更前都不是不可能的事?

三种语言各有特点Q选择哪种语言与您的工作环境,目特点或个人爱好有着关系。随着动态语a的向前发展,他们的简单灵zM强大能帮助我们节省时间与资源Q学一U有潜力的语a能让E序员们站得更稳Q立于领先之圎ͼ如果有天动态语a发达了,设计模式们很多都用不上了Q这不是多年的经验淘C吗?E序员们不要忽视了他们了啊?

以上内容为参看一些文章与自己初步使用的感受的一些感惻I与网友们分nQ有错误之处Q请指正?br />  
转自Q?br /> http://www.javaeye.com/topic/259257



]]>
Python和Ruby的对?/title><link>http://www.tkk7.com/szhswl/articles/244866.html</link><dc:creator>宋针q?/dc:creator><author>宋针q?/author><pubDate>Sun, 07 Dec 2008 06:36:00 GMT</pubDate><guid>http://www.tkk7.com/szhswl/articles/244866.html</guid><wfw:comment>http://www.tkk7.com/szhswl/comments/244866.html</wfw:comment><comments>http://www.tkk7.com/szhswl/articles/244866.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/szhswl/comments/commentRss/244866.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/szhswl/services/trackbacks/244866.html</trackback:ping><description><![CDATA[<font size="4">《ruby和python的比较》更正一点事?br /> <br /> 1、文档、开源项目、库支持Q这些东西Ruby不要跟Python比,不是几个数量U的问题Q何必貌似ƈ列的排在一赗?br /> 2、Python实没有把正则表辑ּ模块内置到核心里面,但是却有req个标准库的支持Q当时的目的也是Z可能的把核心做到最。我不太明白Q用标准库和内|有什么区别,甚至可以作ؓ优点Q且使用Python中的正则表达式也不过是多个import re和调用时的几个字母而已Q省下的无数个end以抵销q个问题了?br /> 3、至于嵌入HTML功能QPython里有C/Python双实现的Cheetah模板可用Q据说托Zope的福Q美国v军和法国政府在用Q不知Rubyq个功能的成熟度如何Q?br /> 4、mod_ruby模块的出现时间很短,如果作者没有听qmod_python那就实在孤陋寡闻了。我在一q前译mod_python3.2.8文档的时候,mod_python已经很成熟了Q以至于几乎所有的Python WEB框架都支持构建在其上来提高效率。但是,gmod_ruby的更斎ͼ每年也只有几ơ。mod_python更有gnu.orgq样的重量应用Q不知mod_ruby有没有?<br /> 5、另外,提到unix工具。Red hat Linux的安装程序一直是用Python写的Q如果你恰y用ubuntuQ那么,那个提示你更新系l的E序Q也是用Python写的?br /> 6、racc和doctoolsQ请原谅我的孤陋寡闻Q我google了一下居焉了你的这文章还没找到几关于racc的中文内容,辗{之后才查到是一U类似yacc的工兗从google的角度讲Qracc的可用性我׃多说了。我不太明白一个yacc工具在日常编E当中有多大的实用性,但是既然作者提C我就Z找了个我只听说过名字Q根本没用过的spark。google的结果是"racc ruby":"python spark"=159,000:659,000。至于doctoolsQ我更是无话可说Q在google上只?5,800条记录,我到现在都看不出q个东西是干什么用的。所以找了个估计是类似的东西Ҏ了一下,docutilsQgoogle的记录是25,400条?br /> 7?#8220;比Python库更完整的面向对象语?#8221;。试问面向对象的目的是什么?再者,ruby能否像Python一Pl大多数标准库根本不需要查文档Q只要猜一下大体上的名字,然后dir()一下,再help()一下就可以直接上手Q用到第二次的时候,因ؓ模块内东西实在太,记忆太方便,可以直接写出来的地步?另外Q面向对象既不是什么银弹,也不是最先进的Y件工E思想?br /> 8?ruby的整个库都是cȝ承结构的"Q个为是Java的糟_,反倒是当成宝学q来了。或许这也是ruby来拯救JavaE序员的一优势吧?br /> 9?基本数据cd和运符都是可以重蝲?Q这个不是太清楚Q不知Python中重载__add__之类的算不算?br /> 10?ruby主要的功能都是通过对象的方法调用来实现的,而不是函?QPython中所有的东西都是对象Q但q不都是c,不知q句q有什么意义。另外,推荐你不要太q求什么彻底,q是实用q个词比较有吸引力?br /> 11、Python没有严格要求单承是l程序员以灵zL。另外,关于接口QPython中只要定义了同名的函数就是h了相同的接口Q玄学上升到了这个高度,我也有些qL了。至于接口,不要那么自信Qruby的所谓接口也不过是个mix-in。这个东西Python的几个大目中也有过实现Q只是因为对Python意义不明显,所以才没有更多的用?br /> 12、关于lisp的函数式~程QPython中有很多内置支持Q如map、zip、filter{等Q当然还有lambda。不要说支持Q我们谈实用。Pythoner中尚且有些h认ؓ函数式编E媄响了代码可读性而尽量避免呢。所以,你认为支持什么东西之前,先想好这样东西算不算是个好东ѝ?br /> 13?最大的不正是因ؓruby的强大所引v?。这句真恶心Q不予评论?br /> 14、呵呵,ruby居然没有国际化支持,真是个笑话,不知道当初那个小日本怎么想的Q难道他pq了四Q?br /> 15、至于jythonQ现在也有了jrubyQ可能是作者的原文比较早的~故吧。Python也有很多U实玎ͼ像是jython, ironpython, pypy, pyrex{等。Python的优U其实q不一定要通过用其他语a来实现才能体现出来。当然更不要说寄希望于要Java来解救水q热中的ruby了?br /> 另外么,有些ruby的缺点不要回避:<br /> 16、ruby没有本地化线E,而是用的伪线E,Ҏ无法利用多核CPU的优ѝCPython使用了本地化U程Q但是因Z用了GIL所以也是无法利用多核CPU优势的。但是Stackless的出现完全可以解册个问题,q且stackless更是Python提高Cq行计算的高度,q个高度的竞争对手可以是ErlangQruby自然不必H探。其中的轻量线E技术可以确保一台很烂的机器上跑几十万的U程q很L。基于Twisted的异步编E方式也提供了一U选择?br /> 17、刚刚开始学Python的时候,听说过一?#8220;Python是主动态语a中最慢的”Q后来才知道Q说那句话的人根本没把ruby攑֜眼里。如果把ruby也算q主动态语a里,那么׃出现一个比Pythonq慢了一个多数量U的语言了?br /> 18、ruby行么?是不是要走向PHPQPHP是个好东西,但是问题在于他只能作WEB~程Q限制了PHP的应用范_E微需要系l一点的东西p借助于C。而现在的rubyg也就是走着q条路。直到有一天,有h爆料"ruby是可以做客户端编E的"Q赢得大家一片好奇。况且现在的ROR能否取代什么还是个未知数。从Java WEB开发中解救出来的h们也q不都是走向了ruby?br /> <br /> <br /> <br /> -------------------------------------------<br /> <br /> <br /> <br /> 评《选Rubyq是选PythonQ?br /> <br /> q篇文章看来传播的算是比较多的,臛_我看到的是{载。文中谬误颇多,在此U正一下,当然q有许l典语句q里也要提及?br /> <br /> Python和Ruby的设计哲学确实有很大的差异,q个问题Q我׃评论哪个更好了,各有所爱吧。至于效率,Ruby永远不要考虑跟Python相比。Ruby是伪U程Q而且Ҏ没有利用多核CPU的可能,直接pass。而Python使用native threadQ仅仅由于部分模块不是threadsafe的而加入了GIL来限制应用多核CPUQ而在我最q的试中,在用Twisted的异步线E之后,已经可以很好的利用多核CPU的计能力了。执行效率上也不是一个数量Q自p试就知道?br /> <br /> 拿JavaҎPythonQ可见作者创造力之强悍,哈哈。开源项目是很符合达文的自焉择的,NRuby的开源项目少倒成了优点了Q另外,在Python中我也没见除了WEB framework之外有什么项目有太多的重复。D个例子,pypcap已l基本淘Cpcapy了?br /> <br /> 谈到资源QRubyq有很长的\要走Q所以提到双斚w很强的时候,ȝ不要太ƈ列化了。至于JavaC֌的h們֐于学RubyQ我个h认ؓ只是被Java折磨惯了的开发h员目光太狭隘所致。语a是工P面向对象也是工具Q纯_的面向对象q不见得高明到哪里去QPython也有函数式编E的支持Q作者怎么没有提到。另外,Python的很多做法是以开发效率ؓW一目标的而不拘惔于各cdŞ式,甚至为很多智力有限的人所q泛诟病的C++中的多承,Python也可以支持。问题不在于支持了什么让你不喜欢的东西,而是让尽可能多的人用上他们喜Ƣ的东西。另外,一直被Ruby开发者所认ؓ的Python不够OO的一个例子就是取一个序列的长度QPython使用len(x)的方法。这个问题,如果Ruby开发者认为x.length可以算是OO的话Q那么Python也大可以直接使用x.__len__()来获取长度。从用方法来装属性的Java角度Ԍ谁更OO一些呢Q哈哈?br /> <br /> Ruby是一个日本h的作品,呵呵Q这个就不多说了Q不喜欢日本的国人有很多Q在此我仅在技术层面就可以把Ruby贬低下去Q无ȝ非技术的东西了?br /> <br /> 关于Ruby on railsQRubyC֌实把几乎所有的_֊都集中于此。但是这只能表现出Ruby的幼E,事实已经证明了,ROR的很多模仿者已l推出无数的高功能Q远q超q了RORQ没有取代ROR只是Z先入Z的观c如果现在的RubyQ突然失MROR又会是什么样子。至于作者提到的zendQ居然用来跟ROR相比Q有如以卵击矻I我学qPython?UWEB框架Q^时也比较xPython和Ruby的各U东西,但是zendq个东西Q我是没有听说过的,不知是不是作者的作品Q哈哈。如果一定要在WEB框架上有个较量的话,你可以用django,Quixote,mod_python之类的来比较一下。djangoQ一个典型的ROR模仿品,q在成长Q但是已l有很多优于ROR的功能了Q而性能上远优于ROR自不必说。应用Quixote的douban.com是所有用Python和Ruby|站中流量最大的Q而且在相同硬仉|的情况下比ROR实现速度快了一倍还多,要知道去除WEB服务器等{的各种q等损耗之后,q可是要快上一个数量的东ѝ至于mod_pythonQ据?a target="_blank">www.gnu.org</a>用的是q个。如果Rubyq想开源的话,那么永q活在Python的阴影里面吧?br /> <br /> 至于上手的速度Q各个h有不同的情况Q不作评论。至于灵zL所带来的东西,仁者见仁,׃要评Z。作者谈到Python的入门不ҎQ真不知Ruby有个何等Ҏ。我初学PythonӞW?1天就用Python写了一个词法解析器Q至今仍然在我博客上可查。所以,入门隑ֺq个东西Q每个hq是自己去试试ؓ好,不必听别人怎么说?br /> <br /> 提到ROR生成的目录有很多东西Q要很久才可以都了解Q这实是IDE的综合症。在Python下,比较典型的例子是TurboGearsQ如果你希望了解整个应用E序的运行方式,你可以从核心cherrypy开始学习,然后开始用TurboGears没有什么可不了解的东西了。在q个角度上,ROR没有选择。再者,现在ROR可用的一U连接WEB服务器的方式scgiQ当q也是Python的作品,又是一个在Python的阴׃zȝ的小东西?br /> <br /> 未来的发展么Q孤注一LRubyq很难说Q但既然是孤注一P风险q是蛮大的。而Python么,我也以ؓ真的会^E的发展Q但是后来Micro$oft的加入,让我们都难以预料Python的未来到底有多大了。我们再回头谈谈作者一直讨厌的Python的多h,在我看来Ruby可以越Python的东西屈指可敎ͼ而Python过Ruby的东西,自然是Ruby难以逾越的`沟。所以从~程语言的多h考虑Q也׃大家学Ruby了吧Q少了一U选择Q聚集一些h气L好的?/font> <br /> <br /> 转自Qhttp://www.winu.cn/viewthread.php?tid=109124 <img src ="http://www.tkk7.com/szhswl/aggbug/244866.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/szhswl/" target="_blank">宋针q?/a> 2008-12-07 14:36 <a href="http://www.tkk7.com/szhswl/articles/244866.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>醉酒http://www.tkk7.com/szhswl/articles/243281.html宋针q?/dc:creator>宋针q?/author>Fri, 28 Nov 2008 08:36:00 GMThttp://www.tkk7.com/szhswl/articles/243281.htmlhttp://www.tkk7.com/szhswl/comments/243281.htmlhttp://www.tkk7.com/szhswl/articles/243281.html#Feedback0http://www.tkk7.com/szhswl/comments/commentRss/243281.htmlhttp://www.tkk7.com/szhswl/services/trackbacks/243281.html   dQ?#8220;你少喝点吧!电视机昨晚就送去修理了,你看到的是壁炉?#8221;

]]>
世界是一个班U?35?http://www.tkk7.com/szhswl/articles/241137.html宋针q?/dc:creator>宋针q?/author>Tue, 18 Nov 2008 06:26:00 GMThttp://www.tkk7.com/szhswl/articles/241137.htmlhttp://www.tkk7.com/szhswl/comments/241137.htmlhttp://www.tkk7.com/szhswl/articles/241137.html#Feedback0http://www.tkk7.com/szhswl/comments/commentRss/241137.htmlhttp://www.tkk7.com/szhswl/services/trackbacks/241137.html1、美?班长Q学习好Q家里有钱,人高马大Q好打架?班里没几个h敢惹他。和副班长关pM好?nbsp;


2、俄|斯 副班长,成W优异Q全班最高大Q上学期光和班长着qӀ后来家里出事:分家Q现在做事很消极Q但在班U里有一定的影响力?nbsp;

3、中?团支书。幼儿园学习成W很好。小学时׃体质差常被欺负,没事爱吹牛,由副班长|着。   

4、英?学习委员Q学习成l好。家里也很富。班长的跟屁虫,做事没主见,啥都听班长的。前些天和班长把伊拉克打了一ѝ?nbsp;


5、瑞?班花。学习成l好Q清高。不跟h勾肩搭背拉帮l派 ?/font>


6、奥地利 音乐课代表,早熟Q在两性观念上特别开放,l常因ؓ乱搞男女关系被同学非议?nbsp;


7、阿富汗 职务无。不爱学习。n材矮。上学期被副班长打,班长帮忙付医药费。前几天把班长家的最高的两个家具怺Q被班长揍个半死Q现在失忆中?nbsp;

8、伊拉克 无职务。幼儿园时学习好Q现在学习差。但人高马大Q上学期排全班第四。嘴,上学期欺负同桌被殴。前些天被班长和学习委员冲进他家揍个E巴烂?nbsp;

9、印?好玩电脑Q成了电脑课代表。经常和同桌巴基斯坦Z块课桌吵架?nbsp;

 
10、巴基斯?职务无。成l一般。和团支书关pM错,l常和印度吵架?nbsp;

11、d?班z跃分子Qh高马大,擅长数理化。有野心Q由于上学打?架所以现在暂无职务。但认错态度较好?nbsp;


12、____ 无职位,成W不错。思想品d很差。上学期刚被班长和团支书{h揍。现在还惦记着班长家的鱼?nbsp;

13、越?无职位。h品有问题,瘦弱。上学期被班长揍Q幸好有副班长和团支书撑腰。后又挑衅团支书Q被狂揍?


14、朝?无职位。有个性。和团支书关pd。近期和班长闹矛盾,班长扬言要揍他?nbsp;

15、韩国,无职务,品行比____q差Q样貌丑,整容整了数十?l于发现原来基因不好,怎么整都没用,于是军_不要怺.现在班里公认的心灵与长相一h?喜欢偷团支书东西Q偷完了q不知廉L出来炫耀。由班长|着?nbsp;

16、巴?体育委员Q家里杂草丛生?nbsp;

17、法?宣传委员Q班U活跃分子,从小喜欢闹事Q追求时,被班里有q生认为是内涵型气质美奟뀂最q他和一帮同学把团支书惹毛了Q被团支书当作出头鸟教训?nbsp;

18、蒙?特困生,但刚出生时是个巨_曑֤哭大闹,弄得q在上幼儿园的全班同学不得安宁?nbsp;

19、意大利 上幼儿园时收拾了周围几十个比自己的骠悍朋友,后来被众朋友合伙打D,失忆Q醒来后加入了打他的那群骠悍朋友,大一点后发现自己又能记v一点失忆前的东西,把它们教l众朋友后Q众朋友变得比自己学习q要好,且大多成为班q部?nbsp;

20、希?上幼儿园时特聪明Q教会了周围一大帮同学数理化政史地Q后来被自己教出来的意大利打D,抓到安Q意大利又被打失忆后Q希腊ؓ了避免步其后,Ҏ大利旁边那群骠悍朋友躲得远q的Q但l于q是被几伙同学联番欺负?nbsp;

21、土耛_ 学旉悍,打了不少人,q不知好歹地收拾了早慧少q希腊,l果被那更骠悍而且有钱的小朋友收拾了,现在正在乞求那群彪悍朋友收留他?nbsp;


22、格鲁吉?副班长的弟弟,前不久才转进班里Q现在正在挨哥哥揍?nbsp;

23、埃?早慧儿童Q可惜幼儿园毕业后失忆,q好一pd家传古董q在?nbsp;


24、以色列 早慧儿童Q智商极高,但童q不q,曄被很多同学轮番欺负,却都来了Q没有失忆。成为班长的铁杆朋友后,开始不那么低调了?nbsp;

25、丹?学时很Ӟ喜欢抢别人钱Q后来不耍脾气了Q成了h见hq娃娃脸?nbsp;

26、墨西哥 q儿园时聪明Q但大多数同学不知道Q知道后直接把他打残Q失忆,醒来后发现原来班长住在自己家旁边Q后来班长半买半抢拿了他家一半的东西走?nbsp;

27、西班牙 q儿园时全家被h强光Q小学时便成专抢别h的,发现了一块新地盘Q收保护Ҏ被后来的学习委员狠狠揍个半死Q手下h全部走掉?nbsp;


28、葡萄牙 l历与西班牙cMQ但是体质比较弱Q更早就被收拾了Q最q的一件大事是把小学一q时抢的现在团支书的一点东西还l了他?nbsp;

29、阿根h 和墨西哥一P原来是西班牙的手下,后来溜了Q最qؓ了争一点吃的,跟学习委员打了v来,被打个半歅R现在只敢跟巴西争争体委的位|?nbsp;

30、委内瑞?原西班牙手下Q最q突然变得很有个性,自立门户Q和几个哥们一P跟班长对着qӀ?nbsp;

31、古?班长dQ有个性,由委内瑞拉等一帮哥们,q有副班长(有时q有团支书)撑腰Q跟班长对着q了一个学期?nbsp;


32、加拿大 全班W二高大Q是班长的邻居,除了最q要和班ѝ副班长{抢几个冰棍外,基本上是班长的助手?nbsp;

33、伊?无职位,做事却很高调Q引L长等的极度反感,扬言要好好教训他一ѝ?nbsp;

34、前南斯拉夫诸国 本来自成一z,不听班长话,也不听副班长话,后来分家Q各自加入班长或副班长的圈子。其中有不少被认?#8220;不适宜上学”者整天闹着要上学,原来一个叫黑山的小子被同学们接U了Q最q闹的是一个叫U烦沃的P孩,班长带头的十几名同学已经同意他入学,但副班长不肯?nbsp;

35、联合国 班主任,IPw子弱,C低,没几个学生把自己当一回事Q同学们q算有点良知Q分摊了他的生活费,但作Z换条Ӟ班主ȝ理权交l了五个班干部?/font>

]]>让你L爱情的七个故?/title><link>http://www.tkk7.com/szhswl/articles/232947.html</link><dc:creator>宋针q?/dc:creator><author>宋针q?/author><pubDate>Tue, 07 Oct 2008 08:43:00 GMT</pubDate><guid>http://www.tkk7.com/szhswl/articles/232947.html</guid><wfw:comment>http://www.tkk7.com/szhswl/comments/232947.html</wfw:comment><comments>http://www.tkk7.com/szhswl/articles/232947.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/szhswl/comments/commentRss/232947.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/szhswl/services/trackbacks/232947.html</trackback:ping><description><![CDATA[<p><strong><a class="st_tag internal_tag" title="标签 1 下的日志" rel="nofollow">1</a>.带走的钥?/p> <p></strong>他和奚w遇在火R上,他坐在她寚wQ他是个d。他一直在dQ当他把ȝ送给ҎQ他们才知道彼此住在一个城市。两周后Q她便认定了他是她一生所爱?/p> <p>那年Q她做了新娘Q就像实C一个梦惻I感觉真好。但是,婚后的生zd像划q的火柴Q擦亮之后就再没了光亮。他不拘节、不爱干净、不擅交往Q他崇尚自由Q喜Ƣ无拘无束,虽然她乖巧得像上帝的羊Q可他仍觉得婚姻束缚了他。但是他们仍然相爱,而且他品行端正,从不拈花惹草?/p> <p>她含着泪和他离了婚Q但是带C安的钥匙。她不再他蓬ؕ的头发,不再他几点休息Q不再管他到哪里厅R和谁在一P只是一如既往地去收拾戉KQ清理那些垃圾。他也习惯她间断地光_也比在婚M更浪漫地爱她Q什么烛光晚、远x游、玫瑰花床,奚w不是在恋爱和婚姻中n受到的,而是在现在。除了大U的l婚证变成了墨绿的离婚证外,他们和夫L什么两栗?/p> <p>后来Q他l于成ؓ了有名的艺术Ӟ那一尺堆高的画E,变成了一打打pl绿的钞,她帮他经营帮他管理帮他消贏V他们就一直那栯着Q直C被确诊ؓ癌症晚期。I留之际,他拉着她的手问她,Z么会一生无悔地陪着他。她告诉他,p比婚姻长得多Q婚ȝ束了Q爱却没有结束,所以她才会守侯他一生?/p> <p><strong>是的Q爱比婚ȝ长度要长Q婚ȝ束,p可以l箋Q爱不在于有无婚姻这个Ş式,而在于内宏V?/strong></p> <p><strong><a class="st_tag internal_tag" title="标签 2 下的日志" rel="nofollow">2</a>.破碎的花?/strong></p> <p>他和Ҏ大学同学Q他来自偏远的农村,Ҏ自繁华的都市。他的父亲是农民Q她的父亲是l理。除了这些,没有Z说他们是天生的一对,在她家h的极力反对下Q他们最l还是走C一赗?/p> <p> </p> <p>他是定向分配的考生Q毕业只能回到预定的单位。她攑ּ了父亲找好的单位Q随他回C所在的县城。他在局里做着职员,她在中学教书Q过着艰辛而又q静的生zR在物欲横流的今天,q样的爱情不亚于好来坞的“l典”?/p> <p> </p> <p>那天Q很冗她拖着重感冒的w体Q在学校l落评学生补课Q她l他打过电话Q让他早点回家作饭。可当她又篏又饿地回到家Ӟ他不在,屋子里冷锅冷Ӟ没有一丝h气,她刚要vw做饭,他回来了。她问他d了,他说Q因为她不能回来做饭Q他出d了。她很伤心,含着满眶的泪水走q了卧室。她走过茶几Ӟ裙角刮落了茶几上的花Ӟq掉在CQ碎了。半q后Q她d了县城,回到了繁华的都市?/p> <p> </p> <p><strong>q便是婚姻,坚强而又脆弱。如同漂亮的qQ放在一个合适的位置Q可以经受得住岁月的风化Q但是只要轻Mͼ掉在CQ就可能会变成无数的片?/strong></p> <p><strong>3.滴水的窗?/p> <p></strong> </p> <p>他和她属于青梅竹马,怺熟悉得连呼吸的频率相伹{时间久了,婚姻便有了一U沉闷与压抑。她知道他体_知道他心好,可还是感C满,奚w他,你怎么一Ҏ都没有Q他尬地笑W,怎么才算有情?</p> <p> </p> <p>后来Q她想离开他。他问,Z么?她说Q我讨厌q种LL生活。他_那就让老天来决定吧Q如果今晚下雨,是天意让我们在一赗到了晚上,她刚睡下Q就听见雨滴打窗的声韻I她一惊,真的下雨了?她vw走到窗前,ȝ上正淌着_望望夜空Q却是繁星满天!她爬上楼Ӟ天啊Q他正在g一Z勺地往下浇水。她心里一动,从后面轻d把他׃?/p> <p> </p> <p><strong>婚姻是需要一Ҏ的Q它q如沙漠中的一片绿zԌ让我们疲劳的眼睛感到希望和美Q适当地给“左手”?#8220;x”一U新鲜的感觉吧?/strong></p> <p><strong>4.最后的旅行</strong></p> <p>他是个搞设计的工E师Q她是中学毕业班的班任老师Q两人都错过了恋q最佛_节,后来lh介绍而相识。没有惊天动地的q程Q^qxE淡地相处Q自自然然地l婚?/p> <p> </p> <p>婚后W三天,他就跑到单位加班Qؓ了赶设计Q他甚至可以d拼命Q连l几天几夜不回家。她忙于毕业班的理Q经常晚归。ؓ了各自的事业Q他们就像两个陀螺,在各自的轨道上高速旋转着?/p> <p> </p> <p>送走了毕业班Q清闲了的她开始重新审视自q生活Q审视自q婚姻Q她开始迷茫,不知道自己在他心里有多重Q她g不记得他说过׃。一天,奚w他是不是爱她Q他说当然爱Q不然怎么会结婚,奚w他怎么不说爱,他说不知道怎么说。她拿出写好的离婚协议,他愣了,_那我们去旅游吧,l婚的蜜月我都没陪你Q我亏欠你太多?/p> <p> </p> <p>他们M奇峰异石的张家界。飘雨的天气和他们阴郁的心情一P走在盘旋的山道上Q她发现他L走在外侧Q她问他Z么,他说路太滑,他怕外侧的栅栏不牢Q怕她万一不小心跌倒。她的心忽然感到了温暖,回家把那䆾d协议撕掉了?/p> <p> </p> <p><strong>很多时候,爱是埋在心底的,其是婚姻进行中的爱Q^qxE淡,说不出来Q但是真实存在?/strong></p> <p><strong>5.晾晒的萝卜干</strong></p> <p> </p> <p>g住着一对老夫妻,L是离休的处q部Q女的退休前是一家大医院的主d师,他们的两个孩子,一个是某局里的中层q部Q一个在国外M?/p> <p> </p> <p>入秋的一个傍晚,我看见那老夫人在L萝卜Q我很奇怪,像她q样的家庭,q用自己淹菜吃吗Q我问她Q张阿姨Q你家还淹咸菜吗Q那老夫人很有丰韵,Wv来一脸的q福Q她说你王伯q吃我做的萝卜咸菜Q吃了一辈子都不腻,q去工作再忙Q都要给他晾菜,何况现在退休了Q有多是旉?/p> <p>望着菜的老hQ忽然就惌v林语堂先生的名言Q爱一个hQ从他肚子v。对那些走过几十载风风雨雨的婚姻来说Q爱可能真的p在碗里,落在“萝卜q?#8221;上了?/p> <p><strong>不是每䆾爱都是惊天动地的Q实实在在,朴实无华是婚ȝ一U境界?/strong></p> <p><strong>6.w边的风?/strong></p> <p> </p> <p>和许多家庭一P他们曄那么热烈地相pQ但是随着岁月的流失,他开始变得冷漠了Q大概就是h们常说的“审美疲劳”吧,Ȁ情越来越,心开始了漂移?/p> <p> </p> <p>他开始上|,聊QQQ在虚拟中寻找新鲜的感觉。一日,他在一个网站看C个v?#8220;飘落的枫?#8221;所写的短文Q写的是一个女子对婚姻对生zȝ失望。那优美的文字和文字间流溢的淡E忧伤Q深深打动了他。他不明白,一个感情这L腅R丰富的奛_Q她的丈夫怎会不知道珍惜?他禁不住阅了那奛_的注册资料,却发现那注册的信q是妻子的姓名全拼Q他猛地释然了,d的名字不正是“?#8221;吗,自己怎么忘了,d曾是大学里的文学C֛d呢,只是婚姻让她淡忘了许多爱好?/p> <p> </p> <p>他走q厨房,用手从后面环住妻子的腎ͼ我们吃完饭出L步吧。妻子肩头微微一颤:太阳从西边出来了Q你不上|了Q他转过d的nQ看着那其实很好看的脸_我以后天天陪你散步?/p> <p><strong>“不识庐山真面目,只缘w在此山?#8221;Qh们常说nҎ有风景,其实风景往往在你n辏V?/strong></p> <p><strong>7.温顺的丈?/strong></p> <p>他和奚w是小工hQ薪水不高,但是_生活。丈夫很普通,d却很漂亮Q也很伉俐?/p> <p>因ؓ彼此都很有时_他们每个月或是出ȝ场电影,或是去逛逛公园,间或出去吃顿晚餐。只要妻子想Q丈夫就陪着。什么事都顺着dQ只要妻子高_只要条g允许Q从来不说半?#8220;?#8221;字,好像从来没有自qx。一ơ,他们出去吃晚饭,d让丈夫点菜,丈夫_点你爱吃的吧Q妻子有点生气,你就没一点自q主见Q是不是有点H囊Q丈夫楞了,叹了口气Q我只是一个普通的工hQ不能给你宽敞的住房和漂亮汽车,我只惛_自己“?#8221;的范围内Q给你最好的?/p> <p><strong>世界上有卑微的男奻I却没有卑微的爱情Q爱她,qҎ好的Q我惌也该是婚姻的真谛吧?/strong></p> <img src ="http://www.tkk7.com/szhswl/aggbug/232947.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/szhswl/" target="_blank">宋针q?/a> 2008-10-07 16:43 <a href="http://www.tkk7.com/szhswl/articles/232947.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://sao350.com" target="_blank">aaaƵѹۿ</a>| <a href="http://ytshdiping.com" target="_blank">Ѹavһ</a>| <a href="http://nh-car.com" target="_blank">ĻһƵ </a>| <a href="http://qu41.com" target="_blank">һ</a>| <a href="http://shnisda.com" target="_blank">AVҹ丣㽶149</a>| <a href="http://1992zyzp.com" target="_blank">avƷ</a>| <a href="http://wo93xyz.com" target="_blank">Avһ</a>| <a href="http://7778tv.com" target="_blank">츾avҹ벻</a>| <a href="http://nonobo.com" target="_blank">þþƷר</a>| <a href="http://ygf123.com" target="_blank">һ߹ۿ</a>| <a href="http://qixiresort.com" target="_blank">aëƬƵѹۿ</a>| <a href="http://9898vip.com" target="_blank">aëƬ</a>| <a href="http://dukane1688.com" target="_blank">AV˾Ʒ߹ۿ </a>| <a href="http://avyjj.com" target="_blank">ŮڵƵվ</a>| <a href="http://pufenghotel.com" target="_blank">ղƷһ</a>| <a href="http://av520av.com" target="_blank">ھƷһëƬѿ</a>| <a href="http://2xpp.com" target="_blank">պĻ</a>| <a href="http://adcaes.com" target="_blank">һ91</a>| <a href="http://jyzs888.com" target="_blank">Ļַ</a>| <a href="http://cc58866.com" target="_blank">˺Ů˸߳վ</a>| <a href="http://njyadi.com" target="_blank">avƬ</a>| <a href="http://zgj688.com" target="_blank">ĻͼƬ</a>| <a href="http://456jjj.com" target="_blank">δʮ18ֹվ </a>| <a href="http://68996500.com" target="_blank">ĻӰԺ</a>| <a href="http://www-566846.com" target="_blank">jzzjzzѹۿƬ</a>| <a href="http://zxzzzzx.com" target="_blank">ëƬѹۿվ</a>| <a href="http://dangyuming.com" target="_blank">ݹѹǹ</a>| <a href="http://929119.com" target="_blank">av뾫ƷװƬ</a>| <a href="http://zwdyw.com" target="_blank">ëƬ</a>| <a href="http://nfrxfarm.com" target="_blank">պƷav</a>| <a href="http://8k4c.com" target="_blank">ѹվ߹ۿ </a>| <a href="http://jxxitutu.com" target="_blank">޹ŮƷþþþ</a>| <a href="http://watchmini.com" target="_blank">Ʒѹۿһ</a>| <a href="http://goodwaysi.com" target="_blank">߾Ʒһ㽶</a>| <a href="http://u6u6u6.com" target="_blank">6666˹ۿ</a>| <a href="http://6ork.com" target="_blank">˻ɫַ</a>| <a href="http://fanqi5.com" target="_blank">ѴƬ߹ۿcom</a>| <a href="http://vv848.com" target="_blank">һɫþ88ۺ</a>| <a href="http://100357.com" target="_blank">޾ƷѶ</a>| <a href="http://dqzlxgg.com" target="_blank">˿Ƶ2019</a>| <a href="http://yimintech.com" target="_blank">Ļ߿˶Ƭ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>