2013-11-09 104 views
1

我的工作在Adobe一些運動圖形After Effects和想改變是基於Java的但不幸的是我不知道的語言任何一個表達控制..影響後math.round的Javascript腳本

表達式爲:

Math.round(thisComp.layer("Control").effect("Percent Control")("Slider"))+"%" 

它基本上是從0到你把但是我想刪除的Math.round,使其顯示小數點,但保留其餘部分正確的代碼的百分比的百分比,對不起對於基本的問題..

謝謝

+0

這並沒有回答這個問題,但我認爲這會有利於你知道JavaScript與Java無關。 –

+0

感謝您的提示! – user2667664

回答

0

你可以修剪掉那部分Math.round()。這將離開你 thisComp.layer("Control").effect("Percent Control")("Slider")

爲了得到一個小數目嘗試:

var num = thisComp.layer("Control").effect("Percent Control")("Slider"); 
var theActualNumberToUse = num.toFixed(1); 

編輯:下面是一個似乎一般在JavaScript中正常工作:) http://jsfiddle.net/3t9HN/

+0

呵呵非常感謝你,唯一的問題是我現在有13位小數,你能告訴我如何只放一個? – user2667664

+0

如果它是一個動畫,它是一個很長的價值嗎?我不是After Effects或動畫專家,所以我不知道你是否在視覺上看到了差異,或者它只是爲了你自己的安慰(我傾向於圓滑的東西來平息我的神經,我很奇怪) – CaptainCarl

+0

是的,不幸的是我有一大串數字在屏幕上,它的促銷視頻信息圖 – user2667664

1

格式化十進制撥弄你會做

parseFloat(Math.round(someNumber * 100)/100).toFixed(1); 

其中toFixed(1)指定1位小數,和(someNumber * 100)/100)只是將整數轉換爲小數位數float。在你的情況下,這應該做的伎倆:

parseFloat(thisComp.layer("Control").effect("Percent Control")("Slider")).toFixed(1); 

我刪除了Math.round函數,因爲它給你的問題。

+0

非常感謝你,這給了我一個小數位,但是當百分比從0-16.5(我選擇的值)變化時,.0根本不移動,它最終在17 ,在@CaptainCarl的版本中,十進制值不會移動,並且它會在我輸入的位置結束(16.5%) – user2667664

+0

請參閱我的編輯。刪除'Math.round()'部分,但保留'parseFloat()。toFixed(1)'我提到過。它應該爲你工作。 –

+0

謝謝你們,完美的作品 – user2667664