using System.Text.RegularExpressions;
/// <summary>
/// 去除HTML标记
/// </summary>
/// <param name="NoHTML">包括HTML的源码 </param>
/// <returns>已经去除后的文字</returns>
public static string NoHTML(string Htmlstring)
{
//删除脚本
Htmlstring = Regex.Replace(Htmlstring,@"<script[^>]*?>.*?</script>","",RegexOptions.IgnoreCase);
//删除HTML
Htmlstring = Regex.Replace(Htmlstring,@"<(.[^>]*)>","",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"([\r\n])[\s]+","",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"-->","",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"<!--.*","",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"&(quot|#34);","\"",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"&(amp|#38);","&",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"&(lt|#60);","<",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"&(gt|#62);",">",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"&(nbsp|#160);"," ",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"&(iexcl|#161);","\xa1",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"&(cent|#162);","\xa2",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"&(pound|#163);","\xa3",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring,@"&(copy|#169);","\xa9",RegexOptions.IgnoreCase);
Htmlstring = Regex.Replace(Htmlstring, @"(\d+);","",RegexOptions.IgnoreCase);
Htmlstring.Replace("<","");
Htmlstring.Replace(">","");
Htmlstring.Replace("\r\n","");
Htmlstring=HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();
return Htmlstring;
}
posted @
2008-07-24 10:38 zhangsir 阅读(3) |
评论 (0) |
编辑
一个项目需要动态处理客户端页面中图片的宽度,防止页面被过宽的图片撑变形。
过程就不叙说了。最终代码如下:
<script language="javascript" type="text/javascript">
window.onload=function()
{
var imgWidthToLimit=580; //对图片的限制宽度
var imgCongObj = ImgContainer.getElementsByTagName("IMG"); //获取id为ImgContainer的页面容器(div、table等)中的所有img对象
for( i=0;i<imgCongObj.length;i++)
{
var image = new Image();
image.src=imgCongObj[i].src;
image.i=i;
image.onreadystatechange=function(){
if (image.readyState=="complete") {
var w= parseInt(image.width);
if(w>imgWidthToLimit) imgCongObj[this.i].width=imgWidthToLimit;
}
}
}
}
</script>
参考资料:
<script>
var image = new Image();
image.src = 'http://www.baidu.com/img/logo.gif';
image.onreadystatechange=function(){
if (image.readyState=="complete") {
alert(["图片大小是:",image.width,image.height]);
}
}
</script>
解决了客户端图片没有加载而读取图片宽度时为0的问题。此法不稳定。后来我加到window.onload事件中 一切问题就解决了。
posted @
2008-07-19 17:59 zhangsir 阅读(7) |
评论 (0) |
编辑
ceil函数
ceil函数的作用是求不小于给定实数的最小整数。
ceil(2)=ceil(1.2)=cei(1.5)=2.00
|
使用该函数需要包含头文件<math.h>,该函数返回值为浮点型
Run-Time Library Referenceceil, ceilfCalculates the ceiling of a value.
double ceil(
double x
);
float ceil(
float x
); // C++ only
long double ceil(
long double x
); // C++ only
float ceilf(
float x
);
Parameter
x
Floating-point value.
Return Value
The ceil function returns a double value representing the smallest integer that is greater than or equal to x. There is no error return.
Input SEH Exception Matherr Exception
± QNAN,IND none _DOMAIN
ceil has an implementation that uses Streaming SIMD Extensions 2 (SSE2). See _set_SSE2_enable for information and restrictions on using the SSE2 implementation.
Remarks
C++ allows overloading, so you can call overloads of ceil. In a C program, ceil always takes and returns a double.
Requirements
Routine Required header Compatibility
ceil, ceilf <math.h> ANSI, Win 98, Win Me, Win NT, Win 2000, Win XP
For additional compatibility information, see Compatibility in the Introduction.
Libraries
All versions of the C run-time libraries.
Example
See the example for floor.
posted @
2008-07-14 16:33 zhangsir 阅读(6) |
评论 (0) |
编辑
在as2.0中我们要得到flashvars中的值,比如说temp,我们用_root.temp就可以了。
在as3.0中我们用这样的方法:
var temp=this.loaderInfo.parameters["temp"];
posted @
2008-07-09 16:33 zhangsir 阅读(15) |
评论 (0) |
编辑
在AS3中引入了标签,新的标签可以和循环体一起使用。例如,现在有两个嵌套的循环体,如果想要在内循环体中break掉外循环,一般使用下面的方法:
var i:Number;
var j:Number;
var exit:Boolean = false;
for (i=0; i<10; i++) {
for (j=0; j<10; j++) {
if (i > 3 && j > 3) {
exit = true;
break;
}
}
if (exit) {
break;
}
}
在引入了新的标签以后,可以使用下面的方法从内循环体中直接break掉外循环体:
var i:Number;
var j:Number;
mainLoop: for (i=0; i<10; i++) {
for (j=0; j<10; j++) {
if (i > 3 && j > 3) {
break mainLoop;
}
}
}
在第一个循环体上设置了mainLoop的标签,因此在循环体内任何地方使用break mainLoop直接中止外循环。
*检测鼠标离开Movie的动作
在以前的AS版本中,你无法做到检测鼠标是否还在Flash Movie上。因此影片不能检测到用户是否在关注着当前的Movie。另外一个问题是,如果使用了自定义的鼠标样式,在鼠标移出Movie后,自定义的鼠标还是继续停留在影片上,而不能正确的显示鼠标当前的位置。
现在,AS3允许你通过监听stage的mouseLeave行为来捕获鼠标移出Movie的动作。mouseLeave行为在鼠标移出Movie的时候执行。但是现在并没有mouseEnter事件,不过你可以通过使用mouseMove来设置。下面的例子中使用了一个方框来作为自定义的鼠标:
package {
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;
public class Test extends Sprite {
private var cursor:Sprite = new Sprite();
public function Test() {
cursor.graphics.beginFill(0xFF);
cursor.graphics.drawRect(0, 0, 25, 25);
addChild(cursor);
stage.addEventListener(Event.MOUSE_LEAVE, cursorHide);
stage.addEventListener(MouseEvent.MOUSE_MOVE, cursorFollow);
Mouse.hide();
}
public function cursorHide(evt:Event):void {
cursor.visible = false;
}
public function cursorFollow(evt:MouseEvent):void {
if (!cursor.visible) cursor.visible = true;
cursor.x = stage.mouseX;
cursor.y = stage.mouseY;
evt.updateAfterEvent();
}
}
}
当鼠标离开Movie的时候,鼠标指针将被隐藏。当鼠标再次移动到Movie上的时候,mouseMove会被执行,然后显示鼠标。
posted @
2008-07-09 12:32 zhangsir 阅读(10) |
评论 (0) |
编辑
最近用AS3写一些项目,在编程过程中,遇到不少问题,同时也有一些收获和心得。现在贴出来希望对大家在AS3编程有一些帮助。如果你发现有说得不对的地方,你可以指出来,大家一起来讨论。
1、AS3的强制类型转换
我之前一直以为是没有这个功能的,而最近在看一些文档,发现这个功能是有的。目前总结下来有两种写法:
- var loader:URLLoader = URLLoader(event.target);
不知道这种写法是借鉴那种编程语言,反正我没有见过。
补充这个语法说明:http://livedocs.adobe.com/flash/8_cn/main/00001211.html
- var loader:URLLoader = event.target as URLLoader;
这种写法是借鉴VB.Net编程语言,唉!AS3语法真得一个大杂烩。
2、URLStream和URLLoader
URLStream在文本文件数据方面可以支持多种字符编码。
URLLoader在进过测试后,发现除UTF-8字符编码外,其他字符编码读过来的数据都是乱码。
可通过ByteArray对象字符编码转换(感谢abc12hjc提供补充代码):
public class MoxieAS extends Sprite
{
public function MoxieAS ()
{
var stream:URLStream = new URLStream;
stream.addEventListener(Event.COMPLETE, complete);
stream.load(new URLRequest("ttt.xml")); // <root><a /><b /><c /></root>
}
private function complete (event:Event):void
{
var stream:URLStream = event.target as URLStream;
var xml:XML = XML(stream.readUTFBytes(stream.bytesAvailable));
trace(xml.*.length()); // output 3
}
}
具体用那个方式就看实际功能需求了。
3、URLRequest
URLStream、URLLoader、Loader等读取外部数据的类,里的load方法参数值是URLRequest对象。我在编程过程总是喜欢直接写地址字符串,原来习惯改过来看样子要花点时间了。
4、Loader
在使用Loader来加载数据时,添加侦听事件时,注意一定要给Loader的 contentLoaderInfo属性增加事件,而不是给Loader对象增加事件。我就是因为加错对象(关键是编译时还没有报错),郁闷得差点要把电脑给扔了。
错误写法:
var loader:Loader = new Loader();
loader.addEventListener(Event.COMPLETE, completeHandler);
loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
loader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
正确写法:
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
5、Loader加载过来的数据类型
大家知道Loader是用来代替原来 MovieClip的loadMovie功能,用于加载外部的图片文件,SWF文件。
- 如果加载图片文件(jpg,gif,png等)时,Loader.content得到数据类型是Bitmap对象;
- 如果加载SWF文件(flash 9 版本)时,Loader.content得到数据类型是MovieClip对象;
- 如果加载SWF文件(flash 9 以前版本) 时, Loader.content得到数据类型是AVM1Movie对象;
6、stage
在调试flash过程发现,如果把swf文件放到html页面后,stage.stageWidth和stage.stageHeight在第一次加载调用时,他们的值为空值;
7、 AVM1Movie
如果是AVM1Movie 对象时,就不能直接调用stop,play,gotoAndStop等原来MovieClip对象的功能了,而且不能将AVM1Movie 对象转换成MovieClip对象。目前解决办法:一种是用flash cs3 重新生成 flash 9的swf文件;另一种是国外网站有说能AVM1和AVM2两个虚拟机相互调用的方式(贴一个地址);
8、mask
在使用遮罩功能,发现一个问题,如果不把用于遮罩的显示元件通过addChild方法添加到同一级的显示容器里的话,遮罩效果就显示不正常,不知道这个是不是一个bug。我差点因为这个问题而放弃AS3改用AS2了。
转自(http://blog.163.com/lihua61622137@126/blog/static/553499122007112832153684/)
posted @
2008-07-09 11:28 zhangsir 阅读(15) |
评论 (0) |
编辑
参考:http://livedocs.adobe.com/flash/9.0_cn/ActionScriptLangRefV3/flash/net/FileReference.html#event:uploadCompleteData
posted @
2008-07-08 09:44 zhangsir 阅读(11) |
评论 (0) |
编辑
用as做滤镜效果,每种滤镜效果对应一个类,这些类都在Macromedia\Flash 8 Beta 2\zh_cn\First Run\Classes\FP8\flash\filters这个文件夹里
一、渐变斜角——GradientBevelFilter类
二、投影——DropShadowFilter类
三、模糊——BlurFilter类(这个最容易了,参数少)
四、发光——GlowFilter类
五、渐变发光——GradientGlowFilter类
六、斜角——BevelFilter类
我暂时就只知道这6个
做法是用new关键字新建一个相应类的对象,暂时就叫myfilters吧,然后把这个对象添加进一个数组filters_array,最后把这个数组赋值给mc的fliters属性,大功告成。
我想其中关键应该就是创建对象时如何设置里面的参数吧,我想滤镜的面板大家都很熟悉的了,那么,我就把as添加滤镜的一些参数和它们的面板相对照,这样可能更容易理解。
下面逐个举例(都是帮助里的例子啦,里面的参数名字都是可以改的,不过我觉得就用那些名字就蛮好),例子里都有函数setUpFlatRectangle(也有叫createRectangle的),是用来做一个方形mc的。
function setUpFlatRectangle(w:Number, h:Number, bgColor:Number, name:String):MovieClip {
var mc:MovieClip = this.createEmptyMovieClip(name, this.getNextHighestDepth());
mc.beginFill(bgColor);
mc.lineTo(w, 0);
mc.lineTo(w, h);
mc.lineTo(0, h);
mc.lineTo(0, 0);
return mc;
}
直接把脚本复制到主场景的第一帧就ok了,不要忘记上面的函数哦,要注意改函数名的
一、渐变斜角——GradientBevelFilter类
面板:截图暂无,就是截的滤镜面板啦,各位大哥请麻烦自己打开flash对照吧
脚本:
import flash.filters.GradientBevelFilter;
import flash.filters.BitmapFilter;
var art:MovieClip = setUpFlatRectangle(150, 150, 0xCCCCCC, "gradientBevelFilterExample");
//创建新的mc,实例名:art
var distance:Number = 5;
var angleInDegrees:Number = 225; // opposite 45 degrees
var colors:Array = [0xFFFFFF, 0xCCCCCC, 0x000000];
var alphas:Array = [1, 0, 1];
var ratios:Array = [0, 128, 255];
var blurX:Number = 8;
var blurY:Number = 8;
var strength:Number = 2;
var quality:Number = 3;
var type:String = "inner";
var knockout:Boolean = true;//设置各个参数
var filter:GradientBevelFilter = new GradientBevelFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout);//创建斜角滤镜对象filter
var filterArray:Array = new Array();
filterArray.push(filter); //把filter添加进数组filterArray,如果art上有多个滤镜效果,就直接添加进这个数组好了
art.filters = filterArray;//将art的filters属性设置为filterArray
下面是脚本中的参数和面板中的参数对比:
colors、alphas、ratios用来控制渐变颜色的,colors是色彩,alphas是百分比(这里面是0~1的小数),ratios是偏移量0~255(可以参考Color类)blurX、blurY是就对应面板里的模糊x、模糊y。strength是面板里的强度,是0~255的数;quality是品质,只有1、2、3分别对应低、中、高
distance是距离,默认4.0;type是类型,用字符串表示,例子中的”inner”是内侧,还有outer、fuller;knockout是个布尔值,表示是否挖空。
二、投影——DropShadowFilter类
面板:截图暂无,就是截的滤镜面板啦,各位大哥请麻烦自己打开flash对照吧
脚本:
import flash.filters.DropShadowFilter;
var art:MovieClip = createRectangle(100, 100, 0x003366, "gradientGlowFilterExample");
var distance:Number = 20;
var angleInDegrees:Number = 45;
var color:Number = 0x000000;
var alpha:Number = 0.8;
var blurX:Number = 16;
var blurY:Number = 16;
var strength:Number = 1;
var quality:Number = 3;
var inner:Boolean = false;
var knockout:Boolean = false;
var hideObject:Boolean = false;
var filter:DropShadowFilter = new DropShadowFilter(distance, angleInDegrees, color, alpha, blurX, blurY, strength, quality, inner, knockout, hideObject);
var filterArray:Array = new Array();
filterArray.push(filter);
art.filters = filterArray;
下面是脚本中的参数和面板中的参数对比:
Distance是距离;
angleInDegrees是角度0~360
blurX、blurY是模糊x、模糊y
strength是强度,脚本里是0~5的数
quality是品质,只能是1、2、3,分别对应低、中、高
inner是内侧阴影
knockout是挖空
hideObject是隐藏对象
三、模糊——BlurFilter类(这个最容易了,参数少嘛)
面板:截图暂无,就是截的滤镜面板啦,各位大哥请麻烦自己打开flash对照吧
脚本:
import flash.filters.BlurFilter;
var rect:MovieClip = createRectangle(100, 100, 0x003366, "BlurFilterExample");
var blurX:Number = 30;
var blurY:Number = 30;
var quality:Number = 3;
var filter:BlurFilter = new BlurFilter(blurX, blurY, quality);
var filterArray:Array = new Array();
filterArray.push(filter);
rect.filters = filterArray;
这个就不解释了,就三个参数,前面都介绍过了,下面遇到介绍过的参数就都不介绍了
四、发光——GlowFilter类
面板:截图暂无,就是截的滤镜面板啦,各位大哥请麻烦自己打开flash对照吧
脚本:
import flash.filters.GlowFilter;
var rect:MovieClip = createRectangle(100, 100, 0x003366, "gradientGlowFilterExample");
var color:Number = 0x33CCFF;
var alpha:Number = .8;
var blurX:Number = 35;
var blurY:Number = 35;
var strength:Number = 2;
var quality:Number = 3;
var inner:Boolean = false;
var knockout:Boolean = false;
var filter:GlowFilter = new GlowFilter(color, alpha, blurX, blurY, strength, quality, inner, knockout);
var filterArray:Array = new Array();
filterArray.push(filter);
rect.filters = filterArray;
五、渐变发光——GradientGlowFilter类
面板:截图暂无,就是截的滤镜面板啦,各位大哥请麻烦自己打开flash对照吧
脚本:
import flash.filters.GradientGlowFilter;
var art:MovieClip = createRectangle(100, 100, 0x003366, "gradientGlowFilterExample");
var distance:Number = 0;
var angleInDegrees:Number = 45;
var colors:Array = [0xFFFFFF, 0xFF0000, 0xFFFF00, 0x00CCFF];
var alphas:Array = [0, 1, 1, 1, 1];
var ratios:Array = [0, 63, 126, 255];
var blurX:Number = 50;
var blurY:Number = 50;
var strength:Number = 2.5;
var quality:Number = 3;
var type:String = "outer";
var knockout:Boolean = false;
var filter:GradientGlowFilter = new GradientGlowFilter(distance, angleInDegrees, colors, alphas, ratios, blurX, blurY, strength, quality, type, knockout);
var filterArray:Array = new Array();
filterArray.push(filter);
art.filters = filterArray;
这里的参数跟发光那个很像,需要说明的就是用来设置颜色的那几个数组里的4项依次是表示从外到内的颜色的
六、斜角——BevelFilter类
面板:截图暂无,就是截的滤镜面板啦,各位大哥请麻烦自己打开flash对照吧
脚本:
import flash.filters.BevelFilter;
var distance:Number = 5;
var angleInDegrees:Number = 45;
var highlightColor:Number = 0xFFFF00;
var highlightAlpha:Number = 1;
var shadowColor:Number = 0x0000FF;
var shadowAlpha:Number = 1;
var blurX:Number = 10;
var blurY:Number = 10;
var strength:Number = 2;
var quality:Number = 3;
var type:String = "inner";
var knockout:Boolean = false;
var filter:BevelFilter = new BevelFilter(distance, angleInDegrees, highlightColor, highlightAlpha, shadowColor, shadowAlpha, blurX, blurY, strength, quality, type, knockout);
var rect:MovieClip = createRectangle(100, 100, 0x00CC00, "bevelFilterExample");
rect.filters = new Array(filter);
参数:
highlightColor、highlightAlpha设置加亮颜色
shadowColor、shadowAlpha设置阴影颜色
posted @
2008-07-03 14:02 zhangsir 阅读(22) |
评论 (0) |
编辑
//v1.7
// Flash Player Version Detection
// Detect Client Browser type
// Copyright 2005-2007 Adobe Systems Incorporated. All rights reserved.
var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
function ControlVersion()
{
var version;
var axo;
var e;
// NOTE : new ActiveXObject(strFoo) throws an exception if strFoo isn't in the registry
try {
// version will be set for 7.X or greater players
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
version = axo.GetVariable("$version");
} catch (e) {
}
if (!version)
{
try {
// version will be set for 6.X players only
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
// installed player is some revision of 6.0
// GetVariable("$version") crashes for versions 6.0.22 through 6.0.29,
// so we have to be careful.
// default to the first public version
version = "WIN 6,0,21,0";
// throws if AllowScripAccess does not exist (introduced in 6.0r47)
axo.AllowScriptAccess = "always";
// safe to call for 6.0r47 or greater
version = axo.GetVariable("$version");
} catch (e) {
}
}
if (!version)
{
try {
// version will be set for 4.X or 5.X player
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = axo.GetVariable("$version");
} catch (e) {
}
}
if (!version)
{
try {
// version will be set for 3.X player
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");
version = "WIN 3,0,18,0";
} catch (e) {
}
}
if (!version)
{
try {
// version will be set for 2.X player
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
version = "WIN 2,0,0,11";
} catch (e) {
version = -1;
}
}
return version;
}
// JavaScript helper required to detect Flash Player PlugIn version information
function GetSwfVer(){
// NS/Opera version >= 3 check for Flash plugin in plugin array
var flashVer = -1;
if (navigator.plugins != null && navigator.plugins.length > 0) {
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
var descArray = flashDescription.split(" ");
var tempArrayMajor = descArray[2].split(".");
var versionMajor = tempArrayMajor[0];
var versionMinor = tempArrayMajor[1];
var versionRevision = descArray[3];
if (versionRevision == "") {
versionRevision = descArray[4];
}
if (versionRevision[0] == "d") {
versionRevision = versionRevision.substring(1);
} else if (versionRevision[0] == "r") {
versionRevision = versionRevision.substring(1);
if (versionRevision.indexOf("d") > 0) {
versionRevision = versionRevision.substring(0, versionRevision.indexOf("d"));
}
}
var flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
}
}
// MSN/WebTV 2.6 supports Flash 4
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
// WebTV 2.5 supports Flash 3
else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
// older WebTV supports Flash 2
else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
else if ( isIE && isWin && !isOpera ) {
flashVer = ControlVersion();
}
return flashVer;
}
// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision)
{
versionStr = GetSwfVer();
if (versionStr == -1 ) {
return false;
} else if (versionStr != 0) {
if(isIE && isWin && !isOpera) {
// Given "WIN 2,0,0,11"
tempArray = versionStr.split(" "); // ["WIN", "2,0,0,11"]
tempString = tempArray[1]; // "2,0,0,11"
versionArray = tempString.split(","); // ['2', '0', '0', '11']
} else {
versionArray = versionStr.split(".");
}
var versionMajor = versionArray[0];
var versionMinor = versionArray[1];
var versionRevision = versionArray[2];
// is the major.revision >= requested major.revision AND the minor version >= requested minor
if (versionMajor > parseFloat(reqMajorVer)) {
return true;
} else if (versionMajor == parseFloat(reqMajorVer)) {
if (versionMinor > parseFloat(reqMinorVer))
return true;
else if (versionMinor == parseFloat(reqMinorVer)) {
if (versionRevision >= parseFloat(reqRevision))
return true;
}
}
return false;
}
}
function AC_AddExtension(src, ext)
{
if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');
else
return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = '';
if (isIE && isWin && !isOpera)
{
str += '<object ';
for (var i in objAttrs)
{
str += i + '="' + objAttrs[i] + '" ';
}
str += '>';
for (var i in params)
{
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
}
str += '</object>';
}
else
{
str += '<embed ';
for (var i in embedAttrs)
{
str += i + '="' + embedAttrs[i] + '" ';
}
str += '> </embed>';
}
document.write(str);
}
function AC_FL_RunContent(){
var ret =
AC_GetArgs
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
var ret =
AC_GetArgs
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
, null
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();
switch (currArg){
case "classid":
break;
case "pluginspage":
ret.embedAttrs[args[i]] = args[i+1];
break;
case "src":
case "movie":
args[i+1] = AC_AddExtension(args[i+1], ext);
ret.embedAttrs["src"] = args[i+1];
ret.params[srcParamName] = args[i+1];
break;
case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblClick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
case "type":
case "codebase":
case "id":
ret.objAttrs[args[i]] = args[i+1];
break;
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}
/*
安装了flash cs3之后发现 程序发布静态页面的时候 已经自动生成了一个这个js文件 在同一级文件夹中了
HTML页面:
<script type="text/javascript">
AC_FL_RunContent( 'codebase','http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0','width','1004','height','154','src','aaaa','quality','high','pluginspage','http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash','movie','aa' ); //end AC code
</script>
<noscript><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,28,0" width="1004" height="154">
<param name="movie" value="aa.swf" />
<param name="quality" value="high" />
<embed src="aaaa.swf" quality="high" pluginspage="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" width="1004" height="154"></embed>
</object></noscript>
*/
posted @
2008-06-26 14:37 zhangsir 阅读(22) |
评论 (0) |
编辑
public static string safeRequest(string str)
{
string outStr = null;
object querStr = HttpContext.Current.Request.QueryString[str];
if (querStr != null)
{
outStr = InputText(querStr.ToString(), 30);
return outStr;
}
else
return outStr;
}
public static string InputText(string inputString, int maxLength)
{
System.Text.StringBuilder retVal = new System.Text.StringBuilder();
// check incoming parameters for null or blank string
if ((inputString != null) && (inputString != String.Empty))
{
inputString = inputString.Trim();
//op the string incase the client-side max length
//fields are bypassed to prevent buffer over-runs
if (inputString.Length > maxLength)
inputString = inputString.Substring(0, maxLength);
//convert some harmful symbols incase the regular
//expression validators are changed
for (int i = 0; i < inputString.Length; i++)
{
switch (inputString[i])
{
case '"':
retVal.Append(""");
break;
case '<':
retVal.Append("<");
break;
case '>':
retVal.Append(">");
break;
default:
retVal.Append(inputString[i]);
break;
}
}
// Replace single quotes with white space
retVal.Replace("'", " ");
retVal.Replace(";", " ");
retVal.Replace("insert", "");
retVal.Replace("select", "");
retVal.Replace("delete", "");
retVal.Replace("update", "");
retVal.Replace("drop", "");
retVal.Replace("create", "");
retVal.Replace("alter", "");
retVal.Replace(" ", "20%");
retVal.Replace("xp_cmdshell", "");
retVal.Replace("xp_regaddmultistring", "");
retVal.Replace("xp_regdeletekey", "");
retVal.Replace("xp_regdeletevalue", "");
retVal.Replace("xp_regenumkeys", "");
retVal.Replace("xp_regenumvalues", "");
retVal.Replace("xp_regread", "");
retVal.Replace("xp_regremovemultistring", "");
retVal.Replace("xp_regwrite", "");
retVal.Replace("sp_OACreate", "");
retVal.Replace("sp_OADestroy", "");
retVal.Replace("sp_OAMethod", "");
retVal.Replace("sp_OAGetProperty", "");
retVal.Replace("sp_OASetProperty", "");
retVal.Replace("sp_OAGetErrorInfo", "");
retVal.Replace("sp_OAStop", "");
}
return retVal.ToString();
}
posted @
2008-05-07 14:31 zhangsir 阅读(21) |
评论 (1) |
编辑
posted @
2008-05-03 15:05 zhangsir 阅读(23) |
评论 (0) |
编辑
<script language="javascript" type="text/javascript">
var Obj_;
document.onclick=function()
{
if(event.srcElement.tagName=="INPUT")
{
Obj_=event.srcElement;
getNextElement(event.srcElement);
}
}
function getNextElement(srcObj)
{
var i=0;
while(srcObj.tagName!="TABLE")
{
srcObj=srcObj.parentNode;
i++;
if(i>20) break;
}
//
if(srcObj.nextSibling==null)
{
selectParentNode(srcObj);
return;
}
if(srcObj.nextSibling.tagName=="DIV")
{
var targetObj=srcObj.nextSibling;
selectThem(targetObj);
}
// else if(srcObj.nextSibling.tagName=="TABLE")
// {
// //
// }
selectParentNode(srcObj);
}
function selectThem(targetObj_)
{
var ChexBox_Obj=targetObj_.getElementsByTagName("INPUT");
for(var i=0;i<ChexBox_Obj.length;i++)
{
ChexBox_Obj[i].checked=Obj_.checked;
}
}
function selectParentNode(obj)
{
while(obj.parentNode.previousSibling.tagName=="TABLE")
{
//
var parentObj=obj.parentNode;
var ChexBox_brother=parentObj.getElementsByTagName("INPUT");
var counter_=0;
for(var i=0;i<ChexBox_brother.length;i++)
{
if(ChexBox_brother[i].checked) counter_++;
}
//
var parentNContiner=obj.parentNode.previousSibling;
var CheckB=parentNContiner.getElementsByTagName("INPUT");
CheckB[0].checked=counter_>0?true:false;
obj=parentNContiner;
}
}
</script>
想必大家都是触类旁通的,这段代码适合vs2005中treeview控件生成的树形菜单,以下是代码片段:
<asp:TreeView ID="TreeView_1" ShowCheckBoxes="all" runat="server" ShowLines="true" >


posted @
2008-04-25 02:58 zhangsir 阅读(112) |
评论 (2) |
编辑
效果如图

UpFile.Fla
以下是代码片段:
fileRefListener.onSelect = function (fileRefList:FileReferenceList):Void {
uploadBtn.enabled = true;
rePaintProBar("progressBar", 18.0, 50.0);
var list:Array = fileRefList.fileList;
var fileRef:FileReference;
totalBytes = 0;
for(var i:Number = 0; i < list.length; i++) {
fileRef = list[i];
totalBytes += fileRef.size;
txtFilePath.text = fileRef.name;
FileExt = fileRef.type;
}
}
fileRefListener.onCancel = function (fileRef:FileReference):Void {
uploadBtn.enabled = false;
}
fileRefListener.onOpen = function (fileRef:FileReference):Void {
txt_FilePath.label = fileRef.name;
}
fileRefListener.onProgress = function (fileRef:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
progressBar.mode = "manual";
var temp:Number = bytesLoaded - uploadedBytes2[fileRef.name]
uploadedBytes2[fileRef.name] = bytesLoaded;
uploadedBytes += temp;
progressBar.setProgress(uploadedBytes, totalBytes);
txtUploaded.text = GetSizeType(uploadedBytes);
txtTotal.text = GetSizeType(totalBytes);
}
fileRefListener.onComplete = function (fileRef:FileReference):Void {
filesCompleted++;
if(filesCompleted == totalFiles)
FinishedUpload();
}
fileRefList.addListener(fileRefListener);
browseButn.clickHandler = function () {
fileRefList.browse(allTypes);
}
uploadBtn.clickHandler = function () {
var list:Array = fileRefList.fileList;
var fileRef:FileReference;
if(uploadBtn.label == "上传")
{
browseBtn.enabled = false;
uploadBtn.label = "取消";
totalFiles = list.length;
filesCompleted = 0;
uploadedBytes = 0;
uploadedBytes2 = [];
txtUploadNum.text = "已上传:";
txtFileTotal.text = "文件大小:";
for(var i:Number = 0; i < list.length; i++) {
fileRef = list[i];
fileRef.addListener(fileRefListener);
uploadedBytes2[fileRef.name] = 0;
if(uploadPage != undefined)
fileRef.upload(uploadPage);
}
}
else
{
for(var i:Number = 0; i < list.length; i++) {
fileRef = list[i];
fileRef.cancel();
}
uploadBtn.label = "上传";
browseBtn.enabled = true;
}
} |
UpLoadFile.aspx
以下是代码片段:
string saveToFolder = "/UpFile/";
HttpFileCollection uploadedFiles = Request.Files;
string NewFileName = Session["UpLoadFileName"].ToString();
string Path = Server.MapPath(saveToFolder);
for (int i = 0; i < uploadedFiles.Count; i++)
{
HttpPostedFile F = uploadedFiles[i];
if (uploadedFiles[i] != null && F.ContentLength > 0)
{
string newName = F.FileName.Substring(F.FileName.LastIndexOf("\") + 1);
F.SaveAs(Path + "/" + NewFileName + F.FileName.Substring(F.FileName.LastIndexOf(".")));
}
} |
posted @
2008-04-01 19:22 zhangsir 阅读(169) |
评论 (0) |
编辑
Die Auswahl ist alphabetisch sortiert und erhebt keinen Anspruch auf Vollständigkeit.
| MIME-Typ |
Dateiendung(en) |
Bedeutung |
application/acad |
*.dwg |
AutoCAD-Dateien (nach NCSA) |
application/applefile |
|
AppleFile-Dateien |
application/astound |
*.asd *.asn |
Astound-Dateien |
application/dsptype |
*.tsp |
TSP-Dateien |
application/dxf |
*.dxf |
AutoCAD-Dateien (nach CERN) |
application/futuresplash |
*.spl |
Flash Futuresplash-Dateien |
application/gzip |
*.gz |
GNU Zip-Dateien |
application/listenup |
*.ptlk |
Listenup-Dateien |
application/mac-binhex40 |
*.hqx |
Macintosh Binärdateien |
application/mbedlet |
*.mbd |
Mbedlet-Dateien |
application/mif |
*.mif |
FrameMaker Interchange Format Dateien |
application/msexcel |
*.xls *.xla |
Microsoft Excel Dateien |
application/mshelp |
*.hlp *.chm |
Microsoft Windows Hilfe Dateien |
application/mspowerpoint |
*.ppt *.ppz *.pps *.pot |
Microsoft Powerpoint Dateien |
application/msword |
*.doc *.dot |
Microsoft Word Dateien |
application/octet-stream |
*.bin *.exe *.com *.dll *.class |
Ausführbare Dateien |
application/oda |
*.oda |
Oda-Dateien |
application/pdf |
*.pdf |
Adobe PDF-Dateien |
application/postscript |
*.ai *.eps *.ps |
Adobe PostScript-Dateien |
application/rtc |
*.rtc |
RTC-Dateien |
application/rtf |
*.rtf |
Microsoft RTF-Dateien |
application/studiom |
*.smp |
Studiom-Dateien |
application/toolbook |
*.tbk |
Toolbook-Dateien |
application/vocaltec-media-desc |
*.vmd |
Vocaltec Mediadesc-Dateien |
application/vocaltec-media-file |
*.vmf |
Vocaltec Media-Dateien |
application/xhtml+xml |
*.htm *.html *.shtml *.xhtml |
XHTML-Dateien |
application/xml |
*.xml |
XML-Dateien |
application/x-bcpio |
*.bcpio |
BCPIO-Dateien |
application/x-compress |
*.z |
zlib-komprimierte Dateien |
application/x-cpio |
*.cpio |
CPIO-Dateien |
application/x-csh |
*.csh |
C-Shellscript-Dateien |
application/x-director |
*.dcr *.dir *.dxr |
Macromedia Director-Dateien |
application/x-dvi |
*.dvi |
DVI-Dateien |
application/x-envoy |
*.evy |
Envoy-Dateien |
application/x-gtar |
*.gtar |
GNU tar-Archivdateien |
application/x-hdf |
*.hdf |
HDF-Dateien |
application/x-httpd-php |
*.php *.phtml |
PHP-Dateien |
application/x-javascript |
*.js |
serverseitige JavaScript-Dateien |
application/x-latex |
*.latex |
LaTeX-Quelldateien |
application/x-macbinary |
*.bin |
Macintosh Binärdateien |
application/x-mif |
*.mif |
FrameMaker Interchange Format Dateien |
application/x-netcdf |
*.nc *.cdf |
Unidata CDF-Dateien |
application/x-nschat |
*.nsc |
NS Chat-Dateien |
application/x-sh |
*.sh |
Bourne Shellscript-Dateien |
application/x-shar |
*.shar |
Shell-Archivdateien |
application/x-shockwave-flash |
*.swf *.cab |
Flash Shockwave-Dateien |
application/x-sprite |
*.spr *.sprite |
Sprite-Dateien |
application/x-stuffit |
*.sit |
Stuffit-Dateien |
application/x-supercard |
*.sca |
Supercard-Dateien |
application/x-sv4cpio |
*.sv4cpio |
CPIO-Dateien |
application/x-sv4crc |
*.sv4crc |
CPIO-Dateien mit CRC |
application/x-tar |
*.tar |
tar-Archivdateien |
application/x-tcl |
*.tcl |
TCL Scriptdateien |
application/x-tex |
*.tex |
TeX-Dateien |
application/x-texinfo |
*.texinfo *.texi |
Texinfo-Dateien |
application/x-troff |
*.t *.tr *.roff |
TROFF-Dateien (Unix) |
application/x-troff-man |
*.man *.troff |
TROFF-Dateien mit MAN-Makros (Unix) |
application/x-troff-me |
*.me *.troff |
TROFF-Dateien mit ME-Makros (Unix) |
application/x-troff-ms |
*.me *.troff |
TROFF-Dateien mit MS-Makros (Unix) |
application/x-ustar |
*.ustar |
tar-Archivdateien (Posix) |
application/x-wais-source |
*.src |
WAIS Quelldateien |
application/x-www-form-urlencoded |
|
HTML-Formulardaten an CGI |
application/zip |
*.zip |
ZIP-Archivdateien |
audio/basic |
*.au *.snd |
Sound-Dateien |
audio/echospeech |
*.es |
Echospeed-Dateien |
audio/tsplayer |
*.tsi |
TS-Player-Dateien |
audio/voxware |
*.vox |
Vox-Dateien |
audio/x-aiff |
*.aif *.aiff *.aifc |
AIFF-Sound-Dateien |
audio/x-dspeeh |
*.dus *.cht |
Sprachdateien |
audio/x-midi |
*.mid *.midi |
MIDI-Dateien |
audio/x-mpeg |
*.mp2 |
MPEG-Dateien |
audio/x-pn-realaudio |
*.ram *.ra |
RealAudio-Dateien |
audio/x-pn-realaudio-plugin |
*.rpm |
RealAudio-Plugin-Dateien |
audio/x-qt-stream |
*.stream |
Quicktime-Streaming-Dateien |
audio/x-wav |
*.wav |
WAV-Dateien |
drawing/x-dwf |
*.dwf |
Drawing-Dateien |
image/cis-cod |
*.cod |
CIS-Cod-Dateien |
image/cmu-raster |
*.ras |
CMU-Raster-Dateien |
image/fif |
*.fif |
FIF-Dateien |
image/gif |
*.gif |
GIF-Dateien |
image/ief |
*.ief |
IEF-Dateien |
image/jpeg |
*.jpeg *.jpg *.jpe |
JPEG-Dateien |
image/png |
*.png |
PNG-Dateien |
image/tiff |
*.tiff *.tif |
TIFF-Dateien |
image/vasa |
*.mcf |
Vasa-Dateien |
image/vnd.wap.wbmp |
*.wbmp |
Bitmap-Dateien (WAP) |
image/x-freehand |
*.fh4 *.fh5 *.fhc |
Freehand-Dateien |
image/x-portable-anymap |
*.pnm |
PBM Anymap Dateien |
image/x-portable-bitmap |
*.pbm |
PBM Bitmap Dateien |
image/x-portable-graymap |
*.pgm |
PBM Graymap Dateien |
image/x-portable-pixmap |
*.ppm |
PBM Pixmap Dateien |
image/x-rgb |
*.rgb |
RGB-Dateien |
image/x-windowdump |
*.xwd |
X-Windows Dump |
image/x-xbitmap |
*.xbm |
XBM-Dateien |
image/x-xpixmap |
*.xpm |
XPM-Dateien |
message/external-body |
|
Nachricht mit externem Inhalt |
message/http |
|
HTTP-Headernachricht |
message/news |
|
Newsgroup-Nachricht |
message/partial |
|
Nachricht mit Teilinhalt |
message/rfc822 |
|
Nachricht nach RFC 2822 |
model/vrml |
*.wrl |
Visualisierung virtueller Welten (VRML) |
multipart/alternative |
|
mehrteilige Daten gemischt |
multipart/byteranges |
|
mehrteilige Daten mit Byte-Angaben |
multipart/digest |
|
mehrteilige Daten / Auswahl |
multipart/encrypted |
|
mehrteilige Daten verschlüsselt |
multipart/form-data |
|
mehrteilige Daten aus HTML-Formular (z.B. File-Upload) |
multipart/mixed |
|
mehrteilige Daten gemischt |
multipart/parallel |
|