Jenseits der Grundlagen mit Framer

Einführung

In meinem vorherigen Tutorial zu Framer haben Sie gelernt, wie Sie Ebenen, Status und Ereignisse verwenden, um einfache Modelle für Ihre iOS- und Android-Apps zu erstellen. Framer hat aber noch viel mehr zu bieten. In diesem Lernprogramm werde ich mich auf einige erweiterte Funktionen des Frameworks konzentrieren, mit denen Sie komplexere Interaktionen und Effekte in Ihre Modelle einfügen können.

1. Verschachtelungsschichten

Da eine Ebene in eine andere Ebene eingebettet werden kann, können Sie mit Framer komplexe Ebenenhierarchien erstellen. Eine eingebettete Ebene wird als Sublayer bezeichnet, und die Ebene, in die sie eingebettet ist, wird als Superlayer bezeichnet. Das folgende Code-Snippet zeigt, wie Sie eine Ebene in eine andere Ebene mit einbetten SuperLayer Eigentum.

"Javascript var layer1 = neue Ebene (Breite: 200, Höhe: 200);

var layer2 = neue Ebene (width: 100, height: 100, superLayer: layer1 // macht diese Ebene zu einem untergeordneten Element von layer1); "

Sie können Layer-Hierarchien verwenden, um mehrere Bildschirme in Ihren Modellen zu simulieren. Lassen Sie mich Ihnen anhand eines Beispiels zeigen, wie das geht. Betrachten Sie ein Modell mit zwei Bildschirmen, einem Anmeldebildschirm und einem Begrüßungsbildschirm.

Der Anmeldebildschirm enthält Eingabefelder für den Benutzernamen und das Kennwort sowie eine Schaltfläche zum Senden. Der Begrüßungsbildschirm enthält ein Bild und einige Textzeilen.

Um ein solches Modell zu erstellen, können Sie die Anmelde- und Begrüßungsbildschirme als Superlayers und die darin enthaltenen Benutzeroberflächenelemente als Sublayer betrachten. Beginnen wir damit, zuerst die Superlayers zu erstellen.

"Javascript var loginScreen = neue Ebene (width: Screen.width, height: Screen.height,);

var welcomeScreen = neue Ebene (width: Screen.width, height: Screen.height,); "

Wie du siehst, Anmeldebildschirm und welcomeScreen sind leer Schicht Objekte für jetzt. Fügen wir einige untergeordnete Ebenen hinzu Anmeldebildschirm Schicht.

"javascript // Die CSS-Stile, die auf die Ebenen angewendet werden sollen var style = paddingTop:" 25px ", Farbe:" # 999 ", Hintergrund:" #FFF ";

// Erzeuge das Feld "Benutzername" var usernameField = new Layer (width: 500, height: 100, y: 100, html: "Username", Stil: Stil, superLayer: loginScreen // child von loginScreen); usernameField.centerX ();

// Erstelle das Passwortfeld var passwordField = new Layer (width: 500, height: 100, y: 220, html: "Password", Stil: Stil, superLayer: loginScreen // child von loginScreen); passwordField.centerX ();

// Erzeuge den Submit-Button var submitButton = new Layer (width: Screen.width, height: 100, y: Screen.height - 100, html: "LOGIN", Stil: paddingTop: "25px", Farbe: "# FFFFFF ", fontWeight:" fett ", backgroundColor:" # 2196F3 ", superLayer: loginScreen // Kind von LoginScreen);"

Auf dieselbe Weise fügen wir jetzt einige Unterebenen hinzu welcomeScreen Schicht.

"javascript // Eine Ebene erstellen, um ein Profil anzuzeigen pic var profilePic = neue Ebene (Breite: 400, Höhe: 400, borderRadius: 200, Bild: 'profile.jpg', y: 100, superLayer: welcomeScreen // unter welcomeScreen); profilePic.centerX ();

// Erstelle eine Ebene für den Begrüßungstext var text = new Ebene (width: 400, height: 100, y: 600, html: "Welcome Jenny", backgroundColor: "", Stil: color: "#FFFFFF") , superLayer: welcomeScreen // Kind von WelcomeScreen); text.centerX (); "

Wenn Sie jetzt versuchen, Ihren Prototyp in einem Browser anzuzeigen, wirkt er etwas unordentlich. Beide Überlagerungen (Anmeldebildschirm und welcomeScreen) sind gleichzeitig sichtbar.

Um eine Ebene auszublenden, legen Sie ihre Ebene fest sichtbar Eigentum an falsch. So behalten Sie die welcomeScreen Ebene ausgeblendet, wenn das Mockup beginnt:

Javascript welcomeScreen.visible = false;

Um die Ansicht vom Anmeldebildschirm zum Begrüßungsbildschirm zu ändern, können Sie einfach die Ansicht ausblenden Anmeldebildschirm Ebene und schalten Sie die Sichtbarkeit der ein welcomeScreen Schicht. Das folgende Code-Snippet zeigt Ihnen, wie Sie dies im klicken Handler von submitButton:

javascript submitButton.on ("click", function () loginScreen.visible = false; welcomeScreen.visible = true;);

Gehen Sie zurück zum Browser und aktualisieren Sie die Seite, damit Ihr Modell jetzt sinnvoller erscheint. Denken Sie daran, dass der Browser, den Sie zum Anzeigen des Modells verwenden, webKit-basiert sein muss, z. B. Chrome oder Safari.

Wenn Sie den Instant-Schalter nicht mögen, können Sie den Übergang mit dem animieren animieren Funktion, um beispielsweise die zu animieren Opazität der Schichten.

"Javascript submitButton.on (" click ", function ()

welcomeScreen.opacity = 0; welcomeScreen.visible = true; // welcomeScreen ist immer noch nicht sichtbar //, weil seine Deckkraft gleich null ist loginScreen.animate (properties: opacity: 0); welcomeScreen.animate (Eigenschaften: Deckkraft: 1, Zeit: 2 // Dauer der Animation beträgt 2 Sekunden); ); "

So sieht der Übergang jetzt aus:

2. Verwenden von Ebeneneffekten

Mit Framer können Sie verschiedene Bildeffekte wie Gaußsche Unschärfe, Farbtonrotation, Helligkeits- / Kontrastanpassung, Farbumkehrung, Sepia-Ton-Addition und mehr auf Ihr Bild anwenden Schicht Objekte.

Das folgende Codefragment zeigt, wie Sie das verwenden verwischen Effekt, um einen unscharfen Hintergrund zu erzeugen:

"javascript // Erstelle eine Hintergrundebene var bg = new BackgroundLayer (image:" bg.jpg ");

Bl.-Unschärfe = 5; // Setze die Gaußsche Unschärfe auf 5 Pixel "

So sieht das Ergebnis aus:

Die übrigen Effekte werden auf ähnliche Weise verwendet. Zum Beispiel, um den Kontrast des zu reduzieren bg Ebene müssen Sie die Kontrast Eigentum:

Javascript bg.contrast = 50;

3. Erstellen von scrollbaren Ebenen

Um eine Ebene scrollbar zu machen, müssen Sie sie in die Inhaltsebene von a einbetten ScrollComponent Objekt. Ein ... Erstellen ScrollComponent ähnelt dem Erstellen eines Schicht Objekt:

Javascript var scroll1 = new ScrollComponent (width: Screen.width, height: Screen.height,);

Der folgende Codeblock zeigt Ihnen, wie Sie a einbetten Schicht Objekt innerhalb der Inhalt von scroll1:

Javascript var layer3 = neue Ebene (width: 2000, height: 2000, image: "pattern.jpg", superLayer: scroll1.content // Einbetten von Inhalten in scroll1);

Hier ist was für ein ScrollComponent sieht aus wie in Aktion:

Beachten Sie, dass das Scrollen nur möglich ist, wenn die Abmessungen der Ebene größer als die Abmessungen der Ebene sind ScrollComponent es ist eingebettet in.

4. Paginierte Daten anzeigen

Anstelle eines kontinuierlichen Bildlaufs möchten Sie Ihre Daten manchmal als eine Reihe von Seiten darstellen. Beispielsweise möchten Sie möglicherweise eine Benutzeroberfläche erstellen, über die ein Benutzer eine Reihe von Bildern durchblättert. Dies kann mit einem PageComponent. Das PageComponent Klasse wird von abgeleitet ScrollComponent Klasse und hat einen identischen Konstruktor.

Hinzufügen eines Schicht zu einem PageComponent, Sie müssen das verwenden Seite hinzufügen Funktion. Der folgende Code zeigt Ihnen, wie Sie eine PageComponent und fügen Sie ein paar Bildebenen hinzu:

"javascript // Erstellen Sie eine PageComponent, die den Bildschirm ausfüllt. var pageComponent = new PageComponent (width: Screen.width, height: Screen.height);

// Erstelle drei Bildebenen var image1 = neue Ebene (width: Screen.width, height: Screen.height, image: "pink.jpg");

var image2 = neue Ebene (width: Screen.width, height: Screen.height, image: "grey.jpg");

var image3 = neue Ebene (width: Screen.width, height: Screen.height, image: “blue.jpg”);

// Hinzufügen aller Bildebenen zu pageComponent pageComponent.addPage (image1); pageComponent.addPage (image2); pageComponent.addPage (image3); "

Das Ergebnis sieht so aus:

5. Animationen verwalten

Sie wissen bereits, dass Sie die verwenden können animieren Funktion zum Animieren der Eigenschaften von a Schicht Objekt. Jedoch anrufen animieren startet die Animation sofort. Wenn Sie steuern möchten, wann eine Animation startet oder stoppt, können Sie verwenden Animation stattdessen Objekte.

So erstellen Sie eine Animation Objekt:

"javascript var animation1 = neue Animation (Layer: Mylayer, // Name des Layers, der // animiert werden soll)

// Eigenschaften, die Eigenschaften ändern sollten: x: 400); "

Sie können dann das intuitiv benannte verwenden Start, halt, und umkehren Funktionen zum Verwalten der Animation. Um zum Beispiel die Animation zu starten, rufen Sie die Start Funktion:

Javascript animation1.start ();

Sie können auch Event-Handler hinzufügen Animation Objekte mit der auf Funktion. Mit dieser Funktion können Sie verkettete Animationen erstellen. Hier ist zum Beispiel ein Codeausschnitt, der umgekehrt wird Animation1 Wenn die Animation endet:

"Javascript animation1.on (Events.AnimationEnd, function ()

// Erstellen Sie eine umgekehrte Kopie von animation1 und spielen Sie sie ab. Animation1.reverse (). Start (); ); "

Die Animation würde so aussehen:

6. Ändern der Geräteausrichtung

Alle Beispiele, die ich Ihnen bis jetzt gezeigt habe, rendern das mobile Gerät im Hochformat. Wenn Sie die Querformatausrichtung verwenden möchten, müssen Sie den Wert zuweisen 90 zum Orientierung Eigentum der DeviceComponent.

Javascript device.orientation = 90;

Im Browser sieht das Gerät jetzt so aus:

Um die Orientierungsänderung zu animieren, verwenden Sie die setOrientation Methode, vorbei wahr als zweiten Parameter.

Javascript device.setOrientation (90, true);

Fazit

In diesem Lernprogramm haben Sie gelernt, wie Sie die weiterentwickelten Funktionen von Framer wie verschachtelte oder eingebettete Ebenen, Ebeneneffekte, Bildlaufcontainer und Animationsereignisse nutzen können. Mit etwas Kreativität und Aufwand können Sie jetzt mit dem Framer-Framework beeindruckende Prototypen erstellen. Hier sind einige schöne Modelle, die Sie inspirieren.

In der Framer-Dokumentation finden Sie weitere Informationen zu diesem leistungsstarken Prototyping-Framework.