james3mg Posted October 31, 2007 Share Posted October 31, 2007 Just got inspired reading about Apple's new Core Animation feature in OSX...I'm often having to rewrite custom animation routines for my scripts over and over, so I thought I'd give a start at a UDF that could contain all that in one script...here's the first one (the easy one): animating the moving of controls. It uses the built-in ControlMove() at its core, with a bit of math splashed in to determine the positions. The parameters are set to be compatible with any existing ControlMove() calls you may have in your script...you can just Find and Replace "ControlMove( with "_ControlMoveANI(" after including this function in your script, and nothing should break. The defaults for the animation parameters look fine, but you can always change them to suit your needs, of course. The next steps of this function would be actually squashing and stretching the control as part of the animation, and having the ability to move several controls at once in this manner. I'll post those functions whenever I figure them out! In the meantime though, here you go! BTW, heed the warning if you set $_CMminTime...your script will be unresponsive (like a sleep) for the number of milliseconds you specify in this parameter, since you're telling this function to take at least that many milliseconds to complete. expandcollapse popup;; _ControlMoveANI UDF function ;; ;; Author: james3mg ;; ;; Description: Animated version of ControlMove() - parameters are set so that you can "Find and Replace" ControlMove calls ;; with _ControlMoveAni calls in existing scripts without breaking anything - the default animation parameters ;; look fine with no further modification. ;; ;; Parameters: ;; $_CMTitle the title of the window with the control you want to move (same as ControlMove() ) ;; $_CMText text in the window that contains the control you want to move (same as ControlMove() ) ;; $_CMCtrlID The ID of the control you want to move (same as ControlMove() ) ;; $_CMx the x coordinate you want to move the control to (-1 means no change) (compatable with existing ControlMove() calls) ;; $_CMy the y coordinate you want to move the control to (-1 means no change) (compatable with existing ControlMove() calls) ;; $_CMw the width you want the control to be when the animation is done (optional) (-1 means no change [default]) (must be -1 or greater) (compatable with existing ControlMove() calls) ;; $_CMh the height you want the control to be when the animation is done (optional) (-1 means no change [default]) (must be -1 or greater) (compatable with existing ControlMove() calls) ;; $_CMFrames the number of frames (jumps) you want the control to take to arrive at the specified coordinates and size (optional, defaults to 25) (must be greater than 0) ;; $_CMFlag the flag to determine the type of animation: (optional) (must be a number between 0 and 3) (no effect if $_CMSpeed is 1) ;; - 0 means no speed change through the animation ;; - 1 means start quicker and slow as it approaches the target ;; - 2 means start slower and speed up as it approaches the target ;; - 3 means start slow, accelerate in the middle, then slow as it's approaching the target (default) ;; $_CMSpeed how dramatically the speed changes according to the $_CMFlag (no effect if $_CMFlag is 0) (default is 2.5) (must be 1 [constant speed] or greater) ;; $_CMminTime the MINIMUM time the animation will last, in milleseconds. SEE WARNING BELOW. 1 is as fast as possible (default). There is no way to set a maximum time. (must be greater than 0) ;; ;; Return Values: ;; On Success: Returns 1 ;; On Failure: Returns 0 and sets errorlevel as follows: ;; @error = 1 means control not found ;; @error = 2 means error in parameter values ;; ;; WARNING: This function will completely freeze your script while it's running. This is especially important to keep in mind when setting a minimum time for the animation, as your script will be guarenteed frozen for the duration you specify. ;; This also means that you can't move more than one control at the same time, though I'm working on a separate function that would allow that to happen. Func _ControlMoveANI($_CMTitle,$_CMText,$_CMCtrlID,$_CMx,$_CMy,$_CMw=-1,$_CMh=-1,$_CMFrames=25,$_CMFlag=3,$_CMSpeed=2.5,$_CMminTime=1) $_CMExistPos=ControlGetPos($_CMTitle,$_CMText,$_CMCtrlID) If @error Then Return(SetError(1,"",0)) If $_CMw<-1 OR $_CMh<-1 OR $_CMFrames<1 OR $_CMFlag<0 OR $_CMSpeed<1 OR $_CMminTime<1 Then Return(SetError(2,"",0)) If $_CMx=-1 Then $_CMx=$_CMExistPos[0] If $_CMy=-1 Then $_CMy=$_CMExistPos[1] If $_CMw=-1 Then $_CMw=$_CMExistPos[2] If $_CMh=-1 Then $_CMh=$_CMExistPos[3] Local $_CMDiffX=$_CMx-$_CMExistPos[0],$_CMDirX=1 If $_CMDiffX < 0 Then $_CMDiffX=Abs($_CMDiffX) $_CMDirX=-1 EndIf Local $_CMDiffY=$_CMy-$_CMExistPos[1],$_CMDirY=1 If $_CMDiffY < 0 Then $_CMDiffY=Abs($_CMDiffY) $_CMDirY=-1 EndIf Local $_CMDiffW=$_CMw-$_CMExistPos[2],$_CMDirW=1 If $_CMDiffW < 0 Then $_CMDiffW=Abs($_CMDiffW) $_CMDirW=-1 EndIf Local $_CMDiffH=$_CMh-$_CMExistPos[3],$_CMDirH=1 If $_CMDiffH < 0 Then $_CMDiffH=Abs($_CMDiffH) $_CMDirH=-1 EndIf $_CMnewX=$_CMExistPos[0] $_CMnewY=$_CMExistPos[1] $_CMnewW=$_CMExistPos[2] $_CMnewH=$_CMExistPos[3] $_CMTimer=TimerInit() For $_CMi=1 To $_CMFrames;not actually checking the real bits in the flag to determine behavior - there's too few options to make that worthwhile, but it's structured so if another behavior (bit) was added (option 4), it wouldn't break scripts that already use this function, though a flag of 3 would have to be rethought... If $_CMFlag=0 Then If $_CMDiffX <> 0 Then $_CMnewX=$_CMExistPos[0]+$_CMDirX*(($_CMDiffX/$_CMFrames)*$_CMi) If $_CMDiffY <> 0 Then $_CMnewY=$_CMExistPos[1]+$_CMDirY*(($_CMDiffY/$_CMFrames)*$_CMi) If $_CMDiffW <> 0 Then $_CMnewW=$_CMExistPos[2]+$_CMDirW*(($_CMDiffW/$_CMFrames)*$_CMi) If $_CMDiffH <> 0 Then $_CMnewH=$_CMExistPos[3]+$_CMDirH*(($_CMDiffH/$_CMFrames)*$_CMi) EndIf If $_CMFlag=1 Then If $_CMDiffX <> 0 Then $_CMnewX=$_CMExistPos[0]+$_CMDirX*((($_CMi*$_CMDiffX)^(1/$_CMSpeed))*($_CMDiffX/(($_CMFrames*$_CMDiffX)^(1/$_CMSpeed)))) If $_CMDiffY <> 0 Then $_CMnewY=$_CMExistPos[1]+$_CMDirY*((($_CMi*$_CMDiffY)^(1/$_CMSpeed))*($_CMDiffY/(($_CMFrames*$_CMDiffY)^(1/$_CMSpeed)))) If $_CMDiffW <> 0 Then $_CMnewW=$_CMExistPos[2]+$_CMDirW*((($_CMi*$_CMDiffW)^(1/$_CMSpeed))*($_CMDiffW/(($_CMFrames*$_CMDiffW)^(1/$_CMSpeed)))) If $_CMDiffH <> 0 Then $_CMnewH=$_CMExistPos[3]+$_CMDirH*((($_CMi*$_CMDiffH)^(1/$_CMSpeed))*($_CMDiffH/(($_CMFrames*$_CMDiffH)^(1/$_CMSpeed)))) EndIf If $_CMFlag=2 Then If $_CMDiffX <> 0 Then $_CMnewX=$_CMExistPos[0]+$_CMDirX*((($_CMi*$_CMDiffX)^$_CMSpeed)*($_CMDiffX/(($_CMFrames*$_CMDiffX)^$_CMSpeed))) If $_CMDiffY <> 0 Then $_CMnewY=$_CMExistPos[1]+$_CMDirY*((($_CMi*$_CMDiffY)^$_CMSpeed)*($_CMDiffY/(($_CMFrames*$_CMDiffY)^$_CMSpeed))) If $_CMDiffW <> 0 Then $_CMnewW=$_CMExistPos[2]+$_CMDirW*((($_CMi*$_CMDiffW)^$_CMSpeed)*($_CMDiffW/(($_CMFrames*$_CMDiffW)^$_CMSpeed))) If $_CMDiffH <> 0 Then $_CMnewH=$_CMExistPos[3]+$_CMDirH*((($_CMi*$_CMDiffH)^$_CMSpeed)*($_CMDiffH/(($_CMFrames*$_CMDiffH)^$_CMSpeed))) EndIf If $_CMFlag=3 Then _ControlMoveANI($_CMTitle,$_CMText,$_CMCtrlID,$_CMExistPos[0]+($_CMx-$_CMExistPos[0])/2,$_CMExistPos[1]+($_CMy-$_CMExistPos[1])/2,$_CMExistPos[2]+($_CMw-$_CMExistPos[2])/2,$_CMExistPos[3]+($_CMh-$_CMExistPos[3])/2,Floor($_CMFrames/2),2,$_CMSpeed,Ceiling($_CMminTime/2)) _ControlMoveANI($_CMTitle,$_CMText,$_CMCtrlID,$_CMx,$_CMy,$_CMw,$_CMh,Ceiling($_CMFrames/2),1,$_CMSpeed,Ceiling($_CMminTime/2)) ExitLoop EndIf ControlMove($_CMTitle,$_CMText,$_CMCtrlID,$_CMnewX,$_CMnewY,$_CMnewW,$_CMnewH) If $_CMi = $_CMFrames Then ExitLoop Do ;nothing Until TimerDiff($_CMTimer) > ($_CMminTime/($_CMFrames-1))*$_CMi Next Return 1 EndFunc "There are 10 types of people in this world - those who can read binary, and those who can't.""We've heard that a million monkeys at a million keyboards could produce the complete works of Shakespeare; now, thanks to the Internet, we know that is not true." ~Robert Wilensky0101101 1001010 1100001 1101101 1100101 1110011 0110011 1001101 10001110000101 0000111 0001000 0001110 0001101 0010010 1010110 0100001 1101110 Link to comment Share on other sites More sharing options...
JohnBailey Posted October 31, 2007 Share Posted October 31, 2007 (edited) WAY RAD!!!! Oh and nice UDF setup Edited October 31, 2007 by JohnBailey A decision is a powerful thing Link to comment Share on other sites More sharing options...
BrettF Posted October 31, 2007 Share Posted October 31, 2007 Is there an example?? I'd really like one... Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version! Link to comment Share on other sites More sharing options...
JohnBailey Posted October 31, 2007 Share Posted October 31, 2007 Is there an example?? I'd really like one... expandcollapse popup;====================================================================== ; Internal Example ;====================================================================== #include <GUIConstants.au3> Opt("GUIOnEventMode", 1) #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("ControlAnimation Example", 450, 156, 193, 125) $Button1 = GUICtrlCreateButton("Move", 319, 37, 75, 25, 0) $Button2 = GUICtrlCreateButton("Move", 317, 89, 75, 25, 0) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### GUISetOnEvent($GUI_EVENT_CLOSE,'_GUIEvents') GUICtrlSetOnEvent($Button1,'Button1') GUICtrlSetOnEvent($Button2,'Button2') Global $nextEx = 0 While $nextEx = 0 Sleep(100) WEnd Func Button1() Local $_control = "Button1" $_CMExistPos=ControlGetPos("","", $_control) If $_CMExistPos[0] <> 250 Then _ControlMoveANI("","", $_control,250,5) Else _ControlMoveANI("","", $_control,319,37) EndIf EndFunc Func Button2() Local $_control = "Button2" $_CMExistPos=ControlGetPos("","", $_control) If $_CMExistPos[0] <> 5 Then _ControlMoveANI("","", $_control,5,55) Else _ControlMoveANI("","", $_control,317,89) EndIf EndFunc Func _GUIEvents() Select Case @GUI_CtrlId = $GUI_EVENT_CLOSE Terminate() EndSelect EndFunc ;==>_GUIEvents Func OnAutoItExit() ConsoleWrite('CLOSED via Exit'&@CRLF) EndFunc Func Terminate() ConsoleWrite('CLOSED via Terminate'&@CRLF) $nextEx=1; use to goto next Example ;Exit EndFunc ;====================================================================== ; External Example ;====================================================================== Run('calc.exe') Local $winTitle = "Calculator" WinWait($winTitle) Local $_control = 'Button23' _ControlMoveANI($winTitle,"", $_control,5,5) Exit ;; _ControlMoveANI UDF function ;; ;; Author: james3mg ;; ;; Description: Animated version of ControlMove() - parameters are set so that you can "Find and Replace" ControlMove calls ;; with _ControlMoveAni calls in existing scripts without breaking anything - the default animation parameters ;; look fine with no further modification. ;; ;; Parameters: ;; $_CMTitle the title of the window with the control you want to move (same as ControlMove() ) ;; $_CMText text in the window that contains the control you want to move (same as ControlMove() ) ;; $_CMCtrlID The ID of the control you want to move (same as ControlMove() ) ;; $_CMx the x coordinate you want to move the control to (-1 means no change) (compatable with existing ControlMove() calls) ;; $_CMy the y coordinate you want to move the control to (-1 means no change) (compatable with existing ControlMove() calls) ;; $_CMw the width you want the control to be when the animation is done (optional) (-1 means no change [default]) (must be -1 or greater) (compatable with existing ControlMove() calls) ;; $_CMh the height you want the control to be when the animation is done (optional) (-1 means no change [default]) (must be -1 or greater) (compatable with existing ControlMove() calls) ;; $_CMFrames the number of frames (jumps) you want the control to take to arrive at the specified coordinates and size (optional, defaults to 25) (must be greater than 0) ;; $_CMFlag the flag to determine the type of animation: (optional) (must be a number between 0 and 3) (no effect if $_CMSpeed is 1) ;; - 0 means no speed change through the animation ;; - 1 means start quicker and slow as it approaches the target ;; - 2 means start slower and speed up as it approaches the target ;; - 3 means start slow, accelerate in the middle, then slow as it's approaching the target (default) ;; $_CMSpeed how dramatically the speed changes according to the $_CMFlag (no effect if $_CMFlag is 0) (default is 2.5) (must be 1 [constant speed] or greater) ;; $_CMminTime the MINIMUM time the animation will last, in milleseconds. SEE WARNING BELOW. 1 is as fast as possible (default). There is no way to set a maximum time. (must be greater than 0) ;; ;; Return Values: ;; On Success: Returns 1 ;; On Failure: Returns 0 and sets errorlevel as follows: ;; @error = 1 means control not found ;; @error = 2 means error in parameter values ;; ;; WARNING: This function will completely freeze your script while it's running. This is especially important to keep in mind when setting a minimum time for the animation, as your script will be guarenteed frozen for the duration you specify. ;; This also means that you can't move more than one control at the same time, though I'm working on a separate function that would allow that to happen. Func _ControlMoveANI($_CMTitle,$_CMText,$_CMCtrlID,$_CMx,$_CMy,$_CMw=-1,$_CMh=-1,$_CMFrames=25,$_CMFlag=3,$_CMSpeed=2.5,$_CMminTime=1) $_CMExistPos=ControlGetPos($_CMTitle,$_CMText,$_CMCtrlID) If @error Then Return(SetError(1,"",0)) If $_CMw<-1 OR $_CMh<-1 OR $_CMFrames<1 OR $_CMFlag<0 OR $_CMSpeed<1 OR $_CMminTime<1 Then Return(SetError(2,"",0)) If $_CMx=-1 Then $_CMx=$_CMExistPos[0] If $_CMy=-1 Then $_CMy=$_CMExistPos[1] If $_CMw=-1 Then $_CMw=$_CMExistPos[2] If $_CMh=-1 Then $_CMh=$_CMExistPos[3] Local $_CMDiffX=$_CMx-$_CMExistPos[0],$_CMDirX=1 If $_CMDiffX < 0 Then $_CMDiffX=Abs($_CMDiffX) $_CMDirX=-1 EndIf Local $_CMDiffY=$_CMy-$_CMExistPos[1],$_CMDirY=1 If $_CMDiffY < 0 Then $_CMDiffY=Abs($_CMDiffY) $_CMDirY=-1 EndIf Local $_CMDiffW=$_CMw-$_CMExistPos[2],$_CMDirW=1 If $_CMDiffW < 0 Then $_CMDiffW=Abs($_CMDiffW) $_CMDirW=-1 EndIf Local $_CMDiffH=$_CMh-$_CMExistPos[3],$_CMDirH=1 If $_CMDiffH < 0 Then $_CMDiffH=Abs($_CMDiffH) $_CMDirH=-1 EndIf $_CMnewX=$_CMExistPos[0] $_CMnewY=$_CMExistPos[1] $_CMnewW=$_CMExistPos[2] $_CMnewH=$_CMExistPos[3] $_CMTimer=TimerInit() For $_CMi=1 To $_CMFrames;not actually checking the real bits in the flag to determine behavior - there's too few options to make that worthwhile, but it's structured so if another behavior (bit) was added (option 4), it wouldn't break scripts that already use this function, though a flag of 3 would have to be rethought... If $_CMFlag=0 Then If $_CMDiffX <> 0 Then $_CMnewX=$_CMExistPos[0]+$_CMDirX*(($_CMDiffX/$_CMFrames)*$_CMi) If $_CMDiffY <> 0 Then $_CMnewY=$_CMExistPos[1]+$_CMDirY*(($_CMDiffY/$_CMFrames)*$_CMi) If $_CMDiffW <> 0 Then $_CMnewW=$_CMExistPos[2]+$_CMDirW*(($_CMDiffW/$_CMFrames)*$_CMi) If $_CMDiffH <> 0 Then $_CMnewH=$_CMExistPos[3]+$_CMDirH*(($_CMDiffH/$_CMFrames)*$_CMi) EndIf If $_CMFlag=1 Then If $_CMDiffX <> 0 Then $_CMnewX=$_CMExistPos[0]+$_CMDirX*((($_CMi*$_CMDiffX)^(1/$_CMSpeed))*($_CMDiffX/(($_CMFrames*$_CMDiffX)^(1/$_CMSpeed)))) If $_CMDiffY <> 0 Then $_CMnewY=$_CMExistPos[1]+$_CMDirY*((($_CMi*$_CMDiffY)^(1/$_CMSpeed))*($_CMDiffY/(($_CMFrames*$_CMDiffY)^(1/$_CMSpeed)))) If $_CMDiffW <> 0 Then $_CMnewW=$_CMExistPos[2]+$_CMDirW*((($_CMi*$_CMDiffW)^(1/$_CMSpeed))*($_CMDiffW/(($_CMFrames*$_CMDiffW)^(1/$_CMSpeed)))) If $_CMDiffH <> 0 Then $_CMnewH=$_CMExistPos[3]+$_CMDirH*((($_CMi*$_CMDiffH)^(1/$_CMSpeed))*($_CMDiffH/(($_CMFrames*$_CMDiffH)^(1/$_CMSpeed)))) EndIf If $_CMFlag=2 Then If $_CMDiffX <> 0 Then $_CMnewX=$_CMExistPos[0]+$_CMDirX*((($_CMi*$_CMDiffX)^$_CMSpeed)*($_CMDiffX/(($_CMFrames*$_CMDiffX)^$_CMSpeed))) If $_CMDiffY <> 0 Then $_CMnewY=$_CMExistPos[1]+$_CMDirY*((($_CMi*$_CMDiffY)^$_CMSpeed)*($_CMDiffY/(($_CMFrames*$_CMDiffY)^$_CMSpeed))) If $_CMDiffW <> 0 Then $_CMnewW=$_CMExistPos[2]+$_CMDirW*((($_CMi*$_CMDiffW)^$_CMSpeed)*($_CMDiffW/(($_CMFrames*$_CMDiffW)^$_CMSpeed))) If $_CMDiffH <> 0 Then $_CMnewH=$_CMExistPos[3]+$_CMDirH*((($_CMi*$_CMDiffH)^$_CMSpeed)*($_CMDiffH/(($_CMFrames*$_CMDiffH)^$_CMSpeed))) EndIf If $_CMFlag=3 Then _ControlMoveANI($_CMTitle,$_CMText,$_CMCtrlID,$_CMExistPos[0]+($_CMx-$_CMExistPos[0])/2,$_CMExistPos[1]+($_CMy-$_CMExistPos[1])/2,$_CMExistPos[2]+($_CMw-$_CMExistPos[2])/2,$_CMExistPos[3]+($_CMh-$_CMExistPos[3])/2,Floor($_CMFrames/2),2,$_CMSpeed,Ceiling($_CMminTime/2)) _ControlMoveANI($_CMTitle,$_CMText,$_CMCtrlID,$_CMx,$_CMy,$_CMw,$_CMh,Ceiling($_CMFrames/2),1,$_CMSpeed,Ceiling($_CMminTime/2)) ExitLoop EndIf ControlMove($_CMTitle,$_CMText,$_CMCtrlID,$_CMnewX,$_CMnewY,$_CMnewW,$_CMnewH) If $_CMi = $_CMFrames Then ExitLoop Do ;nothing Until TimerDiff($_CMTimer) > ($_CMminTime/($_CMFrames-1))*$_CMi Next Return 1 EndFunc A decision is a powerful thing Link to comment Share on other sites More sharing options...
james3mg Posted October 31, 2007 Author Share Posted October 31, 2007 (edited) or, with Notepad (english windows only - change the window title for other languages' versions of "Untitled - Notepad"). This example assumes you save the function into a file called _ControlMoveAni.au3: #include <_ControlMoveAni.au3> Run("Notepad.exe") WinWaitActive("Untitled - Notepad") WinSetState("Untitled - Notepad","",@SW_MAXIMIZE) ControlMove("Untitled - Notepad","","[CLASSNN:Edit1]",0,0,100,100) ToolTip("OK...see that edit box? I'm going to move it using flag 3") sleep(2000) _ControlMoveAni("Untitled - Notepad","","[CLASSNN:Edit1]",640,100,100,100,350,3,3,2000) ToolTip("Wow! Now let's move it and resize using flag 1 (start fast, end slow)") sleep(2000) _ControlMoveAni("Untitled - Notepad","","[CLASSNN:Edit1]",640,640,200,100,350,1,3,2000) ToolTip("Finally, we'll move it again, using flag 2 to start slow and end quickly") sleep(2000) _ControlMoveAni("Untitled - Notepad","","[CLASSNN:Edit1]",0,640,200,100,350,2,3,2000) sleep(1000) Send("all done :)") @JohnBailey: thanks...twice Edited October 31, 2007 by james3mg "There are 10 types of people in this world - those who can read binary, and those who can't.""We've heard that a million monkeys at a million keyboards could produce the complete works of Shakespeare; now, thanks to the Internet, we know that is not true." ~Robert Wilensky0101101 1001010 1100001 1101101 1100101 1110011 0110011 1001101 10001110000101 0000111 0001000 0001110 0001101 0010010 1010110 0100001 1101110 Link to comment Share on other sites More sharing options...
jvanegmond Posted October 31, 2007 Share Posted October 31, 2007 I like the fact that you add sizing of the control. github.com/jvanegmond Link to comment Share on other sites More sharing options...
WeMartiansAreFriendly Posted November 1, 2007 Share Posted November 1, 2007 Thats really neat, hehe. Don't bother, It's inside your monitor!------GUISetOnEvent should behave more like HotKeySet() Link to comment Share on other sites More sharing options...
Nahuel Posted November 1, 2007 Share Posted November 1, 2007 Sweeeeet Link to comment Share on other sites More sharing options...
JohnBailey Posted November 1, 2007 Share Posted November 1, 2007 or, with Notepad (english windows only - change the window title for other languages' versions of "Untitled - Notepad"). This example assumes you save the function into a file called _ControlMoveAni.au3: ;code above @JohnBailey: thanks...twice Good example!! I like how you used the ToolTip. haha Simple and helpful. BTW: The "type of animation" (with flags) is a WONDERFUL touch to the whole udf! As a previous Actionscript scripter, this makes me really happy! A decision is a powerful thing Link to comment Share on other sites More sharing options...
james3mg Posted November 1, 2007 Author Share Posted November 1, 2007 Glad you all like it! I've got jury duty today, so I won't be working on scripting at all, but I've figured out how to do the 'squash-n-stretch' effect, selectable with bit 4 (or 100, depending on how you want to look at it), so I might be able to get that up by the weekend! Have a good one, all! "There are 10 types of people in this world - those who can read binary, and those who can't.""We've heard that a million monkeys at a million keyboards could produce the complete works of Shakespeare; now, thanks to the Internet, we know that is not true." ~Robert Wilensky0101101 1001010 1100001 1101101 1100101 1110011 0110011 1001101 10001110000101 0000111 0001000 0001110 0001101 0010010 1010110 0100001 1101110 Link to comment Share on other sites More sharing options...
JohnBailey Posted November 1, 2007 Share Posted November 1, 2007 Glad you all like it! I've got jury duty today, so I won't be working on scripting at all, but I've figured out how to do the 'squash-n-stretch' effect, selectable with bit 4 (or 100, depending on how you want to look at it), so I might be able to get that up by the weekend!Have a good one, all!Look forward to the updates A decision is a powerful thing Link to comment Share on other sites More sharing options...
BrettF Posted November 1, 2007 Share Posted November 1, 2007 Cool as! Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now