2016-06-22 18 views
0

I gesetzt Sichtbarkeit wollen sich auf die folgende Art und Weise gestaltenEinstellung sichtbar in Tween gestalten

var shape = new cjs.Shape(); 
shape.graphics.beginFill("#0000FF").drawRect(0, 0, 100, 100); 
movieClip.addTween(
    createjs.Tween.get(shape) 
     .to({visible: true}, 50) 
     .to({visible: false}, 50) 
    ); 

Aber ist nicht funktioniert? Wie kann ich es tun?

+0

Wurde die Form als Kind des MovieClip hinzugefügt? – Lanny

+0

Hm, warum? Ich kann die Einstellung sichtbar zu x wie .to ({x: 100}, 50) .to ({x: 200}, 50) ändern und es funktioniert gut, ohne irgendwelche Form zu MovieClip Kindern hinzuzufügen. Und wie kann ich MovieClip-Kindern Form hinzufügen? Sorry für Silk Frage, aber createjs Dokumentation hat viele Mängel – vmusulainen

Antwort

1

Einstellung sichtbar funktioniert funktionieren, aber es funktioniert wahrscheinlich nicht wie Sie denken. Was ist in Ihrem Code geschieht, ist dies:

  1. Add "Form" auf den Movieclip bei Frame 0
  2. Tween zu {visible:true} in 50 Bildern. Nicht numerische Eigenschaften können nicht tweenen, sodass sie unmittelbar am Ende des Tweens festgelegt werden. Dies bedeutet, dass die Form von Anfang an sichtbar ist, um bei Rahmen 50 noch sichtbar zu sein.
  3. Tween an {visible:false} in 50 weiteren Einzelbildern. Die Form wird bis zum Ende des zweiten Tweens sichtbar sein.
  4. Schleife. MovieClips werden ihre Timelines durchlaufen, sofern nicht anders angegeben. CreateJS-Tweens speichern beim Erstellen Initialeigenschaften und werden auf diese Werte zurückgesetzt, wenn sie zu Frame 0 gehen. Dadurch werden Tweens deterministisch, sodass Sie die Position an beliebiger Stelle in der Timeline festlegen können, und es wird so aussehen, wie Sie es erwarten.

Das bedeutet, es für die gesamte Timeline, mit vielleicht 1 Frame am Ende sichtbar ist, wo sie unsichtbar ist, aber es setzt dann wieder spielt.

Hier ist eine schnelle Probe, wo es sichtbar Tweens, dann unsichtbar, dann wieder sichtbar: http://jsfiddle.net/99bxn6j5/1/

mc.timeline.addTween(
    createjs.Tween.get(shape) 
     .to({x: 100, visible:false}, 40) 
     .to({x: 200, visible:true}, 40) 
     .to({x: 300, visible:false}, 40) 
    ); 

Ich bin nicht sicher, was das gewünschte Ergebnis, aber Sie müssen wahrscheinlich den Ansatz ändern Lass es funktionieren.