如果我在舞台上的实例上使用简单的Alpha色彩效果,我该如何通过JSFL访问它?
实例的* .colorAlphaAmount和* .colorAlphaPercent不会访问上面插图的值。它仅对“高级颜色”效果有用。
看起来像 fl.getDocumentDOM()。setInstanceAlpha(18); 可以设置alpha属性,但 NOT 可以获取它。此外,此方法将假设在当前时间轴/图层/帧中选择实例,我可能不会(因为我在没有打开每个单独符号的情况下迭代库)。
在其他地方的实例中是否隐藏了某个alpha值?
答案 0 :(得分:1)
实际上,我很笨! colorAlphaPercent 是从中读取的正确值。
但是,如果alpha是补间,则无法正确读取。它只会引用动画关键帧的alpha值,而不是它之间的alpha值。
因此,对于简单的线性,easeIn和easeOut补间,我开发了这个MathUtils类,可能对其他试图从补间读取alpha和其他值(x,y,缩放,倾斜,旋转)的人有所帮助动画。
您可以将以下内容放入其自己的JSFL文件中,并将其加载到您需要的任何位置。
MathUtils = {
pi2: Math.PI/2,
easeValue: function( pStart, pFinish, pRatio, pEasing ) {
var diff = pFinish - pStart;
var eased = pEasing > 0 ? this.easeOut( pRatio ) : this.easeIn( pRatio );
var linear = pRatio;
var blendRatio = Math.abs(pEasing);
var easeBlend = blendRatio * eased;
var linearBlend = (1 - blendRatio) * linear;
return pStart + diff * (easeBlend + linearBlend);
},
easeIn: function( pRatio ) {
return 1 - Math.sin((1-pRatio) * this.pi2);
},
easeOut: function( pRatio ) {
return Math.sin(pRatio * this.pi2);
}
};
如何使用:
pStart,pFinish :提供您尝试读取的元素的起始值和结束值(换句话说,它是从起始关键帧和下一个关键帧开始的alpha)。
pRatio :从0.0到1.0的值,表示给定帧与补间的距离。通常,此值可以使用(currentFrameID - startFrameID)/(endFrameID - startFrameID)计算。
pEasing :为 startFrame 指定的缓动值,通常介于-100和100之间(0 =线性)。
答案 1 :(得分:0)
好班!
它是否与转换为关键帧和读取值相同?
如果是这样,那是一个非常好的主意(希望我们在CS7中不需要这个!)