2)幅图片轮换擦洗显示

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

一般的做法,只能显示两张图片,因为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>

使用的技巧区别于以往的主要在将图片交替转为两个数组,利用内部计数Interpolate和NthAnim技术实现动画。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航