2017-01-22 74 views
0

Я пытаюсь сделать приложение, используя App Inventor.App Inventor выбрать цвет фона из списка в TinyDB

Приложение имеет больше функций, но я застрял в том, что я сказал бы «базовый». Что я хочу сделать, это в основном изменить цвет фона (или цвет любого элемента), вызвав цвет из списка, хранящегося в TinyDB.

У меня есть два экрана Screen1 и экран меню. Я звоню по телефону TinyDB, а Screen1 инициализирует и устанавливает цвет фона приложения в первом списке. Далее я хочу, чтобы пользователь выбирал цвет из списка на другом экране «Меню». После выбора цвета измените цвет на обоих экранах.

Я попытался сделать это в соответствии с инструкцией https://sites.google.com/site/blocks123/playing-with-colors, но для меня это немного запутывает.

На печатном экране у меня есть блоки TinyDB на экране1. Возможно ли на Screen1 просто позвонить/инициализировать TinyDB, но есть блоки TinyDB на другом экране «Меню»?

И когда у меня есть TinyDB и списки цветов, как изменить цвет на выбранный?

enter image description here

Спасибо Taifun. Ваш учебник был полезен для меня, он думал, что он немного запутан с переменными, которые там не описаны. В любом случае я пытался сделать это немного по-своему, и я думаю, что иду в правильном направлении. Как показано на втором изображении, я сделал это на экране «Меню» и попытался сохранить свой выбор на [TinyDB]. Он работает почти отлично, но кроме ошибки, когда экран «Меню» инициализируется. Я не понимаю, почему я получаю это сообщение, а значение - в списке? И наоборот, как передать переменную BC currentColor в «Screen1»? Если я использую set.Screen1.BackgroundColor это doesntWork

enter image description here

Ну теперь я знаю, что я близко, я чуть не упал в воздухе. Он правильно меняет цвет фона на экране «Меню», но некоторые из них не сохраняют выбор в [TinyDB], как я описываю при комментариях. Где я ошибся? Надеюсь, когда я сохраню цвет «код» в базе данных, я могу позвонить ему на другом экране.

enter image description here

+0

сделать [Учебник по цветным точкам] (http://explore.appinventor.mit.edu/ai2/colored-dots) ... – Taifun

+0

Спасибо Taifun. Этот урок помог мне, подумал, что он немного запутан с переменными, которые там не описаны. В любом случае я попытался сделать это немного по-своему, и я думаю, что иду в правильном направлении. Как показано на другом изображении, я сделал i на экране «Меню» и трансивером, чтобы сохранить свой выбор до [TinyDB]. Он работает почти отлично, но за исключением ошибки, когда экран «Меню» инициализируется. Я не понимаю, почему я получаю это сообщение, а значение находится в списке? И наоборот, как передать переменную BC currentColor в «Screen1»? Если я использую set.Screen1.BackgroundColor, это doesntWork – Jorge

+1

, есть некоторые проблемы в ваших блоках. в первую очередь, они очень громоздки ... переменные '' BCurrentColor'' и 'BC currentColorName' должны быть значениями, а не списками, это помогает узнать, как работать со списками, см. также [Как работать со списками] (http: // www.imagnity.com/tutorials/app-inventor/list-blocks-on-app-inventor/) Saj и [Как работать со списками и списками списков (pdf)] (http://www.appinventor.org /bookChapters/chapter19.pdf) от appinventor.org. Если у вас все еще есть проблемы, позвольте пригласить вас на форум [App Inventor forum] (https://groups.google.com/forum/#!forum/mitappinventortest). – Taifun

ответ

0

Как упоминалось Тайфун проблема была с переменными BCurrentColor и BCurrentColorName. После того, как я изменил их на значения и триггер после выбора цвета из списка, установите его на необходимый цвет.

Тогда я могу назвать это от TinyDB. Он работает нормально.