欢迎访问网际快车的博客,希望能和大家共同学习,共同进步。
asp.net验证码生成类
一网页间两个flash相互通信(javascript版,转载)!
JavaScript和Macromedia Flash的通信示例
原文地址: www.macromedia.com/support/flash/ts/documents/java_script_comm.htm
说明: 略作修改,主要是一些很初级的操作; 又很多相似的文章,不过这个很权威
下面是一些在Flash和使用Javascript的HTML文件直接通信的示例,每个示例都有简略的步骤
本文讨论了3种基本的Flash/Javascript通信方式:
Javascript 到 Flash的通信----使用Flash播放器的javascript方法
Flash 到 Javascript的通信----使用Flash的fscommand
Flash 到 Flash的通信----------使用本地连接对象或综合上2种技术
并不是所有的浏览器都很重视脚本.为了和Flash播放器通信,浏览器必须有内置的钩子以便Flash播放器可以'监听'.浏览器必须是下列的几种:
Netscape Navigator 3.0-4.7x, 和 Netscape 6.2或更高
(Windows 95/98/NT/2000/XP 或 MacOS; 允许Java和LiveConnect)
Internet Explorer 3.0 或更高
(仅Windows 95/98/NT/2000/XP; 允许ActiveX)
注意:Macintosh上的Internet Explorer和早期版本的Netscape6不支持这种方法.请查看本文的附加信息
Javascript到Flash的通信
这个例子演示了如何使用Flash的method把变量从HTML的input text 发送到该页面中的Flash文件中.HTML input的数据通过Flash的SetVariable方法传送到Flash文件中.
查看示例:示例
下载源文件: javascript_to_flash.zip(17k)
步骤:
Flash中
1.新建一个文件,保存为javascript_to_flash.fla
2.用文字工具在舞台上创建一个文本域
3.选择这个文本域,在属性面板中,从下拉列表中选择动态文本(Dynamic Text),在变量(variable)栏填上"myVar"
注意:最好的习惯是使用Instance,用myVar.text更改myVar的值.为了简单起见和兼容Flash4和Flash5,我们使用的是变量名的形式.
4.保存文件
5.发布HTML文件和SWF文件
Dreamweaver中
下一步的工作转移到Dreamweaver中了,当然也可以是其他的HTML编辑器
1.打开上一步发布的HTML文件
2.插入生成的SWF文件和OBJECT/EMBED标签
(1) Insert>Media>Flash,并选择这个Flash
(2) 切换到代码视图,我们需要修改被选中的<OBJECT>和<EMBED>标签
(3) 在OBJECT标签中,插入id="myFlash"
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=5,0,0,0"
width=366 height=142id="myFlash">
注意:如果你是粘贴复制代码的话,确保删除不必要的换行.否则可能会引起错误; id也可以在属性面板里直接输入
(4) 在EMBED标签中,插入name="myFlash"和swLiveConnect="true",确保没有使用id属性!代码应当是这样子的:
<embed src="http://www.zhmy.com/javascript_to_flash.swf" quality=high width=366 height=142
type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?
P1_Prod_Version=ShockwaveFlash"
name="myFlash" swLiveConnect="true">
</embed>
3.创建表单域
(1) 回到设计视图
(2) 插入文本域(Insert> Form Object> Text Field),如果询问是否添加表单域,选择是
(3) 把文本域的HTML标签修改成这样:
<input type="text" name="sendText" maxlength="45" onChange="doPassVar(this)">
每当文本域内容发生变化时,onChange就被触发,doPassVar()函数就被调用
4.创建传递变量值的Javascript函数
复制下面的Javascript到<head></head>标签内
Flash到Javascript的通信
从HTML可以发送数据到Flash,反过来也可以. 这个例子演示了如何应用Flash的Fscommand来发送数据到Javascript.
查看示例:示例2
下载源文件: flash_to_javascript.zip(10K)
简要步骤:
Flash中
新建一个文件,保存为flash_to_javascript.fla
创建一个文本域,设置成输入文本(Input Text),选择"border"以便我们能看到他,指定他的变量为inputVar
创建一个按钮,在按钮上添加如下的as:
on (release) {
fscommand ("send_var", inputVar);
}
保存文件,导出HTML和SWF
Dreamweaver中
1.打开导出HTML文件,修改<OBJECT>和<EMBED>标签,结果同上:
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
codebase="http://download.macromedia.com/pub/shockwave/cabs/
flash/swflash.cab#version=5,0,0,0"
width=366 height=142 id="myFlash">
<embed src="http://www.zhmy.com/javascript_to_flash.swf" quality=high
width=366 height=142
type="application/x-shockwave-flash"
pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?
P1_Prod_Version=ShockwaveFlash" name="myFlash" swLiveConnect="true">
</embed>
Flash和Flash的通信
通过上面两种方法的混和使用,同一HTML中两个或者更多的Flash直接可以相互传送消息. 从一个flash使用fscommand传送消息给Javascript,使用Flash的Javascript methods把消息传给另外一个flash
详细的看这里:Flash影片之间的通信示例
从Flash MX开始,local connection对象可以用来在flash之间传送消息. 这使得同一HTML中的或者位于两个浏览器窗口中的两个flash影片可以相互发送消息,而不必使用Javascript或者fscommand
详细的看这里:在Flash MX中使用local connection对象(英文)
在 flash mx 以后,由于一系列的安全问题,比如载入另一个站点的 flash文件,然后用javascript控制 flash 跳转到不同的帧,让一些 flash 编写者在安全防范上防不胜防。为此 macromedia 改进了 flash player 和一些交互接口。引入了安全沙箱的概念,也就是可以设置一个可以进行控制的站点列表。
当然在同一个域名下,可以不考虑这个安全沙箱的问题。
flash8上传文件。


// 加载包
import flash.net.FileReference;
// 定义主角 FileReference 对象
var fileRef:FileReference = new FileReference();
// 定义 监听对象
var fileLsn:Object = new Object();
// 定义 文件类型数组 FileReference 对象的 browse 方法的参数
// description: 描述
// extension : 扩展名列表
var fileTyp:Array = new Array({description:"Image files", extension:"*.jpg;*.gif"}, {description:"Document files", extension:"*.txt;*.doc"});
btnBrowse.onRelease = function() {
// 打开 "选择文件" 对话框
fileRef.browse(fileTyp);
};
btnUpload.onRelease = function() {
// 开始上传
fileRef.upload("uploadFile.php");
};
btnClear.onRelease = function() {
strState.text = "";
};
// 选择文件事件
fileLsn.onSelect = function(file:FileReference) {
strState.text += "onSelect '"+file.name+"'\n";
};
// 取消选择
fileLsn.onCancel = function(file:FileReference) {
strState.text += "Cancel!\n";
};
// 打开文件开始上传
fileLsn.onOpen = function(file:FileReference) {
strState.text += "Uploading
'"+file.name+"'\n";
};
// 上传成功
fileLsn.onComplete = function(file:FileReference) {
strState.text += "File '"+file.name+"' upload successfull!\n";
};
// 上传过程
fileLsn.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
strState.text += "onProgress: "+file.name+" with bytesLoaded: "+bytesLoaded+" bytesTotal: "+bytesTotal+"\n";
};
// HTTP 错误
fileLsn.onHTTPError = function(file:FileReference, httpError:Number) {
strState.text += "HTTP ERROR: "+httpError+"\n";
};
// IO 错误
fileLsn.onIOError = function(file:FileReference):Void {
strState.text += "IO Error: "+file.name+"\n";
};
// 安全错误
fileLsn.onSecurityError = function(file:FileReference, errorString:String):Void {
strState.text += "onSecurityError: "+file.name+" errorString: "+errorString;
};
// 绑定监听器
fileRef.addListener(fileLsn);
// 其他属性或事件请参考帮助中关于 FileReference 对象的章节
UploadFile.aspx
string saveToFolder = "savedFiles"
在ASP.NET 2.0中使用页面导航控件
几乎每个网站里,为了方便用户在网站中进行页面导航,都少不了使用页面导航控件。有了页面导航的功能,用户可以很方便地在一个复杂的网站中进行页面之间的跳转。在以往的WEB编程中,要写一个好的页面导航功能,并不是那么容易的,也要使用一些技巧。而在asp.net 2.0中,为了方便进行页面导航,新增了一个叫做页面导航控件sitemapdatasource,其中还可以绑定到不同的其他页面控件,比如treeview,menu等,十分灵活,使到能很方便地实现页面导航的不同形式,而且还提供了运行时的编程接口,可以以编程的形式动态实现页面导航控件。本文将简单以几个例子来介绍一下在asp.net 2.0中如何实现页面导航。
页面导航的结构和sitemapdatasource控件
在asp.net 2.0中,要实现页面导航,应该先以xml的形式,提供出整个网站的页面结构层次。我们可以编写一个叫web.sitemap的XML文本文件,在该文件中定义出整个要导航页面的结构层次。举例如下:
<?xml version="1.0" encoding="utf-8" ?>
<siteMap>
<siteMapNode title="Default" description="Home" url="Default.aspx" >
<siteMapNode title="Members" description="Members" url="Members.aspx">
<siteMapNode title="My Account" description="My Account" url="MyAccount.aspx" />
<siteMapNode title="Products" description="Products" url="Products.aspx" />
</siteMapNode>
<siteMapNode title="Administration" description="Administration" url="~/Admin/Default.aspx">
<siteMapNode title="Customer" description="Customer Admin" url="~/Admin/Customer/default.aspx" />
<siteMapNode title="Products Admin" description="Products Admin" url="~/Admin/ProductsAdmin.aspx" />
</siteMapNode>
</siteMapNode>
</siteMap>
我们可以看到,其中,web.sitemap文件必须包含根结点sitemap。而且,设置一个父sitemapnode结点,该结点表明是默认的站点首页,在该父sitemapnode结点下,可以有若干个子sitemapnode结点,分别按层次结构代表了网站的各子栏目(留意一下上例中,各个子结点之间的包含关系)。而每一个sitemapnode结点中,有如下若干个属性:
1)URL属性:该属性指出要导航的栏目的地址链接,在web.sitemap中定义中,必须是每个栏目的相对地址。
2)Title属性:该属性指出每个子栏目的名称,显示在页面中。
3)Description属性:该属性指定时,则用户在鼠标移动到该栏目时,出现有关该栏目的相关提示,类似于tooltips属性。
在设计好sitemap属性后,接下来就可以一步步构建页面导航功能了,主要有两个步骤:
1) 向页面中添加sitemapdatasource控件。该控件会自动感应绑定web.sitemap中的内容。
2) 将sitemapdatasource控件绑定到如sitemappath,treeview,menu等控件中,也就是说,将它们的数据源设置为该sitemapdatasource控件。
知道了方法后,我们下面就分别以treeview,menu,sitemappath三种控件为例子,介绍一下如何和sitemapdatasource控件进行配合使用。
先来介绍使用treeview控件和sitemapdatasource 控件配合使用的方法。Treeview树形列表控件十分适合于用来做页面导航,为了能具体说明,我们充分利用asp.net中的masterpage控件,先搭建出一个网站的基本框架架构。
在visual web developer 2005 beta 1中,新建一个网站,之后添加上文的web.sitemap文件,再添加一个名叫Navigation的master类型的页面,代码如下:
<%@ Master Language="C#" %>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Master Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style="width: 100%; height: 100%" border="1">
<tr>
<td style="width: 10%">
<asp:TreeView ID="TreeView1" Runat="server" DataSourceID="SiteMapDataSource1"
ExpandDepth="2" ShowExpandCollapse="False" NodeIndent="10">
<LevelStyles>
<asp:TreeNodeStyle Font-Bold="True" Font-Underline="False"/>
<asp:TreeNodeStyle Font-Italic="True" Font-Underline="False" />
<asp:TreeNodeStyle Font-Size="X-Small" ImageUrl="bullet.gif" Font-Underline="False" />
</LevelStyles>
<NodeStyle ChildNodesPadding="10" />
</asp:TreeView>
</td>
<td style="width: 100px">
<asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
</asp:contentplaceholder>
</td>
</tr>
</table>
<asp:SiteMapDataSource ID="SiteMapDataSource1" Runat="server"/>
</div>
</form>
</body>
</html>
在上面的代码中,其中的TREEVIEW控件中的DATASORUCE属性中,就指定了sitemapdatasource控件,并且在treeview控件中,也定义了不同结点的样式。
在完成了masterpage页面后,就等于已经把网站的模版页建立起来了,接下来就可以新建其他子页面,以继承masterpage页面,并且新建各自页面的内容了。比如,新建一个default.aspx页面,代码如下:
<%@ Page Language="C#" MasterPageFile="Navigation.master" Title="Default Page"%>
<asp:Content ContentPlaceHolderID="ContentPlaceHolder1"
ID="Content1" Runat="Server">
This is the default page
</asp:Content>
可以看到,当建立了模版页后,就可以新建其他的子页面了,只需要在其中的contentplaceholderid中写入不同的内容就可以了。
接下来,我们来介绍如何将menu菜单控件和sitemapdatasource 控件配合使用。其中,我们在上面的例子的基础上,在<table style="width: 100%; height: 100%" border="1">下面增加如下代码就可以了,
<tr height="100px">
<td colspan="2" align="left">
<asp:Menu ID="Menu1" Runat="Server"
DataSourceID="SiteMapDataSource1">
</asp:Menu>
</td>
</tr>
其中,我们增加了一个menu控件,其中将其datasourceid属性设定为sitemapdatasource1就可以了,运行如下图,当然,我们可以改变menu控件的显示位置,如可以将其改成垂直样式显示。
而对于我们经常见到的显示出页面当前路径的导航条功能,在asp.net 2.0中也可以轻易实现,我们可以使用其中的sitemappath控件。我们紧接着在上文代码中的menu控件下,增加如下代码:
<tr height="100px">
<td colspan="2" align="left">
Currently Selected Page is:
<asp:SiteMapPath Runat="Server" ID="SiteMapPath1"></asp:SiteMapPath>
</td>
</tr>
要注意的是,只要增加sitemappath控件就可以了,因为它会自动和已经增加的sitemapdatasource控件进行绑定的。我们为了说明问题,另外增加一个页面member.aspx,代码如下:
<%@ Page Language="C#" MasterPageFile="Navigation.master" Title="Members Page"%>
<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" ID="Content1" Runat="Server">
This is the members page
</asp:Content>
最后,我们看一下,如何通过编程的方式来获取页面导航中的相关数据。其中,必须引用到的是sitemap类,该类提供了很多相关的方法和属性,最重要的是currentnode属性,它可以指出当前用户正在浏览的是哪一个栏目页面,这用来跟踪用户在网站中的行动轨迹,并进行站点数据统计,有时是很有用的,举例如下:
<%@ Page Language="C#" MasterPageFile="Navigation.master" Title="Members Page"%>
<script runat="Server">
void Page_Load(object sender, EventArgs e)
{
Response.Write("The currently selected root node is: " + SiteMap.CurrentNode.Description + "<br>");
Response.Write("The Parent for the currently selected node is : " +
SiteMap.CurrentNode.ParentNode.Description);
}
</script>
<asp:Content ContentPlaceHolderID="ContentPlaceHolder1" ID="Content1" Runat="Server">
This is the members page
</asp:Content>
在这个例子中,使用程序的方式,得出了用户当前正在浏览的栏目页面,以及该栏目的父栏目的名称.
可以看出,在asp.net 2.0中,实现页面导航的功能十分灵活而且方便,功能十分强大,更多的功能请参考MSDN。
3DSMAX 快捷键
-- 3DSMAX 快捷键
主界面
显示降级适配(开关)【O】
适应透视图格点【Shift】+【Ctrl】+【A】
排列【Alt】+【A】
角度捕捉(开关)【A】
动画模式(开关)【N】
改变到后视图【K】
背景锁定(开关)【Alt】+【Ctrl】+【B】
前一时间单位【.】
下一时间单位【,】
改变到上(Top)视图【T】
改变到底(Bottom)视图【B】
改变到相机(Camera)视图【C】
改变到前(Front)视图【F】
改变到等大的用户(User)视图【U】
改变到右(Right)视图【R】
改变到透视(Perspective)图【P】
循环改变选择方式【Ctrl】+【F】
默认灯光(开关)【Ctrl】+【L】
删除物体【DEL】
当前视图暂时失效【D】
是否显示几何体内框(开关)【Ctrl】+【E】
显示第一个工具条【Alt】+【1】
专家模式;全屏(开关)【Ctrl】+【X】
暂存(Hold)场景【Alt】+【Ctrl】+【H】
取回(Fetch)场景【Alt】+【Ctrl】+【F】
冻结所选物体【6】
跳到最后一帧【END】
跳到第一帧【HOME】
显示/隐藏相机(Cameras)【Shift】+【C】
显示/隐藏几何体(Geometry)【Shift】+【O】
显示/隐藏网格(Grids)【G】
显示/隐藏帮助(Helpers)物体【Shift】+【H】
显示/隐藏光源(Lights)【Shift】+【L】
显示/隐藏粒子系统(ParticleSystems)【Shift】+【P】
显示/隐藏空间扭曲(SpaceWarps)物体【Shift】+【W】
锁定用户界面(开关)【Alt】+【0】
匹配到相机(Camera)视图【Ctrl】+【C】
材质(Material)编辑器【M】
最大化当前视图(开关)【ALT】+【W】
脚本编辑器【F11】
新的场景【Ctrl】+【N】
法线(Normal)对齐【Alt】+【N】
向下轻推网格小键盘【-】
向上轻推网格小键盘【+】
NURBS表面显示方式【Alt】+【L】或【Ctrl】+【4】
NURBS调整方格1【Ctrl】+【1】
NURBS调整方格2【Ctrl】+【2】
NURBS调整方格3【Ctrl】+【3】
偏移捕捉【Alt】+【Ctrl】+【空格】
打开一个MAX文件【Ctrl】+【O】
平移视图【Ctrl】+【P】
交互式平移视图【I】
放置高光(Highlight)【Ctrl】+【H】
播放/停止动画【/】
快速(Quick)渲染【Shift】+【Q】
回到上一场景操作【Ctrl】+【A】
回到上一视图操作【Shift】+【A】
撤消场景操作【Ctrl】+【Z】
撤消视图操作【Shift】+【Z】
刷新所有视图【1】
用前一次的参数进行渲染【Shift】+【E】或【F9】
渲染配置【Shift】+【R】或【F10】
在xy/yz/zx锁定中循环改变【F8】
约束到X轴【F5】
约束到Y轴【F6】
约束到Z轴【F7】
旋转(Rotate)视图模式【Ctrl】+【R】或【V】
保存(Save)文件【Ctrl】+【S】
透明显示所选物体(开关)【Alt】+【X】
选择父物体【PageUp】
选择子物体【PageDown】
根据名称选择物体【H】
选择锁定(开关)【空格】
减淡所选物体的面(开关)【F2】
显示所有视图网格(Grids)(开关)【Shift】+【G】
显示/隐藏命令面板【3】
显示/隐藏浮动工具条【4】
显示最后一次渲染的图画【Ctrl】+【I】
显示/隐藏主要工具栏【Alt】+【6】
显示/隐藏安全框【Shift】+【F】
显示/隐藏所选物体的支架【J】
显示/隐藏工具条【Y】/【2】
百分比(Percent)捕捉(开关)【Shift】+【Ctrl】+【P】
打开/关闭捕捉(Snap)【S】
循环通过捕捉点【Alt】+【空格】
声音(开关)【\\】
间隔放置物体【Shift】+【I】
改变到光线视图【Shift】+【4】
循环改变子物体层级【Ins】
子物体选择(开关)【Ctrl】+【B】
帖图材质(Texture)修正【Ctrl】+【T】
加大动态坐标【+】
减小动态坐标【-】
激活动态坐标(开关)【X】
精确输入转变量【F12】
全部解冻【7】
根据名字显示隐藏的物体【5】
刷新背景图像(Background)【Alt】+【Shift】+【Ctrl】+【B】
显示几何体外框(开关)【F4】
视图背景(Background)【Alt】+【B】
用方框(Box)快显几何体(开关)【Shift】+【B】
打开虚拟现实数字键盘【1】
虚拟视图向下移动数字键盘【2】
虚拟视图向左移动数字键盘【4】
虚拟视图向右移动数字键盘【6】
虚拟视图向中移动数字键盘【8】
虚拟视图放大数字键盘【7】
虚拟视图缩小数字键盘【9】
实色显示场景中的几何体(开关)【F3】
全部视图显示所有物体【Shift】+【Ctrl】+【Z】
视窗缩放到选择物体范围(Extents)【E】
缩放范围【Alt】+【Ctrl】+【Z】
视窗放大两倍【Shift】+数字键盘【+】
放大镜工具【Z】
视窗缩小两倍【Shift】+数字键盘【-】
根据框选进行放大【Ctrl】+【w】
视窗交互式放大【[】
视窗交互式缩小【]】
轨迹视图
加入(Add)关键帧【A】
前一时间单位【<】
下一时间单位 【>】
编辑(Edit)关键帧模式【E】
编辑区域模式【F3】
编辑时间模式【F2】
展开对象(Object)切换【O】
展开轨迹(Track)切换【T】
函数(Function)曲线模式【F5】或【F】
锁定所选物体【空格】
向上移动高亮显示【↓】
向下移动高亮显示【↑】
向左轻移关键帧【←】
向右轻移关键帧【→】
位置区域模式【F4】
回到上一场景操作【Ctrl】+【A】
撤消场景操作【Ctrl】+【Z】
用前一次的配置进行渲染【F9】
渲染配置【F10】
向下收拢【Ctrl】+【↓】
向上收拢【Ctrl】+【↑】
材质编辑器
用前一次的配置进行渲染【F9】
渲染配置【F10】
撤消场景操作【Ctrl】+【Z】
示意(Schematic)视图
下一时间单位【>】
前一时间单位【<】
回到上一场景操作 【Ctrl】+【A】
撤消场景操作 【Ctrl】+【Z】
Active Shade
绘制(Draw)区域 【D】
渲染(Render) 【R】
锁定工具栏(泊坞窗) 【空格】
视频编辑
加入过滤器(Filter)项目 【Ctrl】+【F】
加入输入(Input)项目 【Ctrl】+【I】
加入图层(Layer)项目 【Ctrl】+【L】
加入输出(Output)项目 【Ctrl】+【O】
加入(Add)新的项目 【Ctrl】+【A】
加入场景(Scene)事件 【Ctrl】+【s】
编辑(Edit)当前事件 【Ctrl】+【E】
执行(Run)序列 【Ctrl】+【R】
新(New)的序列 【Ctrl】+【N】
撤消场景*作 【Ctrl】+【Z】
NURBS编辑
CV 约束法线(Normal)移动 【Alt】+【N】
CV 约束到U向移动 【Alt】+【U】
CV 约束到V向移动 【Alt】+【V】
显示曲线(Curves) 【Shift】+【Ctrl】+【C】
显示控制点(Dependents) 【Ctrl】+【D】
显示格子(Lattices) 【Ctrl】+【L】
NURBS面显示方式切换 【Alt】+【L】
显示表面(Surfaces) 【Shift】+【Ctrl】+【s】
显示工具箱(Toolbox) 【Ctrl】+【T】
显示表面整齐(Trims) 【Shift】+【Ctrl】+【T】
根据名字选择本物体的子层级 【Ctrl】+【H】
锁定2D 所选物体 【空格】
选择U向的下一点 【Ctrl】+【→】
选择V向的下一点 【Ctrl】+【↑】
选择U向的前一点 【Ctrl】+【←】
选择V向的前一点 【Ctrl】+【↓】
根据名字选择子物体 【H】
柔软所选物体 【Ctrl】+【s】
转换到Curve CV 层级 【Alt】+【Shift】+【Z】
转换到Curve 层级 【Alt】+【Shift】+【C】
转换到Imports 层级 【Alt】+【Shift】+【I】
转换到Point 层级 【Alt】+【Shift】+【P】
转换到Surface CV 层级 【Alt】+【Shift】+【V】
转换到Surface 层级 【Alt】+【Shift】+【S】
转换到上一层级 【Alt】+【Shift】+【T】
转换降级 【Ctrl】+【X】
FFD
转换到控制点(Control Point)层级 【Alt】+【Shift】+【C】
到格点(Lattice)层级 【Alt】+【Shift】+【L】
到设置体积(Volume)层级 【Alt】+【Shift】+【S】
转换到上层级 【Alt】+【Shift】+【T】
打开的UVW贴图
进入编辑(Edit)UVW模式 【Ctrl】+【E】
调用*.uvw文件 【Alt】+【Shift】+【Ctrl】+【L】
保存UVW为*.uvw格式的文件 【Alt】+【Shift】+【Ctrl】+【S】
打断(Break)选择点 【Ctrl】+【B】
分离(Detach)边界点 【Ctrl】+【D】
过滤选择面 【Ctrl】+【空格】
水平翻转 【Alt】+【Shift】+【Ctrl】+【B】
垂直(Vertical)翻转 【Alt】+【Shift】+【Ctrl】+【V】
冻结(Freeze)所选材质点 【Ctrl】+【F】
隐藏(Hide)所选材质点 【Ctrl】+【H】
全部解冻(unFreeze) 【Alt】+【F】
全部取消隐藏(unHide) 【Alt】+【H】
从堆栈中获取面选集 【Alt】+【Shift】+【Ctrl】+【F】
从面获取选集 【Alt】+【Shift】+【Ctrl】+【V】
锁定所选顶点 【空格】
水平镜象 【Alt】+【Shift】+【Ctrl】+【N】
垂直镜象 【Alt】+【Shift】+【Ctrl】+【M】
水平移动 【Alt】+【Shift】+【Ctrl】+【J】
垂直移动 【Alt】+【Shift】+【Ctrl】+【K】
平移视图 【Ctrl】+【P】
象素捕捉 【S】
平面贴图面/重设UVW 【Alt】+【Shift】+【Ctrl】+【R】
水平缩放 【Alt】+【Shift】+【Ctrl】+【I】
垂直缩放 【Alt】+【Shift】+【Ctrl】+【O】
移动材质点 【Q】
旋转材质点 【W】
等比例缩放材质点 【E】
焊接(Weld)所选的材质点 【Alt】+【Ctrl】+【W】
焊接(Weld)到目标材质点 【Ctrl】+【W】
Unwrap的选项(Options) 【Ctrl】+【O】
更新贴图(Map) 【Alt】+【Shift】+【Ctrl】+【M】
将Unwrap视图扩展到全部显示 【Alt】+【Ctrl】+【Z】
框选放大Unwrap视图 【Ctrl】+【Z】
将Unwrap视图扩展到所选材质点的大小 【Alt】+【Shift】+【Ctrl】+【Z】
缩放到Gizmo大小 【Shift】+【空格】
缩放(Zoom)工具 【Z】
反应堆(Reactor)
建立(Create)反应(Reaction) 【Alt】+【Ctrl】+【C】
删除(Delete)反应(Reaction) 【Alt】+【Ctrl】+【D】
编辑状态(State)切换 【Alt】+【Ctrl】+【s】
设置最大影响(Influence) 【Ctrl】+【I】
设置最小影响(Influence) 【Alt】+【I】
设置影响值(Value) 【Alt】+【Ctrl】+【V】
ActiveShade (Scanline)
初始化 【P】
更新 【U】
宏编辑器
累积计数器 【Q】
photoshop快捷键大放送
1.使用快捷键快速操作.
F1 -帮助
F2 -剪切
F3 -拷贝
F4-粘贴
F5-隐藏/显示画笔面板
F6-隐藏/显示颜色面板
F7-隐藏/显示图层面板
F8-隐藏/显示信息面板
F9-隐藏/显示动作面板
F12-恢复
Shift+f5-填充
Shift+f6-羽化
Shift+f7-选择→反选
ctrl+h-隐藏选定区域
ctrl+d-取消选定区域
ctrl+w-关闭文件
ctrl+Q-退出PHOTOSHOP
Esc-取消操作
2.按Tab键可以显示或隐藏工具箱和调色板,按"shift+Tab"键可以显示或隐藏除工具以外的其他面板。
3.按住shift用绘画工具在画面点击就可以在每两点间画出直线,按住鼠标拖动便可画出水平或垂直线。
4.使用其他工具时,按住ctrl键可切换到移动工具的功能(除了选择手工具时)按住空格键可切换到手工具的功能。
5.同时按住alt和ctrl+或-可让画框与画面同时缩放。
6.使用其他工具时,按ctrl+空格键可切换到放大工具放大图象显示比例,按alt+ctrl+空格可切换到缩小工具缩小图象显示比例。
7.在手工具上双击鼠标可以使图象匹配窗口的大小显示。
8.按住alt双击photoshop底板相当于打开为。
9.按住shife双击photoshop底板相当于保存。
10.按住ctrl双击photoshop底板相当于新建文件。
11.按住ale点击工具盒中带小点的工具可循环选择隐藏的工具。
12.按ctrl+alt+{数字键0}或在放缩工具上双击鼠标可使图象文件以1:1比例显示。
13.在各种设置框内,只要按住alt键,cancel键会变成键reset键,按reset键变可恢复默认设置。
14.按shift+backspace键可直接调用填充对话框。
15.按alt+backspace(delete)键可将前景色填入选取框按ctrl+backspace(delete)键可将背景色填入选取框。
16.同时按住ctrl和alt移动可马上复制到新的layer并可同时移动物体。
17.再用裁切工具裁切图片并调整裁切点时按住ctrl便不会贴近画面边缘。
18.若要在两上窗口间拖放拷贝,拖动过程中按住shift键,图像拖动到目的窗口后会自动居中。
19.按住shift选择区域时可在原区域上增加新的区域;按住alt选择区域时,可在原区域上减去新选区域,同时按住shift和alt选择区域时,可取得与原选择区域相交的部分。
20.移动图层和选取框时,按住shift键可做水平,垂直或45度角的移动,按键盘上的方向键,可做每次1像素的移动,按住shift键再键盘上的方向键可做每次10像素的移动。
21.ctrl+delete加填前景颜色,ctrl或shift加delete填背景颜色。
22.双击放大镜可使画面以的100%比例显示大小。
23.按ctrl+r 出现标尺,在标尺拉出辅助线时按住就可以准确的让辅助线贴近刻度。
42.工具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取)
矩形、椭圆选框工具 【M】
裁剪工具 【C】
移动工具 【V】
套索、多边形套索、磁性套索 【L】
魔棒工具 【W】
喷枪工具 【J】
画笔工具 【B】
像皮图章、图案图章 【S】
历史记录画笔工具 【Y】
像皮擦工具 【E】
铅笔、直线工具 【N】
模糊、锐化、涂抹工具 【R】
减淡、加深、海棉工具 【O】
钢笔、自由钢笔、磁性钢笔 【P】
添加锚点工具 【+】
删除锚点工具 【-】
直接选取工具 【A】
文字、文字蒙板、直排文字、直排文字蒙板 【T】
度量工具 【U】
直线渐变、径向渐变、对称渐变、角度渐变、菱形渐变 【G】
油漆桶工具 【K】
吸管、颜色取样器 【I】
抓手工具 【H】
缩放工具 【Z】
默认前景色和背景色 【D】
切换前景色和背景色 【X】
切换标准模式和快速蒙板模式 【Q】
标准屏幕模式、带有菜单栏的全屏模式、全屏模式 【F】
临时使用移动工具 【Ctrl】
临时使用吸色工具 【Alt】
临时使用抓手工具 【空格】
打开工具选项面板 【Enter】
快速输入工具选项(当前工具选项面板中至少有一个可调节数字) 【0】至【9】
循环选择画笔 【[】或【]】
选择第一个画笔 【Shift】+【[】
选择最后一个画笔 【Shift】+【]】
建立新渐变(在”渐变编辑器”中) 【Ctrl】+【N】
文件操作
新建图形文件 【Ctrl】+【N】
用默认设置创建新文件 【Ctrl】+【Alt】+【N】
打开已有的图像 【Ctrl】+【O】
打开为... 【Ctrl】+【Alt】+【O】
关闭当前图像 【Ctrl】+【W】
保存当前图像 【Ctrl】+【S】
另存为... 【Ctrl】+【Shift】+【S】
存储副本 【Ctrl】+【Alt】+【S】
页面设置 【Ctrl】+【Shift】+【P】
打印 【Ctrl】+【P】
打开“预置”对话框 【Ctrl】+【K】
显示最后一次显示的“预置”对话框 【Alt】+【Ctrl】+【K】
设置“常规”选项(在预置对话框中) 【Ctrl】+【1】
设置“存储文件”(在预置对话框中) 【Ctrl】+【2】
设置“显示和光标”(在预置对话框中) 【Ctrl】+【3】
设置“透明区域与色域”(在预置对话框中) 【Ctrl】+【4】
设置“单位与标尺”(在预置对话框中) 【Ctrl】+【5】
设置“参考线与网格”(在预置对话框中) 【Ctrl】+【6】
设置“增效工具与暂存盘”(在预置对话框中) 【Ctrl】+【7】
设置“内存与图像高速缓存”(在预置对话框中) 【Ctrl】+【8】
编辑操作
还原/重做前一步操作 【Ctrl】+【Z】
还原两步以上操作 【Ctrl】+【Alt】+【Z】
重做两步以上操作 【Ctrl】+【Shift】+【Z】
剪切选取的图像或路径 【Ctrl】+【X】或【F2】
拷贝选取的图像或路径 【Ctrl】+【C】
合并拷贝 【Ctrl】+【Shift】+【C】
将剪贴板的内容粘到当前图形中 【Ctrl】+【V】或【F4】
将剪贴板的内容粘到选框中 【Ctrl】+【Shift】+【V】
自由变换 【Ctrl】+【T】
应用自由变换(在自由变换模式下) 【Enter】
从中心或对称点开始变换 (在自由变换模式下) 【Alt】
限制(在自由变换模式下) 【Shift】
扭曲(在自由变换模式下) 【Ctrl】
取消变形(在自由变换模式下) 【Esc】
自由变换复制的象素数据 【Ctrl】+【Shift】+【T】
再次变换复制的象素数据并建立一个副本 【Ctrl】+【Shift】+【Alt】+【T】
删除选框中的图案或选取的路径 【DEL】
用背景色填充所选区域或整个图层 【Ctrl】+【BackSpace】或【Ctrl】+【Del】
用前景色填充所选区域或整个图层 【Alt】+【BackSpace】或【Alt】+【Del】
弹出“填充”对话框 【Shift】+【BackSpace】
从历史记录中填充 【Alt】+【Ctrl】+【Backspace】
选择功能
全部选取 【Ctrl】+【A】
取消选择 【Ctrl】+【D】
重新选择 【Ctrl】+【Shift】+【D】
羽化选择 【Ctrl】+【Alt】+【D】
反向选择 【Ctrl】+【Shift】+【I】
路径变选区 数字键盘的【Enter】
载入选区 【Ctrl】+点按图层、路径、通道面板中的缩约图
利用GetOLEDBSchemaTable方法得到数据库架构信息
语法:
Visual Basic(声明)
Public Function GetOleDbSchemaTable (schema As Guid, restrictions As Object())
As DataTable
参数
schema
OleDbSchemaGuid 的值之一,它指定要返回的架构表。
例如:Tables, Procedures, Views, Columns, Catlogs 等
restrictions
限制值的 Object 数组。这些值按照限制列的顺序来应用。即,第一个限制值应用于第一个限制列,第二个限制值应用于第二个限制列,依此类推。
举例:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim strCnn As String
strCnn = "Provider=SqlOLEDB; Data Source=.\NetSDK; Initial Catalog=pubs;User ID=sa;Password=;"
Dim dataConn As New OleDbConnection(strCnn)
Try
dataConn.Open()
Dim schemaTable As DataTable
schemaTable = dataConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, Nothing)
'得到全部的表、视图
DataGrid1.DataSource = schemaTable
DataGrid1.DataBind()
schemaTable = dataConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "TABLE"})
'得到全部的用户表,用户表类型为Table,进行过滤
DataGrid2.DataSource = schemaTable
DataGrid2.DataBind()
schemaTable = dataConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, New Object() {Nothing, Nothing, Nothing, "VIEW"})
'得到全部的视图
DataGrid3.DataSource = schemaTable
DataGrid3.DataBind()
schemaTable = dataConn.GetOleDbSchemaTable(OleDbSchemaGuid.Procedures, Nothing)
'得到全部的存储过程
DataGrid4.DataSource = schemaTable
DataGrid4.DataBind()
schemaTable = dataConn.GetOleDbSchemaTable(OleDbSchemaGuid.Provider_Types, Nothing)
'得到全部支持的数据类型
Datagrid5.DataSource = schemaTable
Datagrid5.DataBind()
schemaTable = dataConn.GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys, Nothing)
Datagrid6.DataSource = schemaTable
Datagrid6.DataBind()
Catch ex As Exception
Response.Write(ex.Message.ToString())
Finally
dataConn.Close()
End Try
End Sub
vb.net利用ADOX创建数据库
js脚本常用代码
ASP.NET中TreeView控件使用小结
在上网浏览时有时会看到一些网站在左边采用类似资源管理器的树形结构,在树形结构中单击,在右边显示内容,层次清晰且方便快捷,本文主要介绍ASP.NET服务器控件treeview 的使用方法,treeview控件属于microsoft webcontrols,在下载和使用过程中本人碰到一些问题,通过反复实验,查找资料,找到一些解决办法,现把treeview使用心得写出来,旨在对想在网站中使用树形结构的朋友有所帮助。
一、下载
microsoft webcontrols控件包括四个组件:MultiPage、TabStrip、Toolbar、treeView,treeview可以到http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp去下载,下载后得到文件IEWebControls,只有360KB,安装后自动在C:\Program Files建立IE Web Controls,执行其下面的bulid.bat,如果安装后还不能使用可以采用以下方法解决:
1、打开bulid.bat的内容,查看csc.exe路径是否正确,一般不能正确使用这可能是原因之一,csc.exe为系统文件,如果它的路径与你的计算机不符合,修改后存盘再执行bulid.bat,将得到Microsoft.Web.UI.WebControls.dll和一些文件夹。
2、查看默认的web站点,一般默认的web站点为C:\Inetpub\wwwroot,如果不是可以通过打开管理工具àInternet 服务管理器,方法:对默认web站点单击右键à属性à主目录,修改主目录。
3、将C:\Program Files\IE Web Controls\build下runtime文件夹下所有内容复制到主目录\webctrl_client\1_0下,是将iewebcontrols四大控件的系统文件复制到默认web站点下。
4、将C:\Program Files\IE Web Controls\build下Microsoft.Web.UI.WebControls.dll文件复制到主目录中建立的项目文件夹下\bin中。
通过对以上四个方面的操作,iewebcontrols才能正常使用。
二、使用控件
1、创建一个 Web 应用程序。
2、创建一个空白 Web 窗体页面
3、添加导入指令。在 Web 窗体的第一行编写 WebControl 的导入指令代码,如下所示:
<%@ import namespace="Microsoft.Web.UI.WebControls" %>
4、添加Register 指令。在 Web 窗体的第二行编写 WebControl 的@ Register 指令代码。<%@ Register TagPrefix="mytree"
Namespace="Microsoft.Web.UI.WebControls"
Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral" %>三、简单例子
<mytree:treeview runat="server">
<mytree:treenode text="我的第一个树节点">
<mytree:treenode text="我的第二个树节点">
</mytree:treenode>
</mytree:treenode>
</mytree:treeview>
四、常用属性
1、autoselect=”false”:当访问者在treeview控件中对节点进行定位时,可以使用键盘上的箭头来进行定位。属性值为“false“,则不允许这样做。
2、Showplus=”true”:当两个节点收到一起的时候,你可以显示一个加号(+),访问者就知道这个节点可以展开,该属性值为“true“将使用加号,否则不使用。
3、Showlines=”true”:在一个treeview控件中的两个节点之间,可以显示一些线长,为”true”显示。
4、Expandlevel=2:用来定义treeview控件的层次结构展开的级别数。
5、navigateurl:点击节点时的跳转网址
6、index:获取树节点在树节点集合中的位置
7、nodes:获取分配给树视图控件的树节点集合
8、parent:获取或设置控件的父容器
9、selectednode:获取或设置当前在树视图控件中选定的树节点
10、text:获取或设置在树节点标签中显示的文本
11、expand:展开树节点
12、clear:清空树
13、remove:移除当前树节点
14、checked:用以指明该树节点是否处于选中状态