setFill
ポリゴンオブジェクトがそれ自体を描画することになっているときに、それ自体を何で埋めるべきかを指示するだけです。これは、画像またはカラーにすることができます。
ポリゴンを描画する際の不透明度を設定するには、opacity
プロパティがあります。達成しようとしていることは、タイムアウトと、ポリゴンの不透明度を上げて再描画する関数を組み合わせることで実現できます。
var fadeIn = function(shape) {
var o = shape.getOpacity();
o = o + 0.1 >=1 ? 1 : o + 0.1;
shape.setOpacity(o);
shape.getLayer().draw();
if(o !== 1) {
setTimeout(function() {
fadeIn(shape);
}, 120);
}
};
例。
編集:
現在KinectJSで塗りつぶしの不透明度を設定する方法はないようです。ただし、回避策を見つけることができるかどうかを確認しようとしています。
これを行う1つの方法は、前述のように、ストロークと空の塗りつぶしだけで別のポリゴンを塗りつぶしで描画し、フェードインが終了したらストロークポリゴンを削除することです。
例。
drawFunc
別の方法は、特定のポリゴンのを変更することです。
特定のレイヤーのdraw
関数が呼び出され、drawScene
そのdrawHit
すべての子に対して関数が呼び出されるときはいつでも。drawScene
およびオブジェクトのdrawHit
を呼び出すための関数。を呼び出す前に、シェイプの不透明度に基づいてを設定します。Kinetic.Shape
drawFunc
drawScene
globalAlpha
drawFunc
の設定方法drawFunc
はKinetic.Polygon
、最初に、ポリゴンの側面のコンテキストにパスが形成されることです。次に、それが塗りつぶされ、ストロークが続きます。塗りつぶしが行われる方法はfillStyle
、ポリゴンの塗りつぶしに基づいてコンテキストのを設定するだけで、context.fill
呼び出されます。
画像で塗りつぶしスタイルをどのように設定しますか?がsetFill
ポリゴンに対して呼び出され、引数として渡されたオブジェクトがプロパティを持つimage
場合、fillType
はと見なされます'PATTERN'
。によって作成されたパスを塗りつぶすdrawFunc
場合は、画像を使用してパターンを作成しcontext.createPattern
、塗りつぶしスタイルとして設定します。不透明度は考慮されません。
drawFunc
ただし、で変更することにより、特定のポリゴンに塗りつぶしの不透明度を考慮させることができsetDrawFunc
ます。drawFunc
KinectJSソースからコピーし、で渡された不透明度を考慮してパターンを異なる方法で塗りつぶす条件を追加しましたsetFill
。
例。
ただし、これはmouseover
何らかの理由でイベントを中断することに注意してください。私または他の誰かが、変更されたmouseover
ときに何が機能しないのかを理解するまで、方法1に固執するのが最善drawFunc
です。
編集2:
私はなんとかそれを理解することができました!
ポリゴンdrawHitFunc
はそのと同じdrawFunc
です。したがって、を変更すると、イベントの場合と同様に、ヒット検出が必要な場合に問題が発生するをdrawFunc
変更することになります。drawHitFunc
mouseover
したがって、ポリゴンのを変更するときに、元のポリゴンと同じになるようにwithdrawFunc
も変更すると、ヒット検出が壊れることを回避できます。drawHitFunc
setDrawHitFunc
drawFunc
例。