<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
<Scripts>
<asp:ScriptReference Assembly="Microsoft.Web.Preview" Name="PreviewGlitz.js" />
<asp:ScriptReference Assembly="Microsoft.Web.Preview" Name="PreviewScript.js" />
</Scripts>
</asp:ScriptManager>
<br />
<div class="h1">Fading in and out Animation Demo</div><br />
<input id="btnFadeOutAnimate" type="button" value="Fade Out" style="width: 155px; height: 37px" language="javascript" />
<input id="btnFadeInAnimate" style="width: 135px; height: 37px" type="button" value="Fade In" language="javascript" FadeUsingFutures(false)" /><br />
<div id="animationTarget" style="width: 207px; height: 252px; background-color: #ffcc00">
<img src="img/lushan_1.jpg" style="width: 208px; height: 258px;" />
</div>
</form>
<script language="javascript" type="text/javascript">
var domElementVar = new Sys.UI.Control( $get("animationTarget") );
var fadeAnimation = new Sys.Preview.UI.Effects.FadeAnimation();
fadeAnimation.set_duration( 0.3 );
fadeAnimation.set_target( domElementVar );
fadeAnimation.setValue( 70 );
fadeAnimation.set_fps(45);
function FadeUsingFutures( fadeOut )
{
var fadeEffect = fadeOut ? Sys.Preview.UI.Effects.FadeEffect.FadeOut : Sys.Preview.UI.Effects.FadeEffect.FadeIn ;
$get("btnFadeOutAnimate").style.display = fadeOut ? "none":"block";
$get("btnFadeInAnimate").style.display = fadeOut ? "block":"none";
fadeAnimation.set_effect( fadeEffect );
fadeAnimation.play();
}
</script>
属性
|
描述
|
target
|
指定页面上将要应用该动画的元素的id
|
property
|
指定该动画将应用到页面元素中的哪个属性上
|
startValue
|
指定该动画将改变的值范围的开始值
|
endValue
|
指定该动画将改变的值范围的结束值
|
unit
|
指定该动画将改变的属性的单位。例如像素单位使用px,百分比单位使用%
|
duration
|
指定该动画将运行的时间长度,单位为秒
|
fps
|
获取或设置该动画的fps属性。默认值为25
|
isActive
|
获取一个布尔值,代表该动画是否已经开始运行
|
isPlaying
|
获取一个布尔值,代表该动画是否正在运行
|
percentComplete
|
获取一上0到100的数字,代表该动画目前完成运行的百分比
|
<script type="text/xml-script">
<page xmlns:script="http://schemas.microsoft.com/xml-script/2005">
<components>
<image id="i">
<behaviors>
<LayoutBehavior id="Label1Style" />
</behaviors>
</image>
<lengthAnimation id="lani"
target="Label1Style" property="width"
startValue="100" endValue="480" fps='25'
duration="5" >
</lengthAnimation>
<button id="startButton">
<click>
<InvokeMethodAction target="lani" method="play" />
</click>
</button>
</components>
</page>
</script>
//……省略
<components>
<label id="mynumber" />
<numberAnimation id="mynumberAnimation"
target="mynumber" property="text"
startValue="30" endValue="0" integralValues="false" duration="30" />
<button id="startButton">
<click>
<InvokeMethodAction target="mynumberAnimation" method="play" />
</click>
</button>
</components>
<script type="text/xml-script">
<page xmlns:demo="demo">
<components>
<label id="sampleLabel" />
<discreteAnimation id="wordAnimation"
target="sampleLabel" property="text"
values="'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'"
duration="3" />
<button id="startButton">
<click>
<invokeMethodAction target="wordAnimation" method="play" />
</click>
</button>
</components>
</page>
</script>
Sys.Preview.UI.Effects.CompositeAnimation=function(){
Sys.Preview.UI.Effects.CompositeAnimation.initializeBase(this);
this._animations=Sys.Component.createCollection(this)
};
Sys.Preview.UI.Effects.CompositeAnimation.prototype={
get_animations:function(){
return this._animations},
getAnimatedValue:function(){
throw Error.invalidOperation()},
dispose:function(){
this._animations.dispose();
this._animations=null;
Sys.Preview.UI.Effects.CompositeAnimation.callBaseMethod(this,"dispose")},
onEnd:function(){
for(var a=0;a<this._animations.length;a++)
this._animations[a].onEnd() },
onStart:function(){
for(var a=0;a<this._animations.length;a++)
this._animations[a].onStart()},
onStep:function(b){
for(var a=0;a<this._animations.length;a++)
this._animations[a].onStep(b)
}
};
Sys.Preview.UI.Effects.CompositeAnimation.descriptor={
properties:[{
name:"animations",type:Array,readOnly:true}]
};
Sys.Preview.UI.Effects.CompositeAnimation.registerClass
("Sys.Preview.UI.Effects.CompositeAnimation",Sys.Preview.UI.Effects.Animation);
<div class="h1">CompositeAnimation Demo</div><br/>
<hr/>
<div id='imageArea' class='demosample' style="width: 162px; height: 236px">
<img id="i" src="img/girl1.jpg"
style="position: absolute; left: 16px; top: 131px; width: 157px; height: 234px; cursor: hand;" />
</div>
<hr/>
<div id='labelArea' class='demosample1' style="width: 265px; height: 21px">
<label id="Label1" >Click the girl to see what happens!</label>
</div>
<script type="text/javascript">
//修改此数字可以更改缩放因子
var _scaleFactor = 6;
var _image, _animation;
function Explode(id)
{
//为了避免出现并发动画的冲突
if(_animation != null)
return;
_image = $get(id);
var width = parseFloat(_image.style.width);
var height = parseFloat(_image.style.height);
var x = parseFloat(_image.style.left);
var y = parseFloat(_image.style.top);
//使用一个CompositeAnimation对象实现
//通过缩放、移动和淡出效果“爆炸”目标
var NumberAnimation1 = new Sys.Preview.UI.Effects.NumberAnimation();
NumberAnimation1.set_target(_image);
NumberAnimation1.set_property('style');
NumberAnimation1.set_propertyKey('width');
NumberAnimation1.set_startValue(width);
NumberAnimation1.set_endValue(width * _scaleFactor);
var NumberAnimation2 = new Sys.Preview.UI.Effects.NumberAnimation();
NumberAnimation2.set_target(_image);
NumberAnimation2.set_property('style');
NumberAnimation2.set_propertyKey('height');
NumberAnimation2.set_startValue(height);
NumberAnimation2.set_endValue(height * _scaleFactor);
var NumberAnimation3 = new Sys.Preview.UI.Effects.NumberAnimation();
NumberAnimation3.set_target(_image);
NumberAnimation3.set_property('style');
NumberAnimation3.set_propertyKey('left');
NumberAnimation3.set_startValue(x);
NumberAnimation3.set_endValue(x - (width * (_scaleFactor - 1)) / 2);
var NumberAnimation4 = new Sys.Preview.UI.Effects.NumberAnimation();
NumberAnimation4.set_target(_image);
NumberAnimation4.set_property('style');
NumberAnimation4.set_propertyKey('top');
NumberAnimation4.set_startValue(y);
NumberAnimation4.set_endValue(y - (height * (_scaleFactor - 1)) / 2);
var FadeAnimation1 = new Sys.Preview.UI.Effects.FadeAnimation();
FadeAnimation1.set_target(new Sys.Preview.UI.Image(_image));
FadeAnimation1.set_effect (Sys.Preview.UI.Effects.FadeEffect.FadeOut);
_animation = new Sys.Preview.UI.Effects.CompositeAnimation();
_animation.get_animations().add(NumberAnimation1);
_animation.get_animations().add(NumberAnimation2);
_animation.get_animations().add(NumberAnimation3);
_animation.get_animations().add(NumberAnimation4);
_animation.get_animations().add(FadeAnimation1);
_animation.set_duration(0.3);
_animation.set_fps(35);
_animation.play();
var timer = new Sys.Preview.Timer();
timer.initialize();
timer.set_enabled(true);
timer.set_interval(500);
timer.add_tick(dispose);
}
function dispose(sender)
{
if (!_animation.get_isPlaying())
{
sender.set_enabled(false); //禁用定时器
_image.parentNode.removeChild(_image); //移除图像
_animation = null;
}
}
</script>
本文出自 “青峰” 博客,转载请与作者联系!