Я могу повернуть TextMorph в Morphic, но не могу найти способ его поворота. Я хочу использовать его при инициализации.





Попробуй это:
aTextMorph addFlexShell rotationDegrees: 45.0
#addFlexShell оборачивает TextMorph в TransformationMorph, который можно использовать для применения преобразований. Когда вы применяете вращение через ореол морфа, он также добавляет TransformationMorph. Вы можете сохранить его в переменной, чтобы получить к нему доступ позже:
flexShell := aTextMorph addFlexShell.
flexShell rotationDegrees: 45.0.
"..."
Если вы пишете это в методе и вам нужна гибкая оболочка (для целей преобразования) после завершения метода, добавьте переменную экземпляра в свой класс и сохраните в ней гибкую оболочку:
Object subclassNamed: #MyClass
instanceVariableNames: 'transformationOfMyMorph myMorph'
classVariableNames: ''
poolDictionaries: ''
category: 'MyPackage'
myMethod
myMorph := TextMorph new contents: 'rotated text'.
transformationOfMyMorph := myMorph addFlexShell.
rotateFurther
transformationOfMyMorph rotationDegrees: transformationOfMyMorph rotationDegrees + 5.0.
Если вам нужна только гибкая оболочка в одном методе, используйте временную (локальную) переменную:
myMethod
| flexShell |
myMorph := TextMorph new. "..."
flexShell := myMorph addFlexShell.
"..."
Есть несколько вариантов: временные (локальные) переменные, переменные экземпляра, переменные класса. В зависимости от того, что вы хотите сделать и как долго вам нужно обращаться к морфу, одно предпочтительнее другого. Объяснять их все - слишком сложно для комментария. Вы смотрели книгу «Писк на примере»? Он доступен для загрузки.
Я добавил в ответ примеры использования переменных экземпляра и временных переменных.
Спасибо за ваше время. Теперь я определенно могу вращать вещи и чувствую, что близок к пониманию сохранения морфа в переменной экземпляра класса.
Пожалуйста. Пожалуйста, обратите внимание на дальнейшие вопросы или общение с Smalltalkers, что «переменная экземпляра» и «переменная экземпляра класса» - это две разные вещи (и «переменная класса (пула)» - это третья вещь). В своем ответе я показываю «переменную экземпляра».
хорошо, я подумал, было ли это что-то в этом роде. Я до сих пор не понимаю, как сохранить созданный морфик в переменной. Могу ли я использовать глобальную переменную, которая навсегда останется в моем изображении? или есть способ создать подкласс, обратившись к переменной? Не могли бы вы указать мне на объяснение процесса? Я так много прочитал, но это еще не понятно?