モーフでペンを正しく機能させることができません。
以下のスニペットに到達しましたが、ペンを動かした後にモーフのビューを更新する方法がわかりません。さまざまな(sm、pen、(sm owner))オブジェクトで「変更済み」を送信しようとしましたが、解決しません。
下のスニペットでは、ウィンドウのサイズを変更すると線が引かれます。または、最後の行に「openInWindow」を入れた場合も同様です。
sm := SketchMorph new.
sm clearExtent: 600@600 fillColor: (Color yellow) darker darker.
sm position: 100@100.
sm openInWindow.
pen := sm penOnMyForm.
pen defaultNib: 4; color: (Color red).
pen up.
pen goto: 10@10.
pen down.
pen goto: 100@100.
のSketchMorph
代わりにに送信する必要のあるメッセージは#layoutChanged
、
sm revealPenStrokes
これは-しゃれを意図した-かなり意図を明らかにすることです。そうですね。
ニコラによって提供されたヒントを使用して、sm layoutChanged
なぜそれが線を示したのかを理解しようとしてデバッグしました。私はsm changed
以前に運が悪かったので、手がかりがなければならないことを知っていましたgenerateRotatedForm
。そして、このメソッドはivarを再定義するのでrotatedForm
、問題がによって無効化されていないキャッシュにあると思われるので、それを変更したすべてのメソッドを探しましたchanged
。すぐに、セレクターrevealPenStrokes
は、を変更するメソッドのかなり短いリストから勝利を収めましたrotatedForm
。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加