用Wipe等ActiveX技术实现n幅图片轮换擦洗显示
2007-12-09 10:03:35 来源:WEB开发网在做图片轮换擦洗显示时,一般的做法只能显示两张图片,因为Wipe擦洗技术限制只能两张图片间切换。 但可以通过将两张图片转为动画交替显示,下面给大家一个例子:
<script>
var i=0,pictures=new Array();//设置图片数组
var picbase=; //设置图片所在目录
pictures[i++]=1.gif
pictures[i++]=2.gif
pictures[i++]=3.gif
pictures[i++]=4.gif
pictures[i++]=5.gif
pictures[i++]=6.gif
pictures[i++]=7.gif
pictures[i++]=8.gif
pictures[i++]=9.gif
pictures[i++]=10.gif
pictures[i++]=11.gif
pictures[i++]=12.gif
pictures[i++]=13.gif
pictures[i++]=14.gif
pictures[i++]=15.gif
pictures[i++]=16.gif
pictures[i++]=17.gif
pictures[i++]=18.gif
pictures[i++]=19.gif
pictures[i++]=20.gif
pictures[i++]=21.gif
pictures[i++]=22.gif
var picturewidth=400//图片宽度
var pictureheight=290//图片高度
var delay=1//延迟时间
</script>
<script>
if (document.all) {
document.write(<OBJECT ID=DAControl_Wipe )
document.write(STYLE=width:+picturewidth+;height:+pictureheight+)
document.write(CLASSID=CLSID:B6FFC24C-7E13-11D0-9B47-00C04FC2F51D>)
document.write(</OBJECT>)
m = DAControl_Wipe.MeterLibrary;
whatTransformation = new ActiveXObject(DXImageTransform.Microsoft.Wipe);
whatTransformation.GradientSize = 1.0;//设置渐变度
whatTransformation.WipeStyle = 0;//设置擦洗类型
var myArr=new Array(),myArr2=new Array();
var len=Math.floor(pictures.length/2);//将图片分成两组
for(var i=0;i<len;i++){
myArr[i]=m.ImportImage(picbase+pictures[2*i])
myArr2[i]=m.ImportImage(picbase+pictures[2*i+1])
}
if(pictures[2*i])
myArr[i]=m.ImportImage(picbase+pictures[2*i])
else
myArr[i]=m.ImportImage(picbase+pictures[0]) ;
myArr=m.Array(myArr)
myArr2=m.Array(myArr2)
Index = m.Interpolate(0.5,len+0.5,len*2*delay).RepeatForever();
Index2 = m.Interpolate(0,len,len*2*delay).RepeatForever();
//交错运行半个时间单元
var whatPictures=new Array();
whatPictures[0] = myArr.NthAnim(Index);
whatPictures[1] = myArr2.NthAnim(Index2);
forward = m.Interpolate(0, 1, delay);
back = m.Interpolate(1, 0, delay);
whatMovement = m.Sequence(forward, back).RepeatForever();
//设置参数方向
theResult = m.ApplyDXTransform( whatTransformation, whatPictures, whatMovement );
DAControl_Wipe.Image = theResult.OutputBvr;//设置显示图形
DAControl_Wipe.Start();//开始
}
</script>
技术交流 永无止境
更多精彩
赞助商链接