日志标签 ‘js’

一段非常有趣的JS代码

2007年4月4日

将这下面一串代码复制到浏览器的地址栏,回车,你就会看到很有趣的现象! [lol]

javascript:R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);

» 阅读更多: 一段非常有趣的JS代码

IE中javascript优化要注意的几点

2006年9月1日

英文见 http://blogs.msdn.com/ie/

同事总结出来的,其实大家想想都明白,只是用的时候又未必会注意到。

大体上有以下几点:
1.尽量避免不定义就使用变量,因为浏览器会层层的向上查找该变量,一直到最后都没有找到才定义新的变量,而这样会很影响性能。
2.在为HTML DOM对象设置属性(尤其是InnerHTML)的时候要使用缓存,不能连续的读写,因为每次读写都会对该DOM对象进行解析和实例化,这个影响也很大。例如:
function BuildUI()
{
var baseElement = document.getElementById(‘target’);
baseElement.innerHTML = ‘’; // Clear out the previous
baseElement.innerHTML += BuildTitle();
baseElement.innerHTML += BuildBody();
baseElement.innerHTML += BuildFooter();
}
应该写成
function BuildUI()
{
var elementText = BuildTitle() + BuildBody() + BuildFooter();
document.getElementById(‘target’).innerHTML = elementText;
}
3.缓存属性频繁使用的变量。例如:
obj.style.fontSize=”1px”;
obj.style.color=”red”;
obj.style.border=”1px”;
obj.style.padding=”1px”;
应该改成:
var style=obj.style;
style.fontSize=”1px”;
style.color=”red”;
style.border=”1px”;
style.padding=”1px”;
这样就避免了每次查找style属性
4.缓存函数指针,例如:
function IterateWorkOverCollection()
{
var length = myCollection.getItemCount();

for(var index = 0; index {
Work(myCollection[index]);
}
}
这个写法每次都要向上递归查找Work函数,所以要写成这样:
function IterateWorkOverCollection()
{
var funcWork = Work;//缓存函数指针
var length = myCollection.getItemCount();

for(var index = 0; index {
funcWork(myCollection[index]);
}
}
5.避免使用with,这个语句有时候带来很多方便,不过要注意的是,它名没有使用缓存,还是一次次的查找变量

可控制Flash Player的Javascript方法

2006年8月9日

最近又要重操旧业,做Flash跟外部的通信相关的东西,所以把老资料翻了出来。

一览表:
Play() —————————————- 播放动画
StopPlay()————————————停止动画
IsPlaying()———————————– 动画是否正在播放
GotoFrame(frame_number)—————- 跳转到某帧
TotalFrames()——————————- 获取动画总帧数
CurrentFrame()——————————回传当前动画所在帧数-1
Rewind()————————————-使动画返回第一帧
SetZoomRect(left,top,right,buttom)——-放大指定区域
Zoom(percent)——————————改变动画大小
Pan(x_position,y_position,unit)————使动画在x,y方向上平移
PercentLoaded()—————————-返回动画被载入的百分比
LoadMovie(level_number,path)———– 加载动画
TGotoFrame(movie_clip,frame_number)- movie_clip跳转到指定帧数
TGotoLabel(movie_clip,label_name)—— movie_clip跳转到指定标签
TCurrentFrame(movie_clip)————— 回传movie_clip当前帧-1
TCurrentLabel(movie_clip)—————–回传movie_clip当前标签
TPlay(movie_clip)—————————播放movie_clip
TStopPlay(movie_clip)———————-停止movie_clip的播放
GetVariable(variable_name)—————–获取变量
SetVariable(variable_name,value)———–变量赋值
TCallFrame(movie_clip,frame_number)—call指定帧上的action
TCallLabel(movie_clip,label)—————-call指定标签上的action
TGetProperty(movie_clip,property)——–获取movie_clip的指定属性
TSetProperty(movie_clip,property,number)-设置movie_clip的指定属性

Flash+Javascript

2005年8月11日

转载自macrodedia,E文,图文并茂,下载mht
主要还是ACtiveX和Javascript之间的通信问题
我的毕业设计翻译中有更相信的资料 ,不过是关于桌面程序的

转载自macrodedia,E文,图文并茂,下载mht
主要还是ACtiveX和Javascript之间的通信问题
我的毕业设计翻译中有更相信的资料 ,不过是关于桌面程序的

点击下载此文件