読者です 読者をやめる 読者になる 読者になる

Shut the fuck up and write some code

グダグダ言わずにコードを書きたいブログ

【CreateJS】gotoAndPlayメソッドがundefined

今月何も書いてないことに気がついたので今月一番げんなりした事象について書きます。内容は昔にも書いた気がするけど気にしない。

最近は久々にCreateJSを使った実装をやっていて、Flash CCもHTML5書き出しが標準になり、時代を感じる訳ですが、あるmcに対してgotoAndPlayを書けようとすると「そんなメソッド無いです」とエラーが返ってくる。「なんでやねん!」と思ってみて見ると、対象MCのフレーム数が1つだけ。もしやと思ってフレームを増やしてみて書き出し直して当該箇所を比較してみた。

1フレームだけ

this.initialize();
this.instance = new lib.hogehoge();
this.instance.setTransform(258.4,455);
this.addChild(this.instance_2,this.instance_1,this.instance);

2フレームだけ

this.instance = new lib.hogehoge();
this.instance.setTransform(258.4,455);
this.timeline.addTween(cjs.Tween.get(this.instance).wait(2));

2フレーム以上ないと、timelineオブジェクトが生成されないんですね。生成されないのはいいんだけど、エラー吐くからなー。作ってる人間側で「このオブジェクトは1フレームしかないからTimelineは存在しないよ」ということでgotoAndPlayかける前に判定するしかないわけです。

以前似たような現象にもハマったな。こういう「癖の悪い」ところは解消して言って欲しいもんです。でも自分はDOMよりCanvasの方が好きなので応援してます!