SmartClient animation programming : Animation « SmartClient « JavaScript DHTML






SmartClient animation programming

 <!-- Isomorphic SmartClient Copyright(c) 1998 and beyond Isomorphic Software, Inc. "SmartClient" is a trademark of Isomorphic Software, Inc. All rights reserved. Open Source License SmartClient source code, located under the source/ directory, and the resulting assembled modules in isomorphic/system/modules/, as well as JavaScript and CSS files under the isomorphic/skins directory are licensed under the terms of the GNU Lesser General Public License, version 3. The text of the LGPLv3 license is available online at http://www.gnu.org/licenses/lgpl-3.0.html  If your project precludes the use of this license, or if you'd like to support SmartClient LGPL, we encourage you to buy a commercial license. Icon Experience Collection Selected 16x16 icons within the isomorphic/skins directory are part of the Icon Experience collection (http://www.iconexperience.com) and may be freely used with any SmartClient components without charge, but may not be used as part of screen designs separate from SmartClient components without a purchase of a license from Icon Experience. We are working to replace these icons as soon as possible. All other media found under the isomorphic/skins directory may be used under the LGPLv3. Commercial Licenses A number of commercial licenses are available for purchase. Please see http://smartclient.com/license.  Warranty Disclaimer This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. Copyright 2001 and beyond Isomorphic Software, Inc. Last revised July 20, 2008. --> <!-- The following code is revised from SmartClient demo code(SmartClient_70rc2_LGPL.zip).--> <HTML> <HEAD> <TITLE>SmartClient animation programming</TITLE> <SCRIPT>var isomorphicDir = "isomorphic/"</SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Core.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Foundation.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Containers.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Grids.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_Forms.js></SCRIPT> <SCRIPT SRC=isomorphic/system/modules/ISC_DataBinding.js></SCRIPT> <SCRIPT SRC=isomorphic/skins/SmartClient/load_skin.js></SCRIPT> </HEAD><BODY bgcolor=tan><SCRIPT> // // SmartClient animation programming // // Demonstrates the following public methods for component animations: // // animateMove (left, top, callback, time, acceleration) // animateResize (width, height, callback, time, acceleration) // animateRect (left, top, width, height, callback, time, acceleration) // animateFade (opacity, callback, time, acceleration) // animateShow (slideIn, callback, time, acceleration) // animateHide (slideOut, callback, time, acceleration) // animateScroll (scrollLeft, scrollTop, callback, time, acceleration) // // // interval 20ms = 50fps isc.Animation.interval = 20; Canvas.create({ ID:"dest", overflow:"hidden", align:"center", showEdges:true, edgeSize:5, edgeImage:"[SKIN]/rounded/frame/FFFFFF/5.png", backgroundColor:"#FFFFA0", canDragReposition:true, dragRepositionStop:"this.sendToBack()", canDragResize:true, dragResizeStop:"this.sendToBack()", dragAppearance:"target", contents:"<b>Destination</b> (drag to move or resize)", left:400, top:200, width:200, height:200 }) Canvas.create({ ID:"anim", overflow:"hidden", border:"1px solid black", backgroundColor:"#A0FFA0", canDragReposition:true, canDragResize:true, dragAppearance:"target", smoothFade:true, contents:"1<br>2<br>3<br><b>Animated Object</b> (drag to move or resize)<br>3<br>2<br>1", left:100, top:250, width:100, height:100 }) var numberStackHTML = "0"; for (i=1; i<100; i++) numberStackHTML += "<br>"+i; HTMLPane.create({ ID:"scroller", showEdges:true, edgeSize:5, edgeImage:"[SKIN]/rounded/frame/FFFFFF/5.png", backgroundColor:"#D0D0FF", canDragReposition:true, canDragResize:true, dragAppearance:"target", contents:numberStackHTML, left:640, top:10, width:100, height:160 }) Slider.create({ ID:"timeSlider", left:20, top:0, width:550, vertical:false, value:1000, minValue:250, maxValue:4000, numValues:16, title:"Duration (ms)", animateThumb:true, animateThumbInit:true }) Button.create({ left:260, top:150, title:"<b>Reset</b>", click: function () { anim.setRect(100,250,100,100); anim.setOpacity(100); anim.scrollTo(0,0); anim.show(); dest.setRect(400,200,200,200); scroller.setRect(640,10,100,160); scroller.scrollTo(0,0); } }) Button.create({ left:20, top:80, title:"Move", click: function () {anim.animateMove( dest.getLeft(), dest.getTop(), null, timeSlider.getValue() )} }) Button.create({ left:20, top:110, title:"Resize", click: function () {anim.animateResize( dest.getWidth(), dest.getHeight(), null, timeSlider.getValue() )} }) Button.create({ left:140, top:80, title:"Move &amp; Resize", click: function () {anim.animateRect( dest.getLeft(), dest.getTop(), dest.getWidth(), dest.getHeight(), null, timeSlider.getValue() )} }) Button.create({ left:140, top:110, title:"Move, Resize", click: function () {anim.animateMove( dest.getLeft(), dest.getTop(), "anim.animateResize(dest.getWidth(),dest.getHeight(),null,timeSlider.getValue())", timeSlider.getValue() )} }) Button.create({ left:260, top:80, title:"Fade out", // click: function () {anim.animateFade(0, null, timeSlider.getValue())}  click: function () {anim.animateHide("fade", null, timeSlider.getValue())} }) Button.create({ left:260, top:110, title:"Fade in", // click: function () {anim.animateFade(100, null, timeSlider.getValue())}  click: function () {anim.animateShow("fade", null, timeSlider.getValue())} }) Button.create({ left:380, top:80, title:"Slide out", click: function () {anim.animateHide("slide", null, timeSlider.getValue())} }) Button.create({ left:380, top:110, title:"Slide in", click: function () {anim.animateShow("slide", null, timeSlider.getValue())} }) Button.create({ left:500, top:80, title:"Wipe out", click: function () {anim.animateHide("wipe", null, timeSlider.getValue())} }) Button.create({ left:500, top:110, title:"Wipe in", click: function () {anim.animateShow("wipe", null, timeSlider.getValue())} }) Button.create({ left:760, top:50, title:"Scroll top", click: function () {scroller.animateScroll(0, 0, null, timeSlider.getValue())} }) Button.create({ left:760, top:80, title:"Scroll middle", click: function () {scroller.animateScroll(0, (scroller.getScrollHeight()-scroller.getHeight())/2, null, timeSlider.getValue())} }) Button.create({ left:760, top:110, title:"Scroll end", click: function () {scroller.animateScroll(0, scroller.getScrollBottom(), null, timeSlider.getValue())} }) FormLayout.create({ left:150, top:550, width:300, backgroundColor:"white", border:"1px solid black", titlePrefix:"<b>", titleSuffix:"</b>", items:[ {name:"Acceleration", type:"radioGroup", valueMap:["smoothStart", "smoothEnd", "smoothStartEnd", "none", "custom"], defaultValue:"smoothEnd", change:function (form, item, value, oldValue) { if (value == "custom") { // custom acceleration function  isc.Canvas.addProperties({ animateAcceleration:function(ratio) { return Math.pow(ratio, 6) } }); } else { // built-in acceleration functions  isc.Canvas.addProperties({animateAcceleration:value}) } } } ] }) </SCRIPT></BODY></HTML> 








Related examples in the same category

1.Animation: Zoom in and zoom out
2.Customized animation path: animateOrbit, animateOrbitStep
3.Image fade in and fade out
4.Animation: Show and hide
5.Animation: minimize window
6.Animation: Move in and move out
7.Expand and resize animation
8.Image zoom in and zoom out animation
9.Control the animation sequence
10.Animation: slide in and slide out
11.Wipe in and wipe out
close