Unknown
Nhãn: 0 nhận xét | | edit post
Unknown

Contents



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.

Please refer to the GreenSock website for official information and also consider donating something to Jack. You will get some additional benefits. Since I only teach Flash once in a while I only gave $30 - Daniel K. Schneider.

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

If you see something like this 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.

  1. TweenLite.to - create a tween of multiple properties of an object

  2. TweenLite.from - same as above (you specify the result of the tween))

  3. TweenLite.delayedCall - Call a function after number of seconds

  4. TweenLite.killDelayedCallsTo - Kill delayed calls (see previous line)

  5. TweenLite.killTweensOf - Kills all tweens of a particular object

  6. 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

  1. target:Object Target MovieClip (or any object) whose properties we're tweening

  2. duration:Number Duration (in seconds) of the tween

  3. 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.

Here is a simple example that will move a symbol called "mouse" to position x=120 in about 1.5 seconds)

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:

  1. delay: Number of seconds before the function should be called.

  2. onComplete: The function to call

  3. 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;
TweenLite.to(movie_clip, 1.5, {alpha:0.5, x:120, volume:0});
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:

import gs.TweenLite;
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);
}
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 gs.TweenLite;
import fl.motion.easing.Elastic;
TweenLite.from(movie_clip, 5, {y:"-100", ease:Elastic.easeOut});
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 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:

To understand what the TweenFilterLite filters do, you also could consult the AS3 or Flex documentation. The parameters of the TweenFilter class are much easier to use than the properties and the methods of the "official" AS3 libraries. However this documentation may help to understand the meaning of these parameters and what kind of values you should use.

Example:

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.

AS3 code:



  1. import gs.TweenMax;






  2. import gs.easing.*;






  3. TweenMax.to(picture,






  4.             5,






  5.             {colorMatrixFilter:{colorize:0xffcc33, amount:0.4, contrast:0.6, brightness:1.1, saturation:0.4},






  6.             ease:Back.easeOut});






  7. TweenMax.to(picture2,






  8.             5,






  9.             {colorMatrixFilter:{amount:0.4, contrast:0.3, brightness:2.0, saturation:0.8},






  10.             ease:Back.easeOut});




Source:



TweenGroup usage

(to be written with an example)

  • Pause/Resume capability

  • reverse() and/or restart()

  • Grouping and Sequencing

Unknown
control userpasswords2

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".

Unknown
NHIẾP PHONG

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.



[/ipg]

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á
Unknown
_gradientColor1 = uint(input);

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;
Unknown
You can get current date and/or time in Java using the following method. You may change the date format in the constructor of SimpleDateFormat to get the result in a different format:

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"));
}
}
Unknown

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());
}
}
}
Unknown

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();
}
}
}
The next example, launch CMD.EXE, grab stdin/stdout and push to stdin command to be interpreted by the shell.
    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();
}
}
}
test.cmd (set the errorlevel manually)
@echo hello world
@exit 42
test.cmd (set the errorlevel 1 (problem detected)
@java -garbage
test.cmd (set the errorlevel 0 (execution Ok)
@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
{
List command = new ArrayList();
command.add(System.getenv("windir") +"\\system32\\"+"tree.com");
command.add("/A");

ProcessBuilder builder = new ProcessBuilder(command);
Map environ = 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 association
Any 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.");
}
}
The "MyConnection" is the DUN and it's case sensitive.

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");
}
}

More runddl32 examples


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);
If using the start command and the path of the file to be started contains a space then you must specified a title to the start command.
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");
}
}
To load a worksheet
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);
}
}
It's important to pass a dummy title to the Windows start command where there is a possibility that the filename contains a space. It's a feature.

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);
}
}
Unknown
A quick note about these two assertions, let's start with positive lookahead:



"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
Unknown

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.