2017-01-22 20 views
0

Ich versuche, eine App mit App Inventor zu machen.App Inventor wählen Hintergrundfarbe aus der Liste in TinyDB

Die App hat mehr Funktionen, aber ich bleibe bei der Ich würde sagen "Basic". Was ich tun möchte, ist im Grunde ändern Sie die Hintergrundfarbe (oder Farbe eines Elements) durch den Aufruf der Farbe aus der Liste in TinyDB gespeichert.

Ich habe zwei Bildschirme Screen1 und einen Menübildschirm. Ich tring, um TinyDB zu rufen, während Screen1 initialisiert und Hintergrundfarbe der App auf dem ersten in der Liste einstellt. Weiter möchte ich Benutzer eine Farbe aus der Liste auf dem anderen Bildschirm "Menü" wählen lassen. Nachdem Sie eine Farbe ausgewählt haben, ändern Sie die Farbe auf beiden Bildschirmen.

Ich habe versucht, es nach der Anweisung https://sites.google.com/site/blocks123/playing-with-colors zu machen, aber es ist ein bisschen verwirrend für mich.

Auf dem Druckbildschirm habe ich die TinyDB Blöcke auf dem Screen1. Ist es möglich, auf Screen1 nur TinyDB aufzurufen/initialisieren, aber die TinyDB Blöcke auf dem anderen Bildschirm "Menü"?

Und wenn ich TinyDB und Listen der Farbe habe, wie man die Farbe auf dem vorgewählten ändert?

enter image description here

Danke Taifun. Ihr Tutorial war hilfreich für mich, obwohl es etwas verwirrend ist mit Variablen, die dort nicht beschrieben sind. Jedenfalls habe ich versucht, es ein bisschen auf dem Weg zu machen und ich denke, dass ich die richtige Richtung einschlagen werde. Wie auf dem zweiten Bild gezeigt, habe ich es auf dem "Menü" -Bildschirm gemacht und versucht, meine Wahl in [TinyDB] zu speichern. Es funktioniert fast gut, außer dem Fehler, wenn der "Menu" -Bildschirm inizialisiert wird. Ich verstehe nicht, warum ich diese Nachricht bekomme, während Wert auf der Liste steht? Und wie kann man die Variable BCurrentColor an "Screen1" übergeben? Wenn ich set.Screen1.BackgroundColor es doesntWork

enter image description here

Nun ich weiß, ich bin in der Nähe, kann ich fiel fast in der Luft. Es ist richtig, die Hintergrundfarbe auf dem "Menü" -Bildschirm zu ändern, aber einige, wie es nicht die Auswahl in [TinyDB] speichert, wie ich bei Kommentaren beschreibe. Wo bin ich falsch gelaufen? Ich hoffe, wenn ich die Farbe "Code" in der Datenbank speichern kann ich es auf dem anderen Bildschirm aufrufen.

enter image description here

+0

Machen Sie das [Farbige Punkte Tutorial] (http://explore.appinventor.mit.edu/ai2/colored-dots) ... – Taifun

+0

Danke Taifun. Dieses Tutorial war hilfreich für mich, obwohl es mit Variablen, die dort nicht beschrieben sind, etwas verwirrend ist. Jedenfalls habe ich versucht, es ein bisschen auf meinem Weg zu tun, und ich denke, dass ich die richtige Richtung gehe. Wie auf dem anderen Bild gezeigt, habe ich ich auf dem "Menu" -Bildschirm und tring, um meine Wahl zu [TinyDB] zu speichern. Es funktioniert fast gut, außer dem Fehler, wenn der "Menu" -Bildschirm inizialisiert wird. Ich verstehe nicht, warum ich diese Nachricht bekomme, während Wert in der Liste ist? Und wie kann man die Variable BCurrentColor an "Screen1" übergeben? Wenn ich set.Screen1.BackgroundColor es nicht funktioniert – Jorge

+1

gibt es einige Probleme in Ihren Blöcken. vor allem sind sie sehr umständlich ... die Variablen 'BCurrentColor' und' BCurrentColorName' sollten Werte und keine Listen sein, es hilft zu lernen, wie man mit Listen arbeitet, siehe auch [Wie man mit Listen arbeitet] (http: // www.imagnity.com/tutorials/app-inventor/list-blocks-on-app-inventor/) von Saj ​​und [Wie man mit Listen und Listen von Listen arbeitet (pdf)] (http://www.appinventor.org /bookChapters/chapter19.pdf) von appinventor.org. Falls Sie weiterhin Probleme haben, können Sie mich dazu einladen, im [App Inventor-Forum] (https://groups.google.com/forum/#!forum/mitappinventortest) zu posten. – Taifun

Antwort

0

Als Taifun erwähnt wurde das Problem mit den Variablen BCurrentColor und BCurrentColorName. Nachdem ich sie in Werte geändert habe und der Auslöser nach der Auswahl der Farbe aus der Liste auf die gewünschte Farbe setzt.

Dann kann ich es von TinyDB anrufen. Es funktioniert gut.