Sonntag, 10. Juni 2012

[Tutorial]Einführung in Szenen

Tasker bietet nun schon sein geraumer Zeit ein neues Feature namens "Szenen". Mit Szenen lassen sich Oberflächen erstellen um Benutzereingaben abzufragen oder diverse Informationen anzuzeigen. Im Folgenden möchte ich nun eine kleine Einführung für geben. Dabei soll eine Szene erstellt werden mit der sich die Medienlautstärke anpassen lässt.


Dafür wählen wir als erstes den Reiter "Scenes" aus und drücken auf "+". In dem folgenden Fenster können wir der Szene einen Namen geben, zBsp "Level". Nach der Bestätigung sehen wir ein leeres Fenster mit einem Rahmen vor uns. Dieser stellt die Größe der Szene dar und kann einfach mit dem FInger vergrößert werden. Um nun ein Element zu platzieren müssen wir zu erst auf die Lupe rechts unten klicken, die Szene wird daraufhin auf den kompletten Bildschirm vergrößert. Mit einem Klick auf "+" können nun verschiedene Elemente hinzugefügt werden:
  • Button - Ein typischer Button, man kann den Ereignissen "Tap" (drücken) und "Long Tap" (langes drücken) Aktionen zuordnen.
  • Doodle - Birgt die Möglichkeit ein Bild zu malen. Neben den Ereignissen "Tap" und "long Tap" besitzt es noch "Stroke" (streichen), hierbei kann auf ein Fingerwischen über das Doodle reagiert werden. Allerdings ist es mir noch nicht gelungen dies umzusetzen.
  • Image - Wie Doodle nur dass hier schon vorhandenes Bild ausgewählt werden kann.  
  • Map - Bietet die Möglichkeit eine Google Map einzubinden. Es können Zielkoordinaten angegeben werden. Außerdem können die Layer "Satellite" und "Traffic" aktiviert werden. Als Ereignisse stehen wieder "Tap" und "Long Tap" zur Verfügung
  • Menu - Ein Menü mit einer festen oder variablen Mengen an Auswahlmöglichkeiten. Die Möglichkeiten können manuell vergeben oder dynamisch einem Array zugewiesen werden. Einem Klick auf einen Eintrag kann eine Aktion zugewiesen werden. Außerdem stehen wieder "Tap" und "Long Tap" zur Verfügung.
  • Oval/Rectangle - Erstellt ein Rechteck bzw. eine Ellipse. Wie bei Image stehen hier "Tap", "Long Tap" und "Stroke" zur Verfügung.
  • Slider - Verändert den Wert einer Variablen über einen Schieberegler. Über das Ereignis "Value Selected" lassen sich Aktionen an die vollendete Eingabe knüpfen.
  • Text - Zeigt einen statischen Text oder den Inhalt einer Variablen an. Besitzt auch wieder "Tap", "Long Tap" und "Stroke"
Für unsere Lautstärke-Einstellung benötigen wir zu erst einen Slider, welchen wir mit "+" hinzufügen.
Nun öffnet sich sein Eigenschaftsfenster. Name und Orientation können bleiben wie sie sind. Die Min Value sollte auf 0 stehen und die Max Value auf die maximal Mögliche Lautstärke, bei mir wäre das 7. Um die eigene maximale Lautstärke herauszufinden könnt ihr entweder die Schritte von minimal zur maximal Zählen oder euch den Inhalt der Variablen %VOL bei maximal Lautstärke ansehen.
Damit Tasker nun unser Element kennt muss die Szene gespeichert werden. Dazu über den Haken links unten die Szene schließen und auch Tasker schließen, dies ist bei Szenen hin und wieder nötig, da Tasker wohl erst beim schließen alle EIgenschaften der neuen Szene umsetzt. nun können wir Tasker wieder öffnen und in die Szene springen.
Das EInstellungsfenster des Sliders öffnen wir indem wir auf den SLider drücken.
Nun wechseln wir zum Reiter "Value Selected". Hier müssen nun die nötigen Aktionen eingetragen werden:
  1. Scene -> Test Element
    • Scene Name: Level
    • Element: Slider
    • Test: Value
    • Store Result In: %VOLtemp
  2. Audio -> Ringer Volume
    • Level: %VOLtemp (über den Doppelpfeil ändert sich das Feld)
    • Display: No
    • Sound: Yes

Nun sind unsere Aktionen fertig und wir können sie schließen.
Eventuell muss nun noch Größe oder Position des Sliders angepasst werden. Um ihn zu vergrößern reicht es den Rahmen mit dem Finger auseinander zu ziehen. Soll ein Element verschoben werden muss in der unteren Leiste auf den Teddy-Button geklickt und im sich öffnenden Menü "Move" ausgewählt werden.
Mit dem grünen Haken schließen wir nun die Szene und wechseln in den Reiter "Tasks".

Jetzt muss ein neuer Task erstellt werden um die Szene aufzurufen. Mit "+" fügen wir den neuen Task hinzu und nennen ihn zBsp "LevelScene". Wir benötigen folgende Aktionen:
  1. Scene -> Create Scene
    • Name: Level
  2. Scene -> Show Scene
    • Name: Level (oder wie eure heißt)
    • Display as: Dialog
    • Show Exit Button: Yes
    • Continue Task Immediately: No
  3. Scene -> Destroy Scene
    • Name: Level
Mit "Create Scene" wird die Szene im Hintergrund erstellt. Nun kann die Szene mit "Show Scene" angezeigt werden. Dabei stehen verschiedene Anzeigemöglichkeiten zur Auswahl. Für die meisten Fälle sollte "Dialog" das richtige sein. Über den Exit Button wird die Szene beendet und zerstört, dazu gleich mehr. "Continue Task Immediately" gibt an ob die nachfolgenden Aktionen sofort ausgeführt werden sollen (Yes) oder erst nachdem die Szene geschlossen wurde (No). Wir wählen hier "No" da wir nach dem schließen der Szene sie gleich noch zerstören wollen. Dies geschieht über "Destroy Scene". Beim zerstören werden alle temporären Daten der Szene gelöscht, dies empfiehlt sich nach jedem Schließen der Szene. Eine nicht zerstörte Szene kann auch nicht neu über "Create Scene" erstellt werden.

Um unser Werk nun zu bewundern einfach auf den Play Button unten rechts drücken.
Nun sollte sich die Szene öffnen und sich die Lautstärke über den Slider anpassen lassen. Eine Veränderung sollte durch einen Ton angezeigt werden. Sollte etwas noch nicht funktionieren, bitte mal Tasker schließen und wieder öffnen, damit die letzten Änderungen der Szene übernommen werden.

Zum Schluss noch eine Auswahl der Aktionen aus "Scene":
  • Create Scene - Erstellt eine Szene, zeigt sie aber noch nicht an
  • Destroy Scene - Zerstört eine Szene, d.h. löscht alle temporären Dateien
  • Hide Scene - versteckt eine Szene
  • Show Scene - zeigt eine bereits erstellte Szene
  • Test Scene - Überprüft ob die Szene erstellt wurde und angezeigt wird. Möglichkeiten: "uncreated", "hidden", "visible"
  • Element Position - Verändert die Position eines angegebenen Elementes in einer bestimmten Szene. Genauso funktionierten Element Size, Element Text usw.
  • Element Visibility -Ändert die Sichtbarkeit eines Elementes
  • Test Element - Speichert diverse Eigenschaften eines Elementes in einer Variablen, zBsp "Value" (den Wert), "Position"

Kommentare:

  1. Hey, wie kann man Szenen löschen oO ??? Ich bekomme diese Teile nicht mehr weg.

    AntwortenLöschen
    Antworten
    1. Das geht mit "DestroyScene". Bzw. in der Laufzeit mit der zurück Taste

      Löschen
  2. Die Szene kommt beim Testlauf und der Regler lässt sich verschieben. Sie verschwindet auch wieder. Aber ich hör keinen Ton.

    AntwortenLöschen
  3. Ich kann den Schieberegler hin und her schieben, habe aber nur bei der ersten Veränderung des Reglers einen Ton und eine Veränderung der Ton höhe um +1 oder -1.
    Weiter oben kam schonmal die Frage auf eine erstellte Szene zu löschen.
    Ich bekomm die auch nicht weg ???
    Ansonsten schönes TUT.
    Danke

    AntwortenLöschen
  4. Szenen löschen geht mit der Aktion "Destroy Scene" diese einfach hinter einen Butto hängen oder im Task nach "Show Scene", dafür aber bei "Show Scene" den Haken bei "Continue Task imediatly" raus, dann wird die nächste Aktion erst nach ausblenden der Szene (zBsp durch den zurück Pfeil) ausgeführt

    AntwortenLöschen
  5. und wo/wie wird diese szene nun praktisch eingesetzt...
    aslo wie erscheint der regler nun...
    wann/warum...
    das habe ich nicht verstanden...??**

    AntwortenLöschen
    Antworten
    1. mit der Aktion "Show Scene" wird die Szene als Popup Fenster angezeigt, dann lässt sich der Regler auch nutzen.
      Weiterhin kann aber auch der Aktion "Popup" neben dem Standard blau/grauen Layout eine andere selbst erstellte Szene zugewiesen werden, einfach mal die Aktion "Alert->Popup" angucken.

      Löschen
    2. ok... ja das war schon relativ klar...
      nee ich frage mich zu welcher aktion du den
      volumenregler eingebunden hast...??
      oder überlese ich das jetzt konsequent ;-))

      Löschen
  6. im ersten orangenen Abschnitt ist die aktion dazu.
    Die wird direkt auf den Regler gelegt als "Value Selected" Ereignis. EIn solches oder ähnliches Ereignis hat jedes grafische Element dass du in eine Szene einbauen kannst.

    AntwortenLöschen
  7. So wie ich haben vermutlich auch andere das Problem, um erstellte Szenen wieder zu löschen. Ich meine wie all anderen auch, das Design einer Szene wieder zu löschen. Das geht nämlich IMHO nicht...

    AntwortenLöschen
  8. Ich bin seiner meinung, wenn man zum rumspielen mal scene xy erstellt hat, gibt es keine möglichkeit die scene zu löschen, wir meinen NICHT sie aus irgendnem task zu entfernen, sondern aus der scene liste.

    Ein longtouch bringt nur rename und export als option.

    AntwortenLöschen
    Antworten
    1. Also wenn i einen longtouch mach kommt clone, delete, Export, lock als Auswahlmöglichkeiten...

      Löschen
  9. hm, bei mir nicht :(

    hast Du dann ne alternative idee ?

    AntwortenLöschen
    Antworten
    1. hast du deutsch oder englisch eingestellt? Englisch ist besser.
      Ansonsten kann ich mir nicht erklären wieso ein Menüeintrag fehlen soll.

      Evtl. mal in einem Forum nachfragen, vielleicht ist der Fehler bekannt

      Löschen
  10. Level: %VOLtemp (über den Doppelpfeil ändert sich das Feld)

    Wo ist den da ein Doppelpfeil? Ich sehe nur einen Slider

    AntwortenLöschen
  11. Schon beantwortet. Google ist Dein Freund.
    "Beginner Mode" deaktivieren.

    AntwortenLöschen
  12. Dieser Kommentar wurde vom Autor entfernt.

    AntwortenLöschen
  13. Wie kann man denn einem Button sagen, dass die Szene nicht zerstört werden soll?
    Wenn ich eine Verknüpfung zu "Tesla LED Toggle" aufrufe, wird auch gleich die Szene zerstört.

    AntwortenLöschen