0

ステージ上のインスタンスで単純なアルファカラーエフェクトを使用する場合、JSFLを介してそれにアクセスするにはどうすればよいですか?

ここに画像の説明を入力してください

インスタンスの*.colorAlphaAmountおよび*.colorAlphaPercentは、上の図の値にアクセスしません。これは、「高度な色」効果にのみ役立ちます。

fl.getDocumentDOM()。setInstanceAlpha(18);のように見えます。alphaプロパティを設定できますが、取得できません。また、このメソッドは、インスタンスが現在のタイムライン/レイヤー/フレームで選択されていることを前提としていますが、これはおそらく選択されません(個々のシンボルを開かずにライブラリを反復処理しているため)。

他の場所のインスタンスに隠されたアルファ値はありますか?

4

2 に答える 2

1

実は、私は馬鹿です!colorAlphaPercentは、それを読み取るための正しい値です。

ただし、アルファがトゥイーンされている場合、正しく読み取られません。アニメーションのキーフレームのアルファ値のみを参照し、アニメーションの間には参照しません。

したがって、単純な線形、easeIn、easeOutトゥイーンのために、このMathUtilsクラスを開発しました。これは、トゥイーンアニメーションからアルファおよびその他の値(x、y、scale、skew、rotation)を読み取ろうとしている他のユーザーに役立つ可能性があります。

以下を独自の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:読み込もうとしている要素の開始値と終了値を指定します(つまり、開始キーフレームと次のキーフレームからのアルファです)。

pRatio:指定されたフレームがトゥイーンにどれだけ離れているかを示す0.0から1.0までの値。通常、この値は(currentFrameID-startFrameID)/(endFrameID-startFrameID)で計算できます。

pEasing : startFrameに指定されたイージング値。通常は-100から100の間です(0 =線形)。

于 2013-01-11T18:37:38.343 に答える
0

素敵なクラス!

キーフレームに変換して値を読み取るのと同じように機能しますか?

もしそうなら、それは本当に良い考えです(うまくいけば、CS7ではこれは必要ありません!)

于 2013-01-11T20:36:57.620 に答える