Пожалуйста, обратите внимание этот простой код rebol2, чтобы проиллюстрировать мою проблему:VID расположение панели поддерживает несколько творений лица [rebol2]
REBOL []
a: make face [
offset: 0x0
color: yellow
size: 20x20
]
b: make face [
offset: 0x0
color: red
size: 60x60
pane: reduce [
make a [offset: 0x0]
make a [offset: 10x10]
make a [offset: 10x20]
]
]
view layout [
box 200x200 white with [
pane: reduce [
make b [offset: 0x30] ;; one 'instance' of b
]
]
]
Главное здесь для макета (или лица), чтобы иметь возможность отображать кучу граней внутри его панельного блока таким образом, чтобы в этом случае было возможно многократное создание одной и той же грани (b
). Показанный код работает хорошо, и только экземпляр (позвольте мне назвать его таким образом) b
отображается так, как должно быть.
Но теперь предположим, что я изменить код так, у меня есть, скажем, 2 экземпляры из b
:
view layout [
box 200x200 white with [
pane: reduce [
make b [offset: 0x30]
make b [offset: 0x10]
]
]
]
На данный момент я получаю ошибку
** Script Error: Face object reused (in more than one pane): none
** Where: view
** Near: show scr-face
if new [do-events]
Из сообщения я предполагаю здесь, что лицо b
каким-то образом получает повторное использование и возится именно с тем, чего я пытаюсь достичь. Я провел много исследований по этому вопросу, и в какой-то момент я обнаружил, что можно обойти его, клонируя (используя make
) лицо, которое должно быть передано pane
; это то, что я думал, что я делаю, но безуспешно.
Учитывая этот сценарий, мой вопрос: как я могу это решить? это rebol2 ok, чтобы обеспечить это «создание лица» или лучше попробовать что-то другое за пределами rebol2 (возможно, rebol3)?
Любая помощь будет принята с благодарностью.
Второй подход работал лучше всего для моей проблемы, и это было просто/прозрачно для того, что я собирался построить дальше с этим кодом. Спасибо за сообщение: D – rdonatoiop