Nic*_*tti 5 smalltalk squeak pharo morphic
我正在探索Mac OS 5.2中的Squeak。
我在RectangleMorph'r'中绘制线(PolygonMorph)。当我翻译'r'时,线条会翻译,但是当我重新缩放'r'时,线条不会重新缩放。
运行下面的片段。然后使用Halo转换并调整矩形“ r”的大小。您会看到“ p”行已翻译但未缩放。
r := RectangleMorph new.
"[Pharo] r:= Morph.new."
r extent: 500@500.
r openInWindow.
p := PolygonMorph
vertices: {(r left)@(r top). (r right)@(r bottom)}
color: Color white borderWidth: 2 borderColor: Color white.
r addMorph: p.
Run Code Online (Sandbox Code Playgroud)
我怎样才能得到'p'重新缩放?
再见
这可能不是您正在寻找的完整答案,但分享我所做的事情可能会帮助您在有趣的问题上取得一些进展。
'add halo'在某处并右键单击以将所有方法都带有该文字。#addHalo:为菜单项的关联消息。halt进行调试#addHalo:。addGrow:with:到变形。addGrow:with:发送setExtentFromHalo:和这个发送extent:。我的结论是,您需要一个新的子类,RectangleMorph当它接收到 时,它会按比例调整其所有子变形的大小setExtentFromHalo:。一些关于
ScalableRectangleMorph >> #setExtentFromHalo: aPoint
current := self extent.
super setExtentFromHalo: aPoint.
scale := self extent - current / current.
self submorphsDo: [:m | m extent: (m extent * scale) rounded]
Run Code Online (Sandbox Code Playgroud)
尝试一下(我没有),然后让我们知道效果如何。
| 归档时间: |
|
| 查看次数: |
92 次 |
| 最近记录: |