iLeichun

当前位置:首页

JQuery实现php图片验证码

分类:个人日志  来源:网络  时间:2011-10-26 12:50:00
使用验证码可以防止机器无限制地提交表单,本文通过使用PHP生成图片验证码,使用JQuery实现局部刷新,并给出了2总不同浏览器的比较方案,本文所附代码可以直接运行。
 
Html代码:
<span id="checkCode"> </span> 
<a id="notClear" href="javascript:void(0)">看不清?</a>
 
checkCode.php:
<?php
session_start();
Header("Content-type: image/PNG");
$im = imagecreate(44,18);
$back = ImageColorAllocate($im, 245,245,245);
//背景
imagefill($im,0,0,$back); 
srand((double)microtime()*1000000);
//生成4位数字
for($i=0;$i<4;$i++){
$font=ImageColorAllocate($im, rand(100,255),rand(0,100),rand(100,255));
$authnum=rand(1,9);
$vcodes.=$authnum;
imagestring($im, 5, 2+$i*10, 1, $authnum, $font);
}
//加入干扰象素
for($i=0;$i<100;$i++){ 
$randcolor=ImageColorallocate($im,rand(0,255),rand(0,255),rand(0,255));
imagesetpixel($im, rand()%70 , rand()%30 , $randcolor);
ImagePNG($im);
ImageDestroy($im);
$_SESSION[¹VCODE¹] = $vcodes;
?>
 
Jquery:
方法一(ie无效,ff有效):
$("#checkCode").html("<img src=checkCode.php?r="+Math.random()+" />");
$("#notClear").click(function(){
$("#checkCode").html("<img src=checkCode.php?r="+Math.random()+" />");
});
 
方法二(ie,ff均有效):
$("#checkCode").empty().append("<img src=¹checkCode.php¹ />");
$("#notClear").click(function(){ 
$.post("checkCode.php?r="+Math.random(),function(data){
$("#checkCode").empty().append("<img src=¹checkCode.php?r="+Math.random()+"¹ width=¹44¹ height=¹18¹ />");
}); 
}); 

Photoshop实用小技巧八十条

分类:Photoshop  来源:网络  时间:2011-10-20 13:04:25

1. 快速打开文件

  双击Photoshop的背景空白处(默认为灰色显示区域)即可打开选择文件的浏览窗口。

  2. 随意更换画布颜色

  选择油漆桶工具并按住Shift点击画布边缘,即可设置画布底色为当前选择的前景色。如果要还原到默认的颜色,设置前景色为25%灰度(R192,G192,B192)再次按住Shift点击画布边缘。

  3. 选择工具的快捷键

  可以通过按快捷键来快速选择工具箱中的某一工具,各个工具的字母快捷键如下:

 

工具 快捷键 工具 快捷键
选框 M 移动 V
套索 L 魔棒 W
喷枪 J 画笔 B
铅笔 N 橡皮图章 S
历史记录画笔 Y 橡皮擦 E
模糊 R 减淡 O
钢笔 P 文字 T
度量 U 渐变 G
油漆桶 K 吸管 I
抓手 H 缩放 Z
默认前景和背景色 D 切换前景和背景色 X
编辑模式切换 Q 显示模式切换 F

 

注:不同版本的Photoshop工具箱工具不尽相同

  另外,如果我们按住Alt键后再单击显示的工具图标,或者按住Shift键并重复按字母快捷键则可以循环选择隐藏的工具。

  4. 获得精确光标

  按Caps Lock键可以使画笔和磁性工具的光标显示为精确十字线,再按一次可恢复原状。

  5. 显示/隐藏控制板

  按Tab键可切换显示或隐藏所有的控制板(包括工具箱),如果按Shift+Tab则工具箱不受影响,只显示或隐藏其他的控制板。

  6. 快速恢复默认值

  有些不擅长Photoshop的朋友为了调整出满意的效果真是几经周折,结果发现还是原来的默认效果最好,这下傻了眼,后悔不该当初呀!怎么恢复到默认值呀?试着轻轻点按选项栏上的工具图标,然后从上下文菜单中选取“复位工具”或者“复位所有工具”。

  7. 自由控制大小

  缩放工具的快捷键为“Z”,此外“Ctrl+空格键”为放大工具,“Alt+空格键”为缩小工具,但是要配合鼠标点击才可以缩放;相同按Ctrl+“+”键以及“-”键分别也可为放大和缩小图像;Ctrl+Alt+“+”和Ctrl+Alt+“-” 可以自动调整窗口以满屏缩放显示,使用此工具你就可以无论图片以多少百份比来显示的情况下都能全屏浏览!如果想要在使用缩放工具时按图片的大小自动调整窗口,可以在缩放工具的属性条中点击“满画布显示”选项。

  8. 使用非Hand Tool(手形工具)时,按住空格键后可转换成手形工具,即可移动视窗内图像的可见范围。在手形工具上双击鼠标可以使图像以最适合的窗口大小显示,在缩放工具上双击鼠标可使图像以1:1的比例显示。

  9. 在使用Erase Tool(橡皮擦工具)时,按住Alt 键即可将橡皮擦功能切换成恢复到指定的步骤记录状态。

  10. 使用Smudge Tool(指尖工具)时,按住Alt键可由纯粹涂抹变成用前景色涂抹。

  11. 要移动使用Type Mask Tool(文字蒙版工具)打出的字形选取范围时,可先切换成快速蒙版模式(用快捷键Q切换),然后再进行移动,完成后只要再切换回标准模式即可。

  12. 按住Alt键后,使用Rubber Stamp Tool(橡皮图章工具)在任意打开的图像视窗内单击鼠标,即可在该视窗内设定取样位置,但不会改变作用视窗。

  13. 在使用Move Tool(移动工具)时,可按键盘上的方向键直接以1 pixel的距离移动图层上的图像,如果先按住Shift键后再按方向键则以每次10 pixel的距离移动图像。 而按Alt键拖动选区将会移动选区的拷贝。 ”键可以实时增加或减少采样宽度(选项调板中)。

  15. 度量工具在测量距离上十分便利(特别是在斜线上),你同样可以用它来量角度(就像一只量角器)。在信息面板可视的前提下,选择度量工具点击并拖出一条直线,按住Alt键从第一条线的节点上再拖出第二条直线,这样两条线间的夹角和线的长度都显示在信息面板上。用测量工具拖动可以移动测量线(也可以只单独移动测量线的一个节点),把测量线拖到画布以外就可以把它删除。

  16. 使用绘画工具如(如画笔,向笔等),按住Shift键单击鼠标,可将两次单击点以直线连接。

  17. 按住Alt键用吸管工具选取颜色即可定义当前背景色。通过结合颜色取样器工具(Shift+I)和信息面板监视当前图片的颜色变化。变化前后的颜色值显示在信息面板上其取样点编号的旁边。通过信息面板上的弹出菜单可以定义取样点的色彩模式。要增加新取样点只需在画布上用颜色取样器工具随便什么地方再点一下,按住Alt键点击可以除去取样点。但一张图上最多只能放置四个颜色取样点。当Photoshop中有对话框(例如:色阶命令、曲线命令等等)弹出时,要增加新的取样点必须按住Shift键再点击,按住Alt+Shift点击可以减去一个取样点。

  18. 裁切工具大家都一定用过,这种情况你也一定遇到过;在你调整裁切握、而裁切框又比较接近图像边界的时候,裁减框会自动地贴到图像的边上,令你无法精确的裁切图像。不过只要在调整裁切边框的时候接下“Ctrl”键,那么裁切框就会服服帖帖,让你精确裁切。

  复制技巧

  19. 按住Ctrl+Alt键拖动鼠标可以复制当前层或选区内容。

  20. 如果你最近拷贝了一张图片存在剪贴板里,Photoshop在新建文件(Ctrl+N)的时候会以剪贴板中图片的尺寸作为新建图的默认大小。要略过这个特性而使用上一次的设置,在打开的时候按住Alt键(Ctrl+Alt+N)。

  21. 如果创作一幅新作品,需要与一幅已打开的图片有一样的尺寸、解析度、格式的文件。选取“文件”→“New”,点Photoshop菜单栏的Windows选项,在弹出菜单的最下面一栏点击已开启的图片名称,是的,就是这么简单!

  22. 在使用自由变换工具(Ctrl+T)时按住Alt键(Ctrl+Alt+T)即可先复制原图层(在当前的选区)后在复制层上 进行变换;Ctrl+Shift+T为再次执行上次的变换,Ctrl+Alt+Shift+T为复制原图后再执行变换。

  23. 使用“通过复制新建层(Ctrl+J)”或“通过剪切新建层(Ctrl+J)”命令可以在一步之间完成拷贝到粘贴和剪切到粘贴的工作;通过复制(剪切)新建层命令粘贴时仍会放在它们原来的地方,然而通过拷贝(剪切)再粘贴,就会贴到图片(或选区)的中心。

  24. 若要直接复制图像而不希望出现命名对话框,可先按住Alt键,再执行“图像”→“副本”命令。

  25. Photoshop的剪贴板很好用,但你更希望直接使用Windows系统剪贴板,直接处理从屏幕上截取的图像。好的,按下Ctrl+K,在弹出的面板上将“输出到剪贴板”点中吧!

  26. 在Photoshop内实现有规律复制 在做版面设计的时候我们会经常把某些元素有规律地摆放以寻求一种形式的美感,在Photoshop内通过四个快捷键的组合就可以轻易得出。

  (1)圈选出你要复制的物体; 
  (2)按Ctrl+J产生一个浮动 Layer; 
  (3)按旋转并移动到适当位置后确认; 
  (4)现在可以按住Ctrl+Alt+Shift 后连续按“T”就可以有规律地复制出连续的物体。(只按住Ctrl+Shift则只是有规律移动)

  27. 当我们要复制文件中的选择对象时,要使用编辑菜单中的复制命令。复制一次你也许觉不出麻烦,但要多次复制,一次一次的点击就相当不便了。这时你可以先用选择工具选定对象,而后点击移动工具,再按住“Alt”键不放。当光标变成一黑一白重叠在一起的两个箭头时,拖动鼠标到所需位置即可。若要多次复制,只要重复的放松鼠标就行了。

  28. 可以用选框工具或套索工具,把选区从一个文档拖到另一个上。

  29. 要为当前历史状态或快照建立一个复制文档可以:

  (1)点击“从当前状态创建新文档”按钮; 
  (2)从历史面板菜单中选择新文档; 
  (3)拖动当前状态(或快照)到“从当前状态创建新文档”按钮上; 
  (4)右键点击所要的状态(或快照)从弹出菜单中选择新文档把历史状态中当前图片的某一历史状态拖到另一个图片的窗口可改变目的图片的内容。按住Alt键点击任一历史状态(除了当前的、最近的状态)可以复制它。而后被复制的状态就变为当前(最近的)状态。按住Alt拖动动作中的步骤可以把它复制到另一个动作中。

 

 

  选择技巧

  30. 把选择区域或层从一个文档拖向另一个时,按住Shift键可以使其在目的文档上居中。如果源文档和目的文档的大小(尺寸)相同,被拖动的元素会被放置在与源文档位置相同的地方(而不是放在画布的中心)。如果目的文档包含选区,所拖动的元素会被放置在选区的中心。

  31. 在动作调板中单击右上角的三角形按钮,从弹出的菜单中选择载入动作,进入PhotoshopGoodiesActions目录下,其下有按钮、规格、命令、图像效果,文字效果、纹理、帧六个动作集,包含了很多实用的东西哟!另外,在该目录下还有一个ACTIONS.PDF文件,可用Adobe Acrobat软件打开,里面详细介绍了这些动作的使用方法和产生的效果。

  32. 单击工具条中的画笔类工具,在随后显示的属性条中单击画笔标签右边的小三角,在弹出的菜单中再点击小箭头选择“载入画笔…”。到Photoshop目录的Brushes文件夹中选择*.abr。原来这里还有这么多可爱的东西。

  33. 画出一个漂亮的标记,想在作品中重复使用?好办,用套索工具选好它,在Brushes的弹出菜单中选“储存画笔…”,然后用画笔工具选中这个新笔头……朋友,想做居室喷涂吗?

  34. 如果想选择两个选择区域之间的部分,在已有的任意一个选择区域的旁边同时按住Shift和Alt键进行拖动,画第二个选择区域(鼠标十字形旁出现一个乘号,表示重合的该区域将被保留)。

  35. 在选择区域中删除正方形或圆形,首先增加任意一个选择区域,然后在该选择区域内,按Alt键拖动矩形或椭圆的面罩工具。然后松开Alt键,按住Shift键,拖动到你满意为止。然后先松开鼠标按钮再松开Shift键。

  36. 从中心向外删除一个选择区域,在任意一个选择区域内,先按Alt键拖动矩形或椭圆的面罩工具,然后松开Alt键后再一次按住Alt键,最后松开鼠标按钮再松开Alt键。

  37. 在快速蒙版模式下要迅速切换蒙版区域或选取区域选项时,先按住Alt键后将光标移到快速遮色片模式图标上单击鼠标就可以了。

  38. 使用选框工具的时候,按住Shift键可以划出正方形和正圆的选区;按住Alt键将从起始点为中心勾划选区。

  39. 使用“重新选择”命令(Ctrl+Shift+D)来载入/恢复之前的选区。

  40. 在使用套索工具勾画选区的时候按Alt键可以在套索工具和多边形套索工具间切换。勾画选区的时候按住空格键可以移动正在勾画的选区。

  41. 按住Ctrl键点击层的图标(在层面板上)可载入它的透明通道,再按住Ctrl+Alt+Shift键点击另一层为选取两个层的透明通道相交的区域。 可保留原来的选区。

  43. “选择框”工具中Shift和Alt键的使用方法:

  当用“选择框”选取图片时,想扩大选择区,这时按住Shift键,光标“+”会变成“十+”,拖动光标,这 样就可以再原来选取的基础上扩大你所需的选择区域。或是在同一副图片中同时选取两个或两个 以上的选取框。 当用“选择框”选取图片时,想在“选择框”中减去多余的图片,这时按住“Alt”键,光标“+”会变成“十-”,拖动光标,这样就可以留下你所需要的图片。 当用“选择框”选取图片时,想得到两个选取框叠加的部分,这时按住“Shift+Alt”键,光标“+”会变成“十í”,拖动光标,这样就你想要的部分。 想得到“选取框”中的正圆或正方形时,按住“Shift”键,就可以。

  44. “套索”工具中Shift和Alt键的使用方法:

  增加选取范围按“Shift”键。(方法和“选择框”中的1相同) 
  减少选取范围按“Alt”键。(方法和“选择框”中的2相同) 
  两个选取框叠加的区域按“Shift+Alt”键。(方法和“选择框”中的3相同)

  45. “魔棒”工具中Shift和Alt键的使用方法:

  增加选取范围按“Shift”键。(方法和“选择框”中的1相同) 
  减少选取范围按“Alt”键。(方法和“选择框”中的2相同) 
  两个选取框叠加的区域按“Shift+Alt”键。(方法和“选择框”中的3相同)

 

  快捷键技巧

  46. 你可以用以下的快捷键来快速浏览你的图像:

  Home卷动至图像的左上角;End卷动至图像的右下角;Page UP卷动至图像的上方;Page Down卷动至图像的下方;Ctrl+Page Up卷动至图像的左方;Ctrl+Page Down卷动至图像的右方。

  47. 按Ctrl键+Alt键+0键即可使图像按1:1比例显示。

  48. 当你想“紧排”(调整个别字母之间的空位),首先在两个字母之间单击,然后按下Alt键后用左右方向键调整。

 

49. 将对话框内的设定恢复为默认,先按住Alt键后,Cancel键会变成Reset键,再单击Reset键即可。

  50. 要快速改变在对话框中显示的数值,首先用鼠标点击那个数字,让光标处在对话框中,然后就可以用上下方向键来改变该数植了。如果在用方向键改变数值前先按下Shift键,那么数值的改变速度会加快。

  51. Photoshop 6.0除了以往熟悉的快捷键Ctrl+Z(可以自由地在历史记录和当前状态中切换)之外,还增加了Shift+Ctrl+Z(用以按照*作次序不断的逐步恢复*作)和Alt+Ctrl+Z(使用户可以按照*作次序不断的逐步取消*作)两个快捷键。按Ctrl+Alt+Z和Ctrl+Shift+Z组合键分别为在历史记录中向后和向前(或者可以使用历史面板中的菜单来使用这些命令)。

  52. 填充功能:

  Shift+Backspace打开填充对话框; 
  Alt+Backspace和Ctrl+Backspace组合键分别为填充前景色和背景色; 
  按Alt+Shift+Backspace及Ctrl+Shift+Backspace组合键在填充前景及背景色的时候只填充已存在的像素(保持透明区域)。

  53. 键盘上的D键、X键可迅速切换前景色和背景色。

  54. 用任一绘图工具画出直线笔触:先在起点位置单击鼠标,然后按住Shift键,再将光标移到终点单击鼠标即可。

  55. 打开Curve(曲线)对话框时,按Alt键后单击曲线框,可使格线更精细,再单击鼠标可恢复原状。

  56. 使用矩形(椭圆)选取工具选择范围后,按住鼠标不放,再按空格键即可随意调整选取框的位置,放开后可再调整选取范围的大小。

  57. 增加一个由中心向外绘制的矩形或椭圆形,在增加的任意一个选择区域内,先按Shift键拖动矩形或椭圆的面罩工具,然后放开Shift键,然后按Alt键,最后松开鼠标按钮再松开Alt键。按Enter键或Return键可关闭滑块框。若要取消更改,按Escape键 (Esc)。若要在打开弹出式滑块对话框时以10%的增量增加或减少数值,请按住Shift键并按上箭头键或者下箭头键。

  58. 若要在屏幕上预览RGB模式图像的CMYK模式色彩时,可先执行“视图”→“新视图”命令,产生一个新视图后,再执行“视图”→“预览”→“CMYK”命令,即可同时观看两种模式的图像,便于比较分析。

  59. 按Shift键拖移选框工具限制选框为方形或圆形;按Alt键拖移选框工具从中心开始绘制选框;按Shift+Alt键拖移选框工具则从中心开始绘制方形或圆形选框。

  60. 要防止使用裁切工具时选框吸附在图片边框上,在拖动裁切工具选框上的控制点的时候按住Ctrl键即可。

  61. 要修正倾斜的图像,先用测量工具在图上可以作为水平或垂直方向基准的地方画一条线(如图像的边框、门框、两眼间的水平线等等),然后从菜单中选“图像”→“旋转画布”→“任意角度…”,打开后会发现正确的旋转角度已经自动填好了,只要按确定就OK啦。

  62. 可以用裁切工具来一步完成旋转和剪切的工作:先用裁切工具画一个方框,拖动选框上的控制点来调整选取框的角度和大小,最后按回车实现旋转及剪切。测量工具量出的角度同时也会自动填到数字变换工具(“编辑”→“变换” →“数字” )对话框中。

  63. 裁剪图像后所有在裁剪范围之外的像素就都丢失了。要想无损失地裁剪可以用“画布大小”命令来代替。虽然Photoshop会警告你将进行一些剪切,但出于某种原因,事实上并没有将所有“被剪切掉的”数据都被保留在画面以外,但这对索引色模式不起作用。

  64. 合并可见图层时按Ctrl+Alt+Shift+E为把所有可见图层复制一份后合并到当前图层。同样可以在合并图层的时候按住Alt键,会把当前层复制一份后合并到前一个层,但是Ctrl+Alt+E这个热键这时并不能起作用。

  65. 按Shift+Backspace键可激活“编辑”→“填充”命令对话框,按Alt+Backspace键可将前景色填入选取框;按Ctrl+Backspace键可将背景填八选取框内。

  66. 按Shift+Alt+Backspace 键可将前景色填入选取框内并保持透明设置,按Shift+CtrBackspace键可将背景色填入选取框内保持透明设置。

  67. 按Alt+Ctrl+Backspace键从历史记录中填充选区或图层,按Shift+Alt+Ctrl+Backspace键从历记录中填充选区或图层并且保持透明设置。

  68. 按Ctrl+“=”键可使图像显示持续放大,但窗口不随之缩小;按Ctrl+“-”键可使图像显示持续缩小,但窗口不随之缩小;按Ctrl+Alt+“=”键可使图像显示持续放大,且窗口随之放大;按Ctrl+Alt+“-”键可使图像显示持续缩小,且窗口随之缩小。

  69. 移动图层和选区时,按住Shift键可做水平、垂直或45度角的移动;按键盘上的方向键可做每次1个像素的移动;按住Shift键后再按键盘上的方向键可做每次10个像素的移动。

  70. 创建参考线时,按Shift键拖移参考线可以将参考线紧贴到标尺刻度处;按Alt键拖移参考线可以将参考线更改为水平或垂直取向。

 

 

  71. 在“图像”→“调整”→“曲线”命令对话框中,按住Alt键于格线内单击鼠标可以使格线精细或粗糙;按住Shift键并单击控制点可选择多个控制点,按住Ctrl 键并单击某一控制点可将该点删除。

  72. 若要将某一图层上的图像拷贝到尺寸不同的另一图像窗口中央位置时,可以在拖动到目的窗口时按住Shift键,则图像拖动到目的窗口后会自动居中。

  73. 在使用“编辑”→“自由变换”(Ctrl+T)命令时,按住Ctrl键并拖动某一控制点可以进行自由变形调整;按住Alt键并拖动某一控制点可以进行对称变形调整;按住Shift键并拖动某一控制点可以进行按比例缩放的调整;按住Shift+Ctrl键并拖动某一控制点可以进行透视效果的调整;按Shift+Ctrl键并拖动某一控制点可以进行斜切调整;按Enter键应用变换;按Esc键取消*作。

  74. 在色板调板中,按Shift键单击某一颜色块,则用前景色替代该颜色;按Shift+Alt键单击鼠标,则在点击处前景色作为新的颜色块插入;按Alt键在某一颜色块上单击,则将背景色变该颜色;按Ctrl键单击某一颜色块,会将该颜色块删除。

  75. 在图层、通道、路径调板上,按Alt键单击这些调板底部的工具按钮时,对于有对话框的工具可调出相应的对话框更改设置。

  76. 在图层、通道、路径调板上,按Ctrl键并单击一图层、通道或路径会将其作为选区载入;按Ctrl+Shift键并单击,则添加到当前选区;按Ctrl+Shift+Alt键并单击,则与当前选区交叉。

  77. 在图层调板中使用图层蒙板时,按Shift键并单击图层蒙板缩览图,会出现一个红叉,表示禁用当前蒙板,按Alt键并单击图层蒙板缩览图,蒙板会以整幅图像的方式显示,便于观察调整。

  78. 在路径调板中,按住Shift键在路径调板的路径栏上单击鼠标可切换路径是否显示。

  79. 更改某一对话框的设置后,若要恢复为先前值,要按住alt键、取消按钮会变成复位按钮,在复位按钮上单击即可。

  路径技巧

  80. 大家在点选调整路径上的一个点后,按“Alt”键,再点击鼠标左键在点上点击一下,这时其中一根“调节线”将会消失,再点击下一个路径点时就会不受影响了。

如何挑选Java虚拟空间

分类:Java  来源:网络  时间:2011-10-20 13:02:05

如何选择java空间?这个问题,在国内还是比较头大的事情,必定不像asp那样普遍,所以选择的机会就不多,要考虑一下几方面:
1:完全兼容支持用到的框架和技术。这一点很重要,否则把网站上传后根本不起作用--网站用到的一些技术虚拟主机不支持。
2:可以免费试用一段时间。需要确保网站上传后能正常访问,也就是说需要验证一下。
3:性价比高。就是满足基本要求后,价格不能高。
4:管理功能齐全,操作友好方便。包括tomcat可单独管理、数据库可单独管理,其他如压缩/解压等。
5:稳定。不要三五天就出现访问不了,或者数据丢失,又或者文件丢失等现象。
6:售后服务好。这一点也是非常重要的,售后服务质量可以反映一间公司的生命力,可以决定其能走多远。
 

本文来源于:网络之都 http://www.book18.net/

原文地址:http://www.book18.net/book/1271.html


 

厦门理工学院有位老师叫邹树国

分类:个人日志  来源:网络  时间:2011-9-10 22:27:17
邹树国者,厦门理工学院软件学院教学部部长,北京航空航天大学硕士。他是我大学程序设计启蒙老师,教《C语言程序设计》、《数据结构与算法》。
我的大学专业是软件专业,第一学期有一门课程是《C语言程序设计》。没有计算机基础的我对此感到很陌生,到底什么是计算机语言?学那些有什么用?一个多月来,天天带着这些问题看书本,但仍然模模糊糊。上课时,其他的计算机基础课程可以基本听懂,唯独C语言这门课程就是迷迷茫茫。差不多一个多月了,还不能领会程序的意思,只会照着书本敲敲代码,但我听课很认真,因为我很喜欢邹老师的教学方式。
后来,我发现我课后没有认真揣摩书本,于是,我开始认真地看C语言书。从计算机语言的起源看起,慢慢进入到了C语言时代,认真研究第一个Hello World程序,大概如下:
#include <studio.h>
main()
{
     printf(“Hello World!”); //输出语句
}
那时看起来很难懂,书中讲了哪些是程序头、程序体、主函数、注释语句,可就是不明白这些是什么。
后来慢慢地对程序感兴趣了,学习效率不断提升。每次上机课都认真地操作,独立思考,只有出错了解决不了的时候才请教邹老师,经过老师的指点,编程速度、编程思想进一步提高。由于自己没有电脑,只能珍惜每次上机课,课后反复研究上机习题、抄写程序。就这样,后来的选择语句、循环语句、函数、递归、结构体等都不是问题了。初看就要倒下的我,经过努力,在期中、期末考试中C语言成绩均位于全班第一。
第二学期的《数据结构与算法》课程还是邹老师教,我发现这尽管还是使用上学期的C语言,但难度就不是那么简单了。线性表、队列、栈、排序、树……学得有些吃力,只好慢慢地学习,在老师的指导下慢慢进步。后来发现这门课程很有用,是程序设计的核心。
邹老师的课,大家都很喜欢听,没有多少人上课睡觉(还记得后来的一些程序设计语言课大家都不喜欢听,说如果是邹老师教就好了。在我看到英语快没希望的时候,我想要是英语也是他教该多好啊)。的确,邹老师的教学方式适合大多数人,大家都能在这种教学方式的影响下学习到很多的相关专业知识。他讲课由浅入深、循序渐进、举一反三,上机练习难易适中,由易到难,考试题目难易搭配恰当、知识分布合理、多个中小型编程题(有些老师就出一个编程题,没有上百行代码搞不定)。
还记得邹老师说过两句自今让我没有忘记的话:计算机和英语永远都是主流,自学能力是所有能力的主力。
后来我毕业了,从事了编程工作,自学新语言的速度明显提高了,还得感谢邹老师的思想对我的指导,每次我遇到困难了就想想C语言。
在此教师节之日再次感谢邹老师,同时也感谢我曾经的所有老师。
各位老师,教师节快乐,Thank you very much!

AS3 Label中的文字为什么显示不完全

分类:个人日志  来源:网络  时间:2011-8-31 23:19:00

    AS3开发中,当你使用Label标签添加文字时,而且文字较多时,你是否发现了只显示一行文字的情况?如果出现这种情况的话,那就是你没有设置Label的某些属性。

    这是因为Label有默认的宽度、高度,宽高分别默认为100和20像素。所以当你的文字较多,又没有设置Label的宽高时,你看到的文字只显示一部分。例如:

    var label:Label = new Label();

    label.text = "您现在所在的位置是雷纯的博客日志部分页面";

    addChild(label);

    你将不能看到完整的一句话。

    解决方式:

    方法1,固定宽高,给上面的代码增加下面一行

    label.width = 400;

    方法2,使用自动换行

    label.worldWrap = true;

   方法3,使用自适应宽度

AS3中defaultTextFormat与setTextFormat的区别

分类:个人日志  来源:网络  时间:2011-8-28 22:55:45

    在AS3中使用TextFormat类为TextField设置字体样式时,有两种调用方式:defaultTextFormat和setTextFormat()。当然这两种调用方式是有区别的,不正确的调用将导致不能正常设置字体样式。

    下面举例说明:

    var textFormat:TextFormat = new TextFormat();

    var textField1:TextField = new TextField();

    var textField2:TextField = new TextField();

    //设置样式

    textFormat.color = 0xFF0000;

    textFormat.size = 16;

    //应用样式

    //方法1

    textField1.defaultTextFormat = textFormat;

    textField1.text = "雷纯的博客";

    addChild(textField1);

    //方法2

    textField2.text = "雷纯的博客";

    textField2.setTextFormat(textFormat);

    addChild(textField2);

    以上2种方法都是正确的,看出什么区别了吗?

    区别是:defaultTextFormat要放在textField.text赋值的前面,setTextFormat()方法要放在textField.text赋值的后面。

AS3错误代码解释

分类:ActionScript  来源:网络  时间:2011-8-28 13:54:36
1000
对 _ 的引用不明确。
引用可能指向多项。例如,下面使用了 rss 和 xml 命名空间。每个命名空间为 hello() 函数定义了不同的值。trace(hello()) 语句返回此错误,因为它无法确定使用哪个命名空间。
private namespace rss; private namespace xml; public function ErrorExamples() { use namespace rss; use namespace xml; trace(hello()); } rss function hello():String { return “hola”; } xml function hello():String { return “foo”; }
通过使用具体的引用来纠正不明确的引用。下面的示例 使用 namespace::function 这种格式指定所要使用的命名空间:
public function ErrorExamples() { trace(rss::hello()); trace(xml::hello()); }
1003
不允许将访问说明符与命名空间属性结合使用。
不能在定义中同时使用访问说明符(如私有或公共)和命名空间属性。
1004
找不到命名空间,或者命名空间不是编译时常量。
该命名空间未知,或是运行时可能具有不同值的表达式。检查命名空间的拼写及其定义的导入是否正确。
1006
super 表达式只能在类实例方法的内部使用。
1007
super 语句只能在类实例构造函数的内部使用。
不能在静态成员的内部使用 super 语句。只能在类实例的内部使用 super 语句。
1008
属性无效。
1010
override 属性只能在类的属性定义中使用。
不能在函数块的内部使用 override 关键字。
1011
virtual 属性只能在类的属性定义中使用。
声明的属性不属于某个类时(例如在函数块的内部声明某个变量时),不能使用 virtual 属性。
1012
static 属性只能在类内部的定义中使用。
1013
private 属性只能在类的属性定义中使用。
1014
不再支持 intrinsic 属性。
ActionScript 3.0 不支持 intrinsic 关键字。
1016
基类为 final 类。
无法扩展超类,因为它标记为 final。
1017
找不到基类 _ 的定义。
1018
类的定义 _ 重复。
1020
标记为 override 的方法必须覆盖其它方法。
1021
函数的定义重复。
在同一个范围内,不能使用相同的标识符名称声明多个函数。
1022
不能覆盖 final 存取器。
1023
覆盖不兼容。
标记为 override 的函数必须与所要覆盖的函数的参数和返回类型声明完全匹配。它必须具有相同数量的参数,且每个参数的类型相同,还必须声明相同的返回类型。如果任何一个参数是可选的,该函数也必须与此参数匹配。这两个函数还必须使用相同的访问说明符(如公共和私有等)或命名空间属性。
1024
覆盖没有标记为 override 的函数。
如果某个类中的方法覆盖基类中的方法,则必须使用 override 属性对其进行显式声明,如下面的示例所示: public override function foo():void{};
1025
不能重新定义 final 方法。
不能扩展该方法,因为它在基类中标记为 final。
1026
构造函数必须是实例方法。
1027
函数不能同时为 static 和 override 函数。
1028
函数不能同时为 static 和 virtual 函数。
1029
函数不能同时为 final 和 virtual 函数。
1030
必须指定变量参数数组的名称。
…(rest) 参数定义指定:…(rest) 之后提供的所有值都收集到任一数组中。必须指定该数组的名称,如 function foo(x,…(rest)) 表达式中所示。
1033
不支持 virtual 变量。
1034
变量不能是 native。
1035
变量不能同时为 final 和 virtual。
1037
不能嵌套包。
1038
找不到 break 语句的目标。
1039
找不到 continue 语句的目标。
1040
标签的定义重复。
1041
属性是不可调用的。
1042
this 关键字不能在 static 方法中使用。它只能在实例方法、函数闭包和全局代码中使用。
不能在静态成员的内部使用 this 关键字,因为 this 可能没有上下文。
1043
命名空间未定义。
1044
接口方法 _(属于命名空间 _)未经类 _ 实现。
1045
找不到接口 _。
1046
找不到类型,或者类型不是编译时常量 _。
用作类型声明的类未知,或是运行时可能具有不同值的表达式。检查导入的类是否正确以及该类的包位置是否尚未更改。此外,检查包含代码的包(不是导入的类)是否正确定义(例如,确保使用正确的 ActionScript 3.0 包语法,而不是 ActionScript 2.0 包语法)。如果所要引用的类没有在使用的命名空间中定义或未定义为公共,也会出现该错误:
public class Foo{}
如果正在使用 Flex™ Builder™ 2 并且该类存在于库中,请确保为项目设置类路径。
1047
参数的初始值未知,或不是编译时常量。
用作该参数默认值的值未定义或在运行时可能具有不同的值。检查初始值设定项的拼写是否正确,以及初始值设定项的值是不是一个会在运行时导致产生不同值的表达式。
1048
方法不能用作构造函数。
不能创建类方法的实例。只有全局函数才能在 new 表达式中使用。 class D { function xx() { return 22; } } var d:D = new D(); var x = new d.xx(); // 错误,方法不能用作构造函数 function yy() { this.a = 22; } var z = new yy(); // 无错误,全局函数可以用作构造函数。
1049
对指定为常量的变量的赋值非法。
1050
不能赋给非引用值。
1051
返回值必须是 undefined。
正在试图在声明了 void 返回类型的方法中使用 return 语句。
1052
常量的初始值未知,或不是编译时常量。
用来初始化该常量的值是 undefined,或在运行时可能具有不同的值。检查初始值设定项的拼写是否正确,以及初始值设定项的值是不是一个会在运行时导致产生不同值的表达式。
1053
存取器类型必须匹配。
1054
setter 定义的返回类型必须是 unspecified 或 void。
不能为 setter 函数指定返回值。例如,下面的语句无效: public function set gamma(g:Number):Number;
下面的语句是 有效的:
public function set gamma(g:Number):void;
1058
属性是只写的。
1059
属性是只读的。
此属性通过 getter 函数定义,因此,可以检索该属性的值。但是,不存在为此属性定义的 setter 函数,因此,该属性是只读的。 在下面的示例中,第 3 行会生成错误,因为不存在为 xx 定义的 setter 函数:
class D { function get xx() { return 22; } } var d:D = new D(); d.xx = 44; // 错误,属性是只读的
1061
调用可能未定义的方法 _(通过静态类型为 _ 的引用来调用)。
所要调用的方法未定义。
1063
无法打开文件 _。
1064
元数据无效。
无法识别此元数据。
1065
元数据的属性不能包含多个元素。
1067
将 _ 类型的值隐式强制为无关 _ 类型。
正在试图将对象转换为无法转换成的类型。如果所要转换的类不在正在转换的对象继承链中,可能会出现这种情况。仅当编译器在严格模式下运行时,才会出现这种错误。
1068
无法打开包含的文件 _。
1069
语法错误:应有定义或指令。
检查该行中的语法。
1071
语法错误:定义关键字(如 function)应在属性 _ 之后,而不是 _ 之后。
如果作者忘记在声明中使用“var”和“function”关键字,将会出现此错误。 public int z;// 应为“public var z:int;”
编译器遇到意外字符时,也会出现此错误。例如,由于缺少括号,下面使用的 trace() 函数无效(正确的语法是 trace(”hello”)): import flash.utils.trace; trace “hello”
1072
语法错误:命名空间之前应有 xml。
正确的语句语法是 default xml namespace = ns。或者缺少关键字 xml(注意小写),或者使用了错误的关键字。有关详细信息,请参阅默认的 xml 命名空间指令。
1073
语法错误:应有 catch 或 finally 子句。
1075
语法错误:如果没有“in”运算符,则不允许使用“each”关键字。
1076
语法错误:标识符之前应有左括号。
1077
应有 CaseLabel。
在 switch 块中,编译器此时应该执行 case 语句。下面的 switch 块错误地在第一个 case 语句之前包含对 print 的调用: switch(x) { trace(2); case 0: trace(0); break }
1078
标签必须是一个简单的标识符。
1079
super 表达式必须具有一个操作数。
1080
应有递增或递减运算符。
1082
括号内应有一个表达式。
1083
语法错误:遇到意外的 _。
代码行缺少某些信息。在下面的示例中,最后一个加号的后面必须带有某个表达式(如其它数字): var sum:int = 1 + 2 + ;
1084
语法错误:应有 _(_ 之前)。
此处不需要该表达式。如果错误是“程序结束之前应有右括号”,则表示代码块缺少右大括号 (})。 如果错误是“_ 之前应有左括号”,则表示条件表达式中可能遗漏括号,如下面的示例(有意出错)所示:
var fact:int = 1 * 2 * 3; if fact > 2 { var bigger:Boolean = true; }
1086
语法错误:_ 之前应有分号。
1087
语法错误:程序结束之后找到额外的字符。
1093
语法错误。
1094
语法错误:字符串文字必须在换行符之前终止。
1095
语法错误:字符串文字必须在换行符之前终止。
1097
语法错误:输入已在到达字符串文字的右引号之前结束。
1099
语法错误。
1100
语法错误:XML 没有匹配的开始和结束标签。
1102
不能删除超级后代。
1103
命名空间的定义重复。
已多次定义该命名空间。请删除或修改重复的定义。
1105
赋值的目标必须是引用值。
可以给变量赋值,但是不能将一个值赋给另外一个值。
1106
递增操作数必须是引用。
操作数必须是变量、数组中的元素或对象的属性。
1107
递增操作数无效。
操作数必须是变量、数组中的元素或对象的属性。
1108
递减操作数无效。
操作数必须是变量、数组中的元素或对象的属性。
1109
应有表达式。
代码的一部分缺少表达式。例如,下面的代码会生成此错误(if 语句中缺少某项条件): var x = (5 > 2) ? trace(x)
1110
缺少 XML 标签名称。
1112
可能会出现无限递归问题,因为此文件包含 _。
所要编译的源代码中包含的某文件中包含可能导致无限循环的其它 include 语句。例如,下面的 a.as 和 b.as 文件会生成此错误,因为每个文件都试图包含另外一个文件。 文件 a.as 中包含以下代码,它试图包含文件 b.as:
import foo.bar.baz; include “b.as” trace(2);
文件 b.as 包含以下代码,它试图包含文件 a.as:
include “a.as”
1113
在 _ 中检测到循环类型引用。
类正在尝试扩展超类。例如,如果类 B 从类 A 继承而来,则 A 不能扩展 B: class a extends b { } class b extends a { }
1114
public 属性只能在包的内部使用。
1115
internal 属性只能在包的内部使用。
1116
用户定义的命名空间属性只能在顶级的类定义中使用。
1118
将静态类型为 _ 的值隐式强制为可能无关的类型 _。
所要使用的值不是预期的类型,不存在将其转换为预期类型的隐式强制。 可能使用的是超级类型,但需要的是子类型。例如:
class A {} var a:A = new A(); class B extends A { function f() } var b : B = a // 错误
最后一个语句会出错,因为该语句尝试将类型 A 的对象赋给类型 B 的变量。
同样,下面定义的 foo() 函数采用了类型为 B 的参数。语句 foo(a); 会出错,因为该语句试图使用类型为 A 的参数:
function foo(x:B) { } foo(a);
此外,下面的语句也会出错,因为 foo2() 的返回值必须为类型 B:
function foo2():B { return new A(); }
1119
访问可能未定义的属性 _(通过静态类型为 _ 的引用来访问)。
正在尝试访问的属性对于指定对象不存在。例如,下面的代码会生成此错误,因为 int 对象没有名为 assortment 的属性: var i:int = 44; var str:String = i.assortment;
仅当编译器在严格模式下运行时,才会出现这种错误。
1120
访问未定义的属性 _。
正在试图访问未定义的变量。例如,如果尚未定义变量 huh,调用该变量时会生成此错误: huh = 55;
只有编译器在严格模式下运行时,才会出现此错误。
1121
getter 定义不能包含参数。
1122
setter 定义只能包含一个参数。
1123
setter 定义不能包含可选参数。
1124
getter 定义的返回类型不能为 void。
getter 函数模拟变量。由于变量类型不能为 void,因此不能将 getter 函数声明为返回类型 void。
1125
接口中定义的方法不能包含方法体。
1126
函数没有函数体。
1127
已多次指定属性 _。
在同一语句中多次指定了某个属性。例如,语句 public static public var x; 会生成此错误,因为该语句两次指定变量 x 是公共变量。请删除重复的声明。
1129
接口的定义 _ 重复。
请更改或删除重复的定义。
1130
构造函数不能指定返回类型。
1131
不能嵌套类。
1132
final 属性只能在类中定义的方法内使用。
1133
native 属性只能与函数定义结合使用。
1134
dynamic 属性只能与类定义结合使用。
1135
语法错误:_ 不是有效类型。
1136
参数数目不正确。数目应为 _。
函数需要的参数数目与提供的参数数目不同。例如, 下面定义的函数 goo 具有两个参数: class A { static function goo(x:int,y:int) { return(x+y); } }
下面的语句可能会出错,因为该语句提供了三个参数:
A.goo(1,2,3);
1137
参数数目不正确。不应超过 _ 个。
1138
可选参数之后不允许有必需的参数。
1139
不允许在接口中声明变量。
1140
如果参数是在 …rest 参数定义关键字之后指定的,则只能是 Array 数据类型。
1141
一个类只能扩展另外一个类,而不能扩展接口。
1142
一个接口只能扩展另外一个接口,但 _ 是一个类。
正在试图使用接口扩展类。一个接口只能扩展另外一个 接口。
1143
override 属性只能在类中定义的方法内使用。
1144
接口方法 _(属于命名空间 _)使用类 _ 中不兼容的签名进行实现。
方法签名必须完全匹配。
1145
Native 方法不能包含方法体。
不能使用 native,因为它是一个保留关键字。
1146
构造函数不能是 getter 或 setter 方法。
1147
未指定 AS 源文件。
1149
return 语句不能在静态初始化代码中使用。
1150
protected 属性只能在类的属性定义中使用。
1151
定义 _(属于命名空间 _)存在冲突。
在同一个范围内,不能使用相同的标识符名称声明多个变量,除非所有这些变量都声明为相同的类型。在 ActionScript 3.0 中,不同的代码 块(例如在同一个函数定义中的两个 for 循环中使用的块) 视为属于同一个范围。 下面的代码示例可以正确地将变量 x 转换为相同类型:
function test() { var x:int = 3; for(var x:int = 33; x < 55; x++) trace(x); for(var x:int = 11; x < 33; x++) trace(x) }
下面的代码示例会生成错误,因为变量声明和 for 循环中的类型转换是不同的:
function test() { var x:String = “The answer is”; for(var x:int = 33; x < 55; x++) // 错误 trace(x); for(var x:unit = 11; x < 33; x++) // 错误 trace(x) }
1152
继承的定义 _(属于命名空间 _)存在冲突。
1153
只能将构造函数声明为公共函数。
1154
只能在定义中指定 public、private、protected 或 internal 之一。
1155
不能在其它函数的内部嵌套存取器。
1156
不能使用新运算符实例化接口。
1157
接口成员不能声明为 public、private、protected 或 internal。
1158
语法错误:函数体之前缺少左大括号 ({)。
1159
return 语句不能在包的初始化代码中使用。
1160
native 属性不能在接口定义中使用。
不能使用 native,因为它是一个保留关键字。
1162
每个定义中只能使用一个命名空间属性。
1163
方法 _ 与从接口 _ 继承的定义冲突。
1165
接口属性 _ 无效。
1166
Namespace declarations are not permitted in interfaces.
1167
类 _ 多次实现接口 _。
该类多次实现同一个接口。例如,下面的示例会生成此错误,因为类 C 两次实现接口 A: interface A { public function f(); }; class C implements A,A { public function f() { trace(”f”); } }
正确的实现语句应为 class C implements A {。
1168
Illegal assignment to function _.
正在试图重新定义函数。例如,下面定义的函数 topLevel() 要输出“top”一词。第二个语句会生成错误,因为该语句赋给该函数不同的返回值: function topLevel() { trace(”top”); } topLevel = function() { trace(”replacement works in ~”);} // 错误
1169
不允许在接口方法中使用命名空间属性。
1170
函数没有返回值。
如果返回类型不是 void,函数中每个可能的控制流都必须返回值。下面的函数 f(x) 不会生成错误,因为 if..else 语句总是返回值: function f(x):int { if (x) return 2; else return 3; } // 无错误
但是,下面的函数 g(x) 会生成该错误,因为 switch 语句并非总是返回值。
function g(x:int):int { switch(x) { case 1: return 1; case 2: return 2: } // return 2;//取消注释可清除该错误 }
只有函数声明的返回类型不是 void 时,才启用此检查。
1171
命名空间初始值必须是文字字符串或其它命名空间。
1172
找不到定义 _。
1173
标签定义无效。
1176
将静态类型为 _ 的值与可能无关的类型 _ 进行了比较。
在严格模式下会生成此错误。
1177
return 语句不能在全局初始化代码中使用。
1178
尝试访问不可访问的属性 _(通过静态类型为 _ 的引用)。
1180
调用可能未定义的方法 _。
仅当编译器在严格模式下运行时,才会出现这种错误。
1181
转发对基类 _ 的引用。
1182
包不能用作值 _。
1184
使用了类型 _ 的不兼容默认值,但是应为 _。
1185
switch 包含多个默认值,但是只能使用一个默认值。
1188
对类 _ 的赋值非法。
1189
试图删除固定属性 _。只能删除动态定义的属性。
delete 会从对象中动态删除定义的属性。不能删除类的声明属性。仅当编译器在严格模式下运行时,才会出现这种错误。
1190
找不到基类,或基类不是编译时常量。
1191
找不到接口,或接口不是编译时常量。
1192
不允许在命名空间定义中使用 static 属性。
1193
不能在类或其它接口定义中嵌套接口定义。
1194
prototype 属性无效。
1195
试图访问不可访问的方法 _(通过静态类型为 _ 的引用)。
要么从其它类调用 private 方法,要么调用未使用的命名空间中定义的方法。如果调用的是未使用的命名空间中定义的方法,请为必需的命名空间添加 use 语句。
1196
语法错误:throw 之后应有表达式。
1197
类 _ 不能扩展 _,因为二者都与库符号或主时间轴关联。
1198
不允许在包的定义中使用属性。
1199
内部错误:_。
1200
语法错误:for-in 初始值无效,只能有 1 个表达式。
1201
this、super、return 或 throw 语句之后不能出现 super 语句。
1202
访问未定义的属性 _(属于包 _)。
正在试图访问包中未定义的变量。例如,如果尚未定义变量 p.huh,调用该变量时会生成此错误: p.huh = 55;
仅当编译器在严格模式下运行时,才会出现此错误。
1203
在基类 _ 中未找到默认构造函数。
如果有 1 个或多个必选参数,则必须使用 super() 语句显式调用基类的构造函数。
1204
.
发现了指示注释开始位置的字符“”。

as3获取xml节点数目

分类:个人日志  来源:网络  时间:2011-8-25 22:17:00

在使用ActionScript 3.0操作xml文件的时候,很多情况下都要知道某类节点有多少个,本文将通过代码示例,并使用3种解决方式为您讲解如何使用as3获取xml节点数目。如下代码所示:

test.xml文件:

<dirs id="article">
  <list>
    <dir id="article.xml" title="as3" type="0"/>
    <dir id="article1.xml" title="as3" type="0"/>
    <dir id="article2.xml" title="as3" type="0"/>
    <dir id="article3.xml" title="as3" type="1"/>
    <dir id="article4.xml" title="as3" type="1"/>
    <dir id="article5.xml" title="as3" type="2"/>
    <dir id="article6.xml" title="as3" type="5"/>
  </list>
</dirs>

 
方法一:
dirs.list.dir.length();

方法二:
dirs.list.children().length();

方法三:
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.event.Event;

var loader:URLLoader = new URLLoader(new URLRequest("example.xml");
loader.addEventListener(Event.COMPLETE,completeHandler);

function completeHandler(e:Event):void{
   var getLoader:URLLoader = e.target as URLLoader;
   if(getLoader!=null){
      var myxml = new XML(getLoader.data);
      var nodes:XMLList = myXML.child("list");
     // 获取books下的节点数
      var len:Number = nodes.length();
   }
}

怎么给TextField文字添加超链接

分类:个人日志  来源:网络  时间:2011-8-21 22:10:23

ActionScript 3.0中TextField的文字怎么添加超链接?如果要把该链接跳转到一个指定的网页怎么做?本文将告诉您怎么实现这种功能,希望对您有帮助。其实很简单,用TextField的htmlText属性即可,htmlText属性可以使用网页中的标签<a>达到实现超链接效果:

public function test() :void {

      var textField:TextField = new TextField();

       textField.htmlText = "ActionScript 3.0中TextField的文字怎么添加超链接?如果要把该链接跳转到一个指定的网页怎么做?本文将告诉您怎么实现这种功能,希望对您有帮助。";

       textField.width = 200;
       textField.wordWrap = true;

       textField.x=100;

       textField.y=20;
       addChild(textField);      
}

MyEclipse 8.5,9.0 安装svn

分类:编程开发  来源:网络  时间:2011-8-21 21:50:51

       这里介紹Eclipse的SVN Plugin,叫做Subclipse,官方网站的下载地址在http://subclipse.tigris.org/。

旧版本的MyEclipse可以通过Eclipse的插件自动下载和更新功能来安装,在Eclipse的菜单中选择 Help->Software Updates->Find and Install-> Search for new features to install ->New Remote Site。URL中就输入http://subclipse.tigris.org/update,MyEclipse就会自已安装上了. 

        如果是MyEclipse 8.5 M1需要手动安装,具体方法如下:
在http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240上下载最新的SVN,如site-1.6.10.zip,然后解压后放到X:Program FilesGenuitecMyEclipse 8.5 M1dropins目录下,重启就行了。

        如果是MyEclipse 9需要手动安装,具体方法如下:
在http://subclipse.tigris.org/servlets/ProjectDocumentList?folderID=2240上下载最新的SVN,如site-1.6.17.zip,然后解压后放到X:Program FilesMyEclipseMyEclipse 9dropins目录下,重启就行了。

        安装完成后,打开MyEclipse,window->show view窗口中多了一个SVN文件夹,到此就证明svn插件成功的安装上了。

  • 60
  • |<
  • <<
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • >>
  • >|