Contents
- 1 Introduction
- 2 Tweenlite Usage summary
- 2.1 TweenLite.to
- 2.2 TweenLite.from
- 2.3 TweenLite.delayedCall
- 2.4 TweenLite.killTweensOf
- 2.5 TweenLite.killDelayedCallsTo
- 3 TweenLite examples
- 4 TweenFilterLite usage
- 5 TweenMax features
- 6 TweenGroup usage
Introduction
TweenLite, TweenFilterLite, TweenMax, TweenGroup and TransformManager, are Actionscript 3 tweening classs written by Jack Doyle, GreenSock The purpose of this page is to have a printable version of the documentation (useful for teaching in a lab with small screens) and to add some examples that could be useful to "simple" Flash designers.- TweenLite - a light-weight and fast tween class to create animation and shape tweens in one go.
- TweenFilterLite - extends TweenLite to add more filters (like blurs, glows, contrast, brightness, etc.). It's bigger and a bit slower than TweenLite.
- TweenMax - does both of Tweenlite and TweenFilterLite and more. It's still bigger and bit slower.
- TweenGroup - allow to manage groups of TweenLite/FilterLite/Max tweens. E.g. you can create a few tweens with TweenLite and then then play these in sequence.
- TransformManager - add interactive scaling/rotating/moving of DisplayObjects in your Flash animation.
In order to understand what some of the parameters and properties do, you will have to consult the AS3 manuals at Adobe, in particular the ActionScript3 language reference.
- Syntax used for datatypes
xxx:YYY
, it means that you have to use value of type YYY. Typically, you must specify: - Objects
- If you work with CS3, instance names of movie clips)
target:Object
e.g. my_rocket
- Objects also can refer to ECMAScript objects that you create on the fly with {...}
variables:Object
- E.g. an object with properties x=120 and y=110 is created like this:
{x:120,y:110}
- Numbers
x:Number
e.g. 15
- Color_uint
- E.g. for red you could use the following Hex value:
0xFF0000
- Boolean
xxx:Boolean
e.g. knockout:true
- Functions
- You will have to give a function name. This can be a Class.method.
xxx:Function
E.g. ease:Strong.easeInOut
- Arrays
- You have to create an array using [...]. Typically this is used to pass parameters to methods , e.g.
easeParams:[1.5, 2.45]
Tweenlite Usage summary
This class includes a few static methods that you can use like functions.- TweenLite.to - create a tween of multiple properties of an object
- TweenLite.from - same as above (you specify the result of the tween))
- TweenLite.delayedCall - Call a function after number of seconds
- TweenLite.killDelayedCallsTo - Kill delayed calls (see previous line)
- TweenLite.killTweensOf - Kills all tweens of a particular object
- TweenLite.removeTween - Removes a tween
TweenLite.to
Description: Tweens the target's properties from whatever they are at the time you call the method to whatever you define in the variables parameter.Disclaimer: Information be wrong and/or outdated - Daniel K. Schneider 17:13, 28 October 2008 (UTC).
Syntax:
TweenLite.to(target:Object, duration:Number, variables:Object);You can keep track of an instance if you want to (e.g. to kill it):
var myTween:TweenLite = TweenLite.to(target:Object, duration:Number, variables:Object);Alternative object-oriented syntax:
var myTween:TweenLite = new TweenLite(target:Object, duration:Number, variables:Object);This is almost equivalent to the above. The former is usually preferable since it will handle garbage collection.
- Mandatory parameters
- target:Object Target MovieClip (or any object) whose properties we're tweening
- duration:Number Duration (in seconds) of the tween
- variables:Object An object containing the end values of all the properties you'd like to have tweened (or if you're using the TweenLite.from() method, these variables would define the BEGINNING values). Putting quotes around values will make the tween relative to the current value. For example, x:"-20" will tween x to whatever it currently is minus 20 whereas x:-20 will tween x to exactly -20.
TweenLite.to(clip_mc, 1.5, {x:120}Properties you can defined in the variables object:
You can change many properties at the same time and this one reason why this library is so nice. In the following example a movie clip called "clip:mc" will move to position x=120, it's alpha will fade to 50% and its volume will fade out completely:
TweenLite.to(clip_mc, 1.5, {alpha:0.5, x:120, volume:0});
-
alpha:Number
- The alpha (opacity level) that the target object should finish at (or begin at if you're using TweenLite.from()). For example, if the target.alpha is 1 when this script is called, and you specify this parameter to be 0.5, it'll transition from 1 to 0.5.
-
autoAlpha:
- Same as changing the "alpha" property but with the additional feature of toggling the "visible" property to false if the alpha ends at 0. It will also toggle visible to true before the tween starts if the value of autoAlpha is greater than zero.
-
x:Number
- To change a MovieClip's x position, just set this to the value you'd like the MovieClip to end up at (or begin at if you're using TweenLite.from()).
-
y:Number
- To change a MovieClip's y position (like above).
-
scaleX:Number
- Scaling in X direction, i.e. making the with smaller or larger
-
scaleY:Number
- Scaling in Y direction, i.e. making the height smaller or larger
-
rotation:Number
- Clock-wise rotation in degrees.
-
delay:Number
- Number of seconds you'd like to delay before the tween begins. This is very useful when sequencing tweens
-
ease:Function
- You can specify a function to use for the easing with this variable. For example, fl.motion.easing.Elastic.easeOut. The Default is Regular.easeOut (and Linear.easeNone for volume).
- You can use all the standard AS3 methods defined in fl.motion.easing and fl.transitions.easing
- If you want to create your own easing equation use Jack's Custom Ease Builder on-line tool.
- Example
TweenLite.to(logo,0.4,{scaleX:1,scaleY:1,alpha:1,ease:Strong.easeInOut,delay:0.8,overwrite:false});
- Example of custom function definition and use
import gs.easing.CustomEase;
CustomEase.create("myCustomEase",
[{s:0,cp:0.509,e:0.612},{s:0.612,cp:0.715,e:0.412},{s:0.412,cp:0.109,e:1}]);
TweenLite.to(mc, 2, {x:"250", ease:CustomEase.byName("myCustomEase"")});
-
easeParams:Array
- Allows to pass parameters to the ease function (see above)
TweenLite.to(my_mc, 2, {_x:200, ease:Elastic.easeOut, easeParams:[1.5, 2.45]});
-
volume: Number
- To change a MovieClip's volume, i.e. the SoundTransform property. Set this to the value you'd like the MovieClip to end up at (or begin at if you're using TweenLite.from()).
-
tint:Color_uint
- To change a MovieClip's color, set this to the hex value of the color you'd like the MovieClip to end up at(or begin at if you're using TweenLite.from()). An example hex value would be 0xFF0000. If you'd like to remove the color from a MovieClip, just pass null as the value of tint.
-
removeTint:Boolean
- To remove the tint of a DisplayObject. Use the value true.
-
frame:Integer
- To tween a MovieClip to a given frame.
-
roundProps:Array
- Allows to define inbetween rounding values. E.g.
TweenMax.to(my_mc, 3, {_x:500, _y:0, bezier:[{_x:250, _y:50}]});
-
onStart:Function
- If you'd like to call a function as soon as the tween begins, pass in a reference to it here. This can be useful when there's a delay and you want something to happen just as the tween begins.
-
onStartParams:Array
- An array of parameters to pass the onStart function.
-
onUpdate:Function
- If you'd like to call a function every time the property values are updated (on every frame during the time the tween is active), pass a reference to it here.
-
onUpdateParams:Array
- An array of parameters to pass the onUpdate function (this is optional)
-
onComplete:Function
- If you'd like to call a function when the tween has finished, use this.
-
onCompleteParams:Array
- An array of parameters to pass the onComplete function (this is optional)
-
overwrite:Int
- You can enter 4 values: 0 (NONE) = No tweens are overwritten; 1 (ALL) = All tweens of the same object are completely overwritten immediately when the tween is created; 2 (AUTO) = Searches for and overwrites only individual overlapping properties in tweens that are active when the tween begins; 3 (CONCURRENT): Overwrites all tweens of the same object that are active when the tween begins.
-
persist:Boolean
- If true, the TweenLite instance will not automatically be removed by the garbage collector when it is complete. By default, it is false.
-
renderOnStart:Boolean
- If you're using TweenLite.from() (or runBackwards:true) with a delay and want to prevent the tween from rendering until it actually begins, set this special property to true. By default, it's false which causes TweenLite.from() to render its values immediately, even before the delay has expired.
-
runBackwards:Boolean
- Flips the start and end values in a tween. That's the same as using the from() method (see below).
TweenLite.from
TweenLite.from(target:Object, duration:Number, variables:Object);Description: Exactly the same as TweenLite.to(), but instead of tweening the properties from where they're at currently to whatever you define, this tweens them the opposite way - from where you define TO where ever they are now (when the method is called). This is handy for when things are set up on the stage where the should end up and you just want to animate them into place.
Parameters: Same as TweenLite.to(). (see above)
TweenLite.delayedCall
TweenLite.delayedCall(delay:Number,onComplete:Function,onCompleteParams:Array);Description: Provides an easy way to call any function after a specified number of seconds. Any number of parameters can be passed to that function when it's called too.
Parameters:
- delay: Number of seconds before the function should be called.
- onComplete: The function to call
- onCompleteParams [optional] An array of parameters to pass the onComplete function when it's called.
TweenLite.killTweensOf
TweenLite.killTweensOf(target:Object);Description: Provides an easy way to kill all tweens of a particular Object/MovieClip.
Parameters:
- target: Any/All tweens of this Object/MovieClip will be killed.
TweenLite.killDelayedCallsTo
TweenLite.killDelayedCallsTo(function:Function);Description: Provides an easy way to kill all delayed calls to a particular function (ones that were instantiated using the TweenLite.delayedCall() method).
Parameters:
- function: Any/All delayed calls to this function will be killed.
TweenLite examples
As you can see in the code below, in order to use this class, you will have to do the following.- If you work with CS3 you need an instance of MovieClip that is named, e.g. "movie_clip".
- Then, in some keyframe, hit F9 and you can write AS code. The code must include at least:
import gs.TweenLite;
- When Flash requires that you import "official" flash classes you will have to import these too. E.g.
import fl.motion.easing.Back;As a simple example, you could tween the alpha to 50% (0.5) and move the x position of a MovieClip named "movie_clip" to 120 and fade the volume to 0 over the course of 1.5 seconds like so:
import gs.TweenLite;If you want to get more advanced and tween the movie_clip MovieClip over 5 seconds, changing the alpha to 50% (0.5), the x coordinate to 120 using the Back.easeOut easing function, delay starting the whole tween by 2 seconds, and then call a function named "onFinishTween" when it has completed and pass in a few parameters to that function (a value of 5 and a reference to the movie_clip), you'd do so like:
TweenLite.to(movie_clip, 1.5, {alpha:0.5, x:120, volume:0});
import gs.TweenLite;If you have a MovieClip on the stage that is already in its end position and you just want to animate it into place over 5 seconds (drop it into place by changing its y property to 100 pixels higher on the screen and dropping it from there), you could:
import fl.motion.easing.Back;
TweenLite.to(movie_clip, 5, {alpha:0.5, x:120, ease:Back.easeOut,
delay:2, onComplete:onFinishTween, onCompleteParams:[5, movie_clip]});
function onFinishTween(parameter1_num:Number, parameter2_mc:MovieClip):void {
trace("The tween has finished! parameters: " + parameter1_num + ", and " + parameter2_mc);
}
import gs.TweenLite;Sequence of tweens so that they occur one after the other. Just use the delay property and make sure you set the overwrite property to false (otherwise tweens of the same object will always overwrite each other to avoid conflicts). Here's an example where we colorize a MovieClip red over the course of 2 seconds, and then move it to a _y coordinate of 300 over the course of 1 second:
import fl.motion.easing.Elastic;
TweenLite.from(movie_clip, 5, {y:"-100", ease:Elastic.easeOut});
import gs.TweenLite;
TweenLite.to(movie_clip, 2, {tint:0xFF0000});
TweenLite.to(movie_clip, 1, {y:300, delay:2, overwrite:false});
TweenFilterLite usage
TweenFilterLite extends the TweenLite class, adding the ability to tween filters (like blurs, glows, drop shadows, bevels, etc.) as well as advanced effects like contrast, colorization, brightness, saturation, hue, and threshold.- Syntax (identical to the TweenLite class), e.g.
TweenFilterLite.to (target:Object, duration:Number, variables:Object);To understand what filters are, you may read documentation at Adobe:
- Flash graphic effects learning guide An Adobe tutorial made for CS3 designers and that also explains concepts.
- About filters (Chapter of the Adobe Using Flash (CS3) manual)
- flash.filters package (ActionScript 3.0 Language and Components Reference) or
- Package flash.filters (Adobe Flex 2.0.1 Language Reference)
TweenFilterLite.from (movie_clip, 5, {colorMatrixFilter:{colorize:0xFF0000}})In addition to the TweenLite parameters described above you can use:
-
timeScale:Number
- Speed up or slow down a tween
- globalTimeScale
- Globally speed up/down all tweens
-
blurFilter:Object
- Create a blur with one or more of the following properties:
- Parameters: blurX, blurY, quality.
- Example:
TweenFilterLite.to(movie_clip, 2, {blurFilter:{blurX:1, blurY:2}})
-
glowFilter:Object
- Apply a glow effect to display objects
- Parameters: alpha, blurX, blurY, color, strength, quality, inner, knockout,
-
colorMatrixFilter:Object
- Apply various color filters
- Parameters: colorize, amount, contrast, brightness, saturation, hue, threshold, relative, matrix,
- Example
TweenFilterLite.to(movie_clip, 2, {colorMatrixFilter:{colorize:0xFF0000, amount:1}});
-
dropShadowFilter:Object
- Will add a drop shadow to an object.
- Parameters alpha, angle, blurX, blurY, color, distance, strength, quality
- Flex Adobe dropShadowFilter doc
-
bevelFilter:Object
- Create a bevel effect gives, i.e. three-dimensional look
- Parameters angle, blurX, blurY, distance, highlightAlpha, highlightColor, shadowAlpha, shadowColor, , gth, quality
TweenMax features
TweenMax builds on top of TweenLite and TweenFilterLite. It uses again the same syntax and just adds some functionalities that are less essential. The only tradeoff is some slight increase in size, i.e. 11K of AS code (which is still very small).In addition to FilterLite and TweenLite, you can do the following (and more that we may document some other time):
-
bezier:Array
- Allows to tween with a bezier array.
TweenMax.to(my_mc, 3, {_x:500, _y:0, bezier:[{_x:250, _y:50}]})
-
bezierThrough:Array
- Pass points through which the bezier values should move.
-
orientToBezier:Array (or Boolean)
- MovieClip/Sprite to orients itself in the direction of a Bezier path. The arrays need the following elements: Position property 1 (typically "x"), Position property 2 (typically "y"), Rotational property (typically "rotation"), Number of degrees to add (optional - makes it easy to orient your MovieClip/Sprite properly).
[["x", "y", "rotation", 0]].Note: This is an array within an array
Simple TweenMax example
The goal is to take a picture and make it look old or otherwise bad as in the following tweenmax-photo-filter.html example. Instead, you might have used the TweenFilterLite library too.Procedure:
- Drag a *.jpg picture into the library
- Drag it to the stage and make it a movie clip symbol (Right-click->Convert to symbol). Call it "picture_mc".
- Kill the picture on the stage
- Drag two copies of the new movie clip symbol to the stage
- Name the first one "picture" and the second one "picture2". This way the AS3 code can use them as objects.
- import gs.TweenMax;
- import gs.easing.*;
- TweenMax.to(picture,
- 5,
- {colorMatrixFilter:{colorize:0xffcc33, amount:0.4, contrast:0.6, brightness:1.1, saturation:0.4},
- ease:Back.easeOut});
- TweenMax.to(picture2,
- 5,
- {colorMatrixFilter:{amount:0.4, contrast:0.3, brightness:2.0, saturation:0.8},
- ease:Back.easeOut});
TweenGroup usage
(to be written with an example)- Pause/Resume capability
- reverse() and/or restart()
- Grouping and Sequencing

Bổ sung một số tính năng mở rộng vào bên trong menu ngữ cảnh là việc làm vô cùng tiện ích, giúp tiết kiệm thời gian tương tác và qua đó, cải thiện hiệu suất làm việc của bạn với máy tính. Sau đây, TTCN xin hướng dẫn các bạn cách thêm các mục gồm: Command Prompt, Copy the content to clipboard, CopyTo, MoveTo vào menu ngữ cảnh trong Windows 7.
Các thủ thuật chuẩn bị nói dưới đây đều tác động tới Registry, do đó các bạn hãy sao lưu các thiết đặt Regis mặc định để phòng trường hợp rắc rối hệ thống xảy ra.
Thêm tùy chọn "Command Prompt in This Folder"
Nhấp tổ hợp phím "Windows+R" để mở hộp thoại Run, tại đây nhập ‘regedit’ để mở cửa sổ Registry.Điều hướng tới HKEY_CLASSES_ROOT\Directory\shell và tạo một Key mới trong shell. Các bạn đặt tên cho Key này là "Command Prompt".
Tại bảng bên phải, nhấp chuột phải lên giá trị "Default" và chọn "Modify". Tại trường "Value data" nhập "Command Promt here".
Tương tư trên các bạn tạo Key mới dưới "Command Prompt" và đặt tên nó là "command".
Tương tác với command, tại cửa sổ bên phải các bạn cũng nhấp chuột phải lên giá trị "Default" và chọn "Modify", nhập "cmd.exe /k cd %1" tại trường "Value data".
Giờ đóng cửa sổ Registry lại và kiểm tra kết quả thu được.
Thêm tùy chọn "Copy the content to clipboard"
Mở cửa sổ Registry, điều hướng tới HKEY_CLASSES_ROOT\txtfile\shell, tạo Key mới dưới shell và đặt tên là "Copy to clipboard". Tương tự Modify với "Default" và nhập "Copy the content to clipboard" cho "Value data".Lần nữa tạo Key và đặt tên cho Key là "command" nằm dưới "Copy to clipboard". Nhấp chuột phải lên "Default" chọn Modify ,nhập "cmd /c clip < “%1” " tại trường "Value data".
Đóng cửa sổ Registry và kiểm tra kết quả.
Thêm tùy chọn "CopyTo"
Điều hướng tới: HKEY_CLASSES_ROOT\AllFilesystemObjects\shellex\ContextMenuHandlers từ cửa sổ Registry.Nhấp chuột phải lên ContextMenuHandlers và chọn "New->Key”. Đặt tên cho Key là "CopyTo".
Nhấp đúp chuột lên giá trị "Default" bên phải, tại trường "Value data" nhập mã: {C2FBB630-2971-11D1-A18C-00C04FD75D13}.
Thêm tùy chọn "MoveTo"
Tương tự tạo Key và đặt tên là "MoveTo" dưới ContextMenuHandlers, nhập mã: {C2FBB631-2971-11D1-A18C-00C04FD75D13} cho trường "Value data".Nhân vật trong Phong Vân phải nói là rất nhiều ,từ tập 1 cho đến tập 100,nhân vật xuất hiện liên miên ,chỉ có 3 nhân vật không bị chết,đó là :Nhiếp Phong ,Bộ Kinh Vân và Vô Danh .Ngoài ra đều chết hoặc không xuất hiên.

Là một trong hai nhân vật chính của truyện .Nhiếp Phong là con trai của "Bắc Ẩm Cuồng Đao" Nhiếp Nhân Vương,tu vị đao pháp thuộc hàng cao thủ nhưng vì tình mà hóa cuồng .
Là tam đệ tử của Hùng Bá ,được truyền dạy cho Phong Thân Cước,từ nhỏ đã tự mình nuôi sống mình ,luôn ngăn cản cha giết người bữa bãi,và khinh công của Phong từ nhỏ đã hơn người,Một lần khi đang chứng kiến Nhiếp Nhân Vương chiếu đấu với Đoạn Soái thì đột nhiên người của Thiên hạ hội do Bộ Kinh Vân đẫn đấu đã đến bắt Phong buộc phải đầu quân cho Thiên hạ hội .Dồng thời lấy 2 thanh thần binh là "Tuyết Ẩm Đao " và " Hỏa Lân Kiếm".Nhiếp Phong đã dùng tuyện học Hùng bÁ truyền cho để trừng phạt những kẻ không đầu hàng Thiên hạ hôi.Sau này nhận ra được sai lầm của mình nên đã quay sang hợp sức với Bộ Kinh Vân đánh lại Hùng Ba.Vì cứu Bộ Kinh Vân mà một con mắt của Phong đã bị phế vĩnh viễn.
Sau này do cứu Trung Nguyên nên Phong đã tự nguyện nhập ma đề học Ma đao,tuy đánh đuổi dc ngoại bang nhưng bị ma tâm khống chế,làm nhiều điều nguy hại cho nhân gian,dc Bộ Kinh Vân cứu thoát khỏi ma đạo.Phong la người có tấm lòng nhân hậu,và vì tính nhân hậu này đã làm cho anh mất chết cả gia đinh,do lầm tin vào Đoạn Lãng nên cả cha mẹ đều bị giết .Có máu cuồng điên di truyền trong người nên sức mạnh biến hóa không ai lường được.Dòng máu điên cuồng di truyền do tổ tiên nhà họ Nhiếp,vì nuốt phải máu của Hỏa Kì Lân trong 1 cuộc chiến mà trở nên điên cuồng ,nhưng lại xó được sức mạnh của Hỏa kì lân.Tuyết Ẩm Đao được đúc là để kềm hãm máu điên trong người.
Hợp sức với Bộ Kinh Vân sẽ phát ra "Ma Kha Vô Lượng".Khinh công của Nhiếp Phong độc bộ giang hồ,khoái tuyệt võ lâm.Tu vị đạt tới cảnh giới đạp gió mà đi.Trong một lần vào động Lăng Vân,nuốt được Huyết bồ đề nên công lực tăng cường và gặp được đao phổ Ngạo Hàn lục quyết trong động do tổ tiên Nhiếp Phong là Nhiếp Anh để lại.
Trong cuộc chiến với Đoạn Lãng,Nhiếp Phong bị đánh mất 6 phần hồn,được Bộ Kinh Vân dùng công lực cứu chữa trong băng sơn 20 năm.Trong người Phong vừa có máu cuồng điên vừa có khí chân nguyên rồng hun đúc ,2 linh thú vửa tương sinh vừa tương khắc nên sức mạnh của Nhiếp Phong biên hóa khôn lường,không ai đoán biết được sức mạnh của Phong.
Vũ khí sử dụng : Tuyết Ẩm Đao
Tuyệt học võ công:
+Băng Tâm Quyết
+Phong Thần Cước
+Sáng đao
+Ma đao
+Ngạo hàn Lục Quyết.
+Động Pgong Vân
+Huyền Vũ Chân Công .
+Thiên đạo vô cực.
+Ma kha vô lượng.
Ngạo hàn Lục Quyết.:Bao gồm 6 quyết ,là võ công gia truyền của Nhiếp gia.
+Quyết thứ 1:"Kinh Hàn Nhất Phách": là 1 đao chiêu tuyệt hàn,diệt tuyệt,là đao chiêu mạh nhất trong Ngạo hàn Lục Quyết.
+Quyết thứ 2:"Băng phong tam xích":đao kình làm ngưng băng,dày hơn 3 xích vì thế mới có tên là Băng phong tam xích,có thể vây người và vây mình ,là đao chiêu duy nhất trong Ngạo hàn Lục Quyế dùng để thủ.
+Quyết thứ 3:"Hồng Hạnh Xuất Tường":vốn biến chiêu từ "Tuyết trung hồng hạnh",do Nhiếp Nhân Vương căm hận người vợ ngoại tình mà nghĩ ra.Ý càng hận,đao chiêu sử ra càng hận,càng hiểm.
+Quyết thứ 4:"Đao Chi Yểu Yểu":đao chiêu yếu ớt , mảnh mai như cành đào bám tuyết ,tựa như vô lực nhưng thực sự vô cùng cường liệt.
+Quyết thứ 5:"Đạp Tuyết Tầm Mai":là chiêu duy nhất trong "Ngạo hàn Lục Quyết" dùng cước vận đao,đao cước đều sử được.
+Quyết thứ 6:"Lãnh Nhẫn Băng Tâm": là thức chí cao vô thương trong "Ngạo hàn Lục Quyết",đáng tiếc đao phổ đã bị thất truyền.Về sau,trong Động Lăng Vân,do cơ duyên ,Phong đã tìm thấy được đao phổ này do tổ tiên là Nhiếp Anh khắc lại trong động.
Tất cả các quyết trong "Ngạo hàn Lục Quyết" đều là dùng Tuyết Ẩm Đao sử ra được mới thấy hết tính lăng lệ của nó, trừ chiêu "Đạp Tuyết Tầm Mai".Nhưng về sau trong cuộc chiến Phong Vân ,Tuyết Ẩm Đao đã bị Phong bẻ gãy,sau đó tất cả đao chiêu đều dùng cước sử ra ,oai lực không hề thua khi có Tuyết Ẩm Đao.Trong suốt Phần 2 ,Phong không dùng Tuyết Ẩm Đao,phải sang đến Phần 3 ,Tuyết Ẩm Đao mới được Đệ Nhị Đao Hoàng - nhạc phụ Nhiếp Phong và Trư Hoàng - người đã truyền dạy Sáng Đao cho Phong đúc lại. 2 người đã mất 10 năm để đúc lại "Tuyết Ẩm Đao" cho Phong.
Đao chiêu mạnh nhất: Kinh Hàn Nhất Phách.
Phong thần cước :
-Phong trung kình thảo
-Thần phong nộ hào
-Bão vũ cuồng phong
-Phong quyện lâu tàn
-Lôi lệ phong hành
-Phong quyển tàn chấn
-Bổ phong tróc ảnh
Hiệu xưng:: .Phong Trung Chi Thần
Tâm nhược băng thanh
Thiên tháp bất kinh
Trần cấu bất thiên
Tục duyên bất nhẫn
Tâm tụ vô hình
Ý định thần kiên
Thư không ninh mật
Hỗn thiên vô vật...
Tâm vô quái nghi
Ý vô sở chấp
Thượng thiện nhược thuỷ
Băng tâm thích hoá
r1 = (_gradientColor1 >>16) & 0xFF;
g1 = (_gradientColor1 >>8) & 0xFF;
b1 = _gradientColor1 & 0xFF;
filtersCo=r1<<16|g1<<8|b1
Have you tried “Math.atan2″ method to detect angle between the points?
This returns in radians but you can multiply by “180 / Math.PI” for degree rotation.
function angleOfPoints(a:Point, b:Point):Number
{
var dx:Number = a.x-b.x;
var dy:Number = a.y-b.y;
var rad:Number = Math.atan2(dy, dx);
return rad;
}
stage.scaleMode = StageScaleMode.NO_SCALE;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
private String getDateTime() {
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Date date = new Date();
return dateFormat.format(date);
}
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class DateUtils {
public static final String DATE_FORMAT_NOW = "yyyy-MM-dd HH:mm:ss";
public static String now() {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW);
return sdf.format(cal.getTime());
}
public static void main(String arg[]) {
System.out.println("Now : " + DateUtils.now());
}
}
Here some formatting possibilities available through the SimpleDateFormat class.
import java.util.Calendar;
import java.text.SimpleDateFormat;
public class DateUtils {
public static String now(String dateFormat) {
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(dateFormat);
return sdf.format(cal.getTime());
}
public static void main(String arg[]) {
System.out.println(DateUtils.now("dd MMMMM yyyy"));
System.out.println(DateUtils.now("yyyyMMdd"));
System.out.println(DateUtils.now("dd.MM.yy"));
System.out.println(DateUtils.now("MM/dd/yy"));
System.out.println(DateUtils.now("yyyy.MM.dd G 'at' hh:mm:ss z"));
System.out.println(DateUtils.now("EEE, MMM d, ''yy"));
System.out.println(DateUtils.now("h:mm a"));
System.out.println(DateUtils.now("H:mm:ss:SSS"));
System.out.println(DateUtils.now("K:mm a,z"));
System.out.println(DateUtils.now("yyyy.MMMMM.dd GGG hh:mm aaa"));
}
}
import java.lang.reflect.*;
public class MethodInspector {
public static void main(String[] arguments) {
Class inspect;
try {
if (arguments.length > 0)
inspect = Class.forName(arguments[0]);
else
inspect = Class.forName("MethodInspector");
Method[] methods = inspect.getDeclaredMethods();
for (int i = 0; i < methods.length; i++) {
Method methVal = methods[i];
Class returnVal = methVal.getReturnType();
int mods = methVal.getModifiers();
String modVal = Modifier.toString(mods);
Class[] paramVal = methVal.getParameterTypes();
StringBuffer params = new StringBuffer();
for (int j = 0; j < paramVal.length; j++) {
if (j > 0)
params.append(", ");
params.append(paramVal[j].getName());
}
System.out.println("Method: " + methVal.getName() + "()");
System.out.println("Modifiers: " + modVal);
System.out.println("Return Type: " + returnVal.getName());
System.out.println("Parameters: " + params + "\n");
}
} catch (ClassNotFoundException c) {
System.out.println(c.toString());
}
}
}
Using Runtime.exec()
This example will capture the output (from stdio) of an external program.import java.io.*;
public class CmdExec {
public static void main(String argv[]) {
try {
String line;
Process p = Runtime.getRuntime().exec
(System.getenv("windir") +"\\system32\\"+"tree.com /A");
BufferedReader input =
new BufferedReader
(new InputStreamReader(p.getInputStream()));
while ((line = input.readLine()) != null) {
System.out.println(line);
}
input.close();
}
catch (Exception err) {
err.printStackTrace();
}
}
}
String line;
OutputStream stdin = null;
InputStream stderr = null;
InputStream stdout = null;
// launch EXE and grab stdin/stdout and stderr
Process process = Runtime.getRuntime ().exec ("/folder/exec.exe");
stdin = process.getOutputStream ();
stderr = process.getErrorStream ();
stdout = process.getInputStream ();
// "write" the parms into stdin
line = "param1" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "param2" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
line = "param3" + "\n";
stdin.write(line.getBytes() );
stdin.flush();
stdin.close();
// clean up if any output in stdout
BufferedReader brCleanUp =
new BufferedReader (new InputStreamReader (stdout));
while ((line = brCleanUp.readLine ()) != null) {
//System.out.println ("[Stdout] " + line);
}
brCleanUp.close();
// clean up if any output in stderr
brCleanUp =
new BufferedReader (new InputStreamReader (stderr));
while ((line = brCleanUp.readLine ()) != null) {
//System.out.println ("[Stderr] " + line);
}
brCleanUp.close();
Launch a Windows CMD (or BAT) file and retrieve the errorlevel or exitcode
// win xp
import java.io.*;
public class CmdExec {
public static void main(String argv[]) {
try {
String line;
Process p = Runtime.getRuntime().exec("test.cmd");
p.waitFor();
System.out.println(p.exitValue());
}
catch (Exception err) {
err.printStackTrace();
}
}
}
@echo hello world
@exit 42
@java -garbage
@java -version
Launch a Unix script
String[] cmd = {"/bin/sh", "-c", "ls > hello"};
Runtime.getRuntime().exec(cmd);
Using the ProcessBuilder
Since 1.5, the ProcessBuilder class provides more controls overs the process to be started. It's possible to set a starting directory.
import java.io.*;
import java.util.*;
public class CmdProcessBuilder {
public static void main(String args[])
throws InterruptedException,IOException
{
Listcommand = new ArrayList ();
command.add(System.getenv("windir") +"\\system32\\"+"tree.com");
command.add("/A");
ProcessBuilder builder = new ProcessBuilder(command);
Mapenviron = builder.environment();
builder.directory(new File(System.getenv("temp")));
System.out.println("Directory : " + System.getenv("temp") );
final Process process = builder.start();
InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String line;
while ((line = br.readLine()) != null) {
System.out.println(line);
}
System.out.println("Program terminated!");
}
}
Windows rundll32 utility
Windows File associationAny program using the Windows file association mechanism can be started with the rundll32 utility.
// "file" is the filename of the data file
// ex. myresume.doc
// to start Word if the doc extension is associated with it.
Runtime.getRuntime().exec
("rundll32 SHELL32.DLL,ShellExec_RunDLL " + file.getAbsolutePath());
See also this HowTo about the new Desktop API, the recommended solution (but you need JDK1.6).
See also this one to open the default browser.
The following example start a Dial-up connection on the Win plateform :
[Dialup.java]
public class Dialup {
public static void main(String[] args) throws Exception {
Process p = Runtime.getRuntime()
.exec("rundll32.exe rnaui.dll,RnaDial MyConnection");
p.waitFor();
System.out.println("Done.");
}
}
You still need to press ENTER to CONNECT, there is an option in the Connection properties to connect automatically.
On NT and W2K, rnaui.dll is not available. Use rasdial.exe instead.
rasdial "connection name"
rasdial "connection name" /d to drop
rasdial /? for more options
PDF (Windows only)
public class ShowPDF {
public static void main(String[] args) throws Exception {
Process p =
Runtime.getRuntime()
.exec("rundll32 url.dll,FileProtocolHandler c:/pdf/mypdf.pdf");
p.waitFor();
System.out.println("Done.");
}
}
PDF (Mac only)
public class ShowPDF {
public static void main (String[] args) throws Exception{
Process p = Runtime.getRuntime().exec("open /Documents/mypdf.pdf");
}
}
Path to executable with spaces in them
You can include a path for the program to be executed. On the Win plateform, you need to put the path in quotes if the path contains spaces.
public class Test {
public static void main(String[] args) throws Exception {
Process p = Runtime.getRuntime().exec(
"\"c:/program files/windows/notepad.exe\"");
p.waitFor();
}
}
If you need to pass arguments, it's safer to a String array especially if they contain spaces.
String[] cmd = { "myProgram.exe", "-o=This is an option" };
Runtime.getRuntime().exec(cmd);
String fileName = "c:\\Applications\\My Documents\\test.doc";
String[] commands = {"cmd", "/c", "start", "\"DummyTitle\"",fileName};
Runtime.getRuntime().exec(commands);
VBSCRIPT
// Win9x
Runtime.getRuntime().exec("start myscript.vbs");
// WinNT
Runtime.getRuntime().exec("cmd /c start myscript.vbs");
or
// with a visible console
Runtime.getRuntime().exec("cscript myscript.vbs");
// with no visible console
Runtime.getRuntime().exec("wscript myscript.vbs");
HTML Help (Windows only)
Runtime.getRuntime().exec("hh.exe myhelpfile.chm");
Start Excel
import java.io.IOException;
class StartExcel {
public static void main(String args[])
throws IOException
{
Runtime.getRuntime().exec("cmd /c start excel.exe");
}
}
import java.io.IOException;
class StartExcel {
public static void main(String args[])
throws IOException
{
String fileName = "c:\\temp\\xls\\test2.xls";
String[] commands = {"cmd", "/c", "start", "\"DummyTitle\"",fileName};
Runtime.getRuntime().exec(commands);
}
}
Start a Windows application under another account
You use the RUNAS command from the command line to start an application under another account (not available with XP Home edition). There are many switches that can enhance the behaviour of RUNAS. Typing "runas /?" from the command prompt gets you all the options.String commands [] = new String [] {
"CMD.EXE",
"/C",
"RUNAS /profile /savecred /user:"
+ "administrator"
+ " " + "regedit.exe"
};
Runtime.getRuntime().exec(commands);
/SaveCred
option allows you to save a password for that account and then reuse it later. For example, The command runas /savecred /user:administrator regedit.exe
prompts for the password, and then Regedit runs. Next time you use the same command, there is no password prompt. One potential problem is that when /SaveCred
saves the credentials it saves it for whenever RUNAS invokes that user account. This can be a huge security risk so be careful using it!
RUNAS capability can be disabled by editing the Registry or by disabling the RUNAS or Secondary Logon Services. The appropriate registry key is HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\Explorer
, create a new DWORD value named HideRunAsVerb
and assign it a value of 1 to disable Run as.
RUNAS doesn't work when used from a Windows service.
Windows : execute something in Program Files
We want to execute the textpad editor located in C:\Program Files\TextPad 4 but without hard coding the path since it can be different for a localized version of Windows.We simply extract to environnment variable called %programfiles% and build the complete path from there.
[JDK1.5]
public class Exec {
static String WIN_PROGRAMFILES = System.getenv("programfiles");
static String FILE_SEPARATOR = System.getProperty("file.separator");
public static void main(String[] args) throws Exception {
String[] commands =
{"cmd.exe",
"/c",
WIN_PROGRAMFILES
+ FILE_SEPARATOR
+ "textpad 4"
+ FILE_SEPARATOR + "textpad.exe"};
Runtime.getRuntime().exec(commands);
}
}
"Assert that the regex below can be matched, starting at this position".
Let's go with this little example:
Regex:
\s+\w+(?=\.)
This would mean, match a space between one and many times followed by a word character between one an many times only if there is a dot following the previous match:
Eg.
andy mypass ok orange..see what is going on
The matched text here would be orange (Because there was a dot after "orange", ah yes, and many spaces before).
Now, let's go with the other case, negative lookahead:
"Assert that it is impossible to match the regex below starting at this position".
The regex changes to
\s+\w+(?!\.)
Do you see the difference?. this should read now:
Match a space between one and many times followed by a word character between one and many times only if the following character is not a dot, so what is matched now using our previous example:
mypass (Because after "mypass" was a space)
ok (Same reason using the word "ok")
orang (Because after "orang" there is an e)
see (Because after "see" there is a space)
.... and so on
Horizontal Scrolling Menu made with CSS and jQuery
There are a lot of cool flash scrolling menus out there, but I decided to make a similarly looking menu with just CSS and jQuery. I couldn’t achieve the same smoothness in animation, but anyway I’m really satisfied with the result. My menu works fine in all major browsers and degrades gracefully when Javascript is turned off.
In case you need a vertical version of a scrolling menu, please go to my newer tutorial.