[分享]在flex 中使用tween 類別

70 views
Skip to first unread message

tenchiwang

unread,
Dec 16, 2008, 12:34:15 AM12/16/08
to 台灣 Adobe 使用者俱樂部
不知道~有沒有其他的人分享過~或是有更好的方式~下面提供我自己找到的方法~

在FLASH中 CS 3 中~
tween 類別在 fl.transitions.Tween
這樣一些yoyo之類的東西 就很好使用~
關於這個類別得使用方式去
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/
翻翻有範例我就不多說了~

但是在FLEX 中~沒有FL 這個 CLASS ~(迷之聲:貌似現在才發現!~><~)
所以我花了一點時間去找在mx.effects.Tween;找到她~

Tween () Constructor
public function Tween(listener:Object, startValue:Object,
endValue:Object, duration:Number = -1, minFps:Number = -1,
updateFunction:Function = null, endFunction:Function = null)

使用方式如上~
本來我以為和FLASH上的是一樣的~(迷之聲:明明差粉多~但基本上我的理解是一樣的)
沒想到~怎樣用都是失敗的~最後~我去看了看該CLASS~
雖然一海票東西有看沒有懂~~但是大概了解了一些東西~

基本上得使用如下~
//======================================================
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" width="100"
height="200" xmlns:ns1="ui.*"
creationComplete="init();"
horizontalScrollPolicy="off" verticalScrollPolicy="off">
<mx:Script>
<![CDATA[
import mx.effects.Tween;
import mx.effects.easing.*;

private var obj:Object = new Object();
private var myTween:Tween;

private function init():void{
obj.onTweenUpdate = function(val:Object):void{
run_cv.y = int(val);
}
obj.onTweenEnd = function(val:Object):void{
trace("1234");
}
myTween = new Tween(obj,0,100,500);
myTween.easingFunction =
mx.effects.easing.Elastic.easeOut;
}

]]>
</mx:Script>
<mx:Image id="run_cv" x="0" y="98" source="assets/d.png"/>
</mx:Application>

//======================================================

簡單的講解一下~需要一個物件~
物件中有一些對應的 FUNCTION~(最少要 onTweenUpdate 和 onTweenEnd )
這樣才能夠啟動 TWEEN~
而且貌似從 NEW 出來後就直接啟動~
基本上~個人感覺比FLASH中的還難用~><~
要不是我不想弄自己去弄一些加減速的部分~
我還不打算去研究~

不過題供一些我想過但是沒試過的解決方式~

第一
將FLASH中的TWEEN 整個打包出來~
然後自己放進 FLEX中使用~
(我懶得全部找出來~><~)

第二
使用別人的 tween組件~
(我沒找到可以在FLEX上用得~><~可能在導入FL後就可以正常~)

有空的人去試試吧~
有任何想分享指正得就~
通知我或是留言給我吧~
如果早就有人知道的話~就當我火星巴~><~

Ben Chang

unread,
Dec 16, 2008, 12:51:27 AM12/16/08
to au...@googlegroups.com
http://examples.adobe.com/flex2/inproduct/sdk/explorer/explorer.html

你是在找 Effects 中的 Move 嗎?






2008/12/16 tenchiwang <tench...@yahoo.com.tw>

tenchiwang

unread,
Dec 16, 2008, 3:21:18 AM12/16/08
to 台灣 Adobe 使用者俱樂部
不是拉 >~< 我想找的是
import mx.effects.Tween;
這個類別的正確用法~><~
說明看了好幾遍了~都不知道怎樣用~
後來去翻 import mx.effects.Tween; 這個CLASS才知道這樣可以用得~
但是這應該不是正確的用法吧?

其實我想弄得是拉霸的漸快漸慢~想說用tween能簡單解決~
沒想到 FLASH 得 TWEEN 和FLEX 得TWEEN不通用~><

不過MOVE有漸快和漸慢嗎?沒注意~
如果有的話就不用 TWEEN類別了~
等等去翻翻看~

順便問一下老前輩~
有誰知道能在FLEX中正常運作的 TWEEN 的組件或是類別~~
記得之前有一個TWEENER蠻好用的~
但是我拿FLASH SWC 到FLEX去就不能夠正常運作~
不知道有沒人知道能在 FLEX 下用的TWEEN的組件或是類別 ?

Li

unread,
Dec 22, 2008, 4:39:04 AM12/22/08
to 台灣 Adobe 使用者俱樂部
hi:
tenchiwang好久不見啦^^
Ben Chang說的effects裡面的那些效果其實都是mx.effects.Tween寫出來的應用,
比較常用的例如Move,Resize等等都寫好了..而且還多了一些方便的方法和屬性,如果你要寫自己的效果,
漸快漸慢一樣也是指定easingFunction
<mx:Move easingFunction="mx.effects.easing.Elastic.easeOut"/>

tenchiwang

unread,
Dec 26, 2008, 10:28:03 PM12/26/08
to 台灣 Adobe 使用者俱樂部
是阿~哈哈~
其實我是想找可以在 FLEX中動態 YOYO的東西~
還可以重複播放~><~
不過最後還是用最上面的方式解決~><~
Reply all
Reply to author
Forward
0 new messages