PSD-Tutorials.de
Forum für Design, Fotografie & Bildbearbeitung
Tutkit
Agentur
Hilfe
Kontakt
Start
Forum
Aktuelles
Besonderer Inhalt
Foren durchsuchen
Tutorials
News
Anmelden
Kostenlos registrieren
Aktuelles
Suche
Suche
Nur Titel durchsuchen
Von:
Menü
Anmelden
Kostenlos registrieren
App installieren
Installieren
JavaScript ist deaktiviert. Für eine bessere Darstellung aktiviere bitte JavaScript in deinem Browser, bevor du fortfährst.
Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen
alternativen Browser
verwenden.
Antworten auf deine Fragen:
Neues Thema erstellen
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
Webdesign: HTML/CSS, Responsive Design, Sass...
Smoothing von Text (CS5 / AS3) / An ssandner
Beitrag
<blockquote data-quote="Indium1" data-source="post: 1744839" data-attributes="member: 189537"><p><strong>AW: Smoothing von Text (CS5 / AS3) / An ssandner</strong></p><p></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Hallo Stephan,</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">hier ein wenig Stuff für Dich (und das an einem Freitag). <img src="/styles/default/xenforo/smilies/zwinker.gif" class="smilie" loading="lazy" alt=";)" title="Wink ;)" data-shortname=";)" /></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Ich fange mal mit den zwei Fehlern an die ich letztens angedeutet habe;</span></span></p><p> </p><p> <span style="font-family: 'Arial'"><span style="font-size: 12px">Fehler 1:</span></span></p><p> </p><p> <span style="font-family: 'Arial'"><span style="font-size: 12px">Beim Scrollen mit dem Mausrad und den Pfeiltasten der Tastatur wurde zu weit nach oben und nach unten gescrollt. Zu sehen waren ungefähr 3 Zeilen ohne Text.</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Abhilfe:</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Verschiebung der AS3 Zeile mit dem event.delta; in die dritte Zeile der function mouseWheel. </span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">[php]</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> function mouseWheel(event:MouseEvent)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> this.info_textfenster.scrollbar_eins.scrollbalken_eins.y=this.info_textfenster.scrollbar_eins.scrollbalken_eins.y - event.delta;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> if(this.info_textfenster.scrollbar_eins.scrollbalken_eins.y <= yMin)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> this.info_textfenster.scrollbar_eins.scrollbalken_eins.y = yMin;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> if(this.info_textfenster.scrollbar_eins.scrollbalken_eins.y >= yMax)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> this.info_textfenster.scrollbar_eins.scrollbalken_eins.y = yMax;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> var sp:Number = this.info_textfenster.scrollbar_eins.scrollbalken_eins.y / yMax;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> Tweener.addTween(this.info_textfenster.foto_beschreibung, {y:(-sp*(this.info_textfenster.foto_beschreibung.height-this.info_textfenster.masker.height)), time:0.5, transition:"easeOutQuart"});</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> event.updateAfterEvent();</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> [/php]</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Gleiches gilt für die function KeyPressedF. Hier die Zeile 25 mit dem …scrollbalken_eins.y+Keystep; auf die Zeile 17 verschieben.</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">[php]</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> function KeyPressedF(event:KeyboardEvent)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> var Keystep:Number=0;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> switch (event.keyCode)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> case Keyboard.UP :</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> Keystep=Keystep-3;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> trace(Keystep);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> break;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> case Keyboard.DOWN :</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> Keystep=Keystep+3;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> trace(Keystep);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> break;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> this.info_textfenster.scrollbar_eins.scrollbalken_eins.y=this.info_textfenster.scrollbar_eins.scrollbalken_eins.y+Keystep;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> if (this.info_textfenster.scrollbar_eins.scrollbalken_eins.y<=yMin)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> this.info_textfenster.scrollbar_eins.scrollbalken_eins.y=yMin;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> if (this.info_textfenster.scrollbar_eins.scrollbalken_eins.y>=yMax)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> this.info_textfenster.scrollbar_eins.scrollbalken_eins.y=yMax;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> var sp:Number=this.info_textfenster.scrollbar_eins.scrollbalken_eins.y/yMax;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> Tweener.addTween(this.info_textfenster.foto_beschreibung, {y:(-sp*(this.info_textfenster.foto_beschreibung.height-this.info_textfenster.masker.height)), time:0.5, transition:"easeOutQuart"});</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> event.updateAfterEvent();</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">[/php]</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Schon ist das Problem mit dem zu weit nach oben und unten Scrollen gelöst.</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Zu Fehler 2:</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Bei zu wenig Text wird der Scrollbalken ausgeblendet. Trotzdem wird der Text beim Mausrad noch um eine Zeile gescrollt.</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Abhilfe:</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">[php]</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">name_des_textobjects.mouseWheelEnabled = false;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">[/php]</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Des Weiteren habe ich noch einen Fehler entdeckt aber der ist richtig ärgerlich;</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Zu Fehler 3:</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Beim betätigen des Mausrades wird nicht nur der Text gescrollt sondern auch die komplette Browser Seite (HTML) wenn diese größer ist oder jemand Symbolleisten im Browser installiert hat. Hierbei handelt es sich um einen Bug von AS3. In AS2 gab es dieses Problem nicht soweit wie ich das gelesen habe.</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Drei Abhilfen die meines Erachtens keine sind:</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Entweder keine Wheelfunktion im swfobject anbieten, die ganze Arbeit auf AS2 umschreiben oder auf eine JavaScript Steuerung ausweichen. Bei der Javascript Steuerung merke ich an, dass diese auch nur dann funktioniert wenn der User auch JavaScript (z. B. Activescripting) aktiviert hat und das swfobject ebenfalls über JavaSript angesteuert wird. Falls ich etwas Falsches geschrieben habe dann bitte ich um Korrektur, Danke. Nichts desto trotz, hier zwei Links über Flash, JavaScript und Mousewheel:</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Zur Codeoptimierung brauche ich aber noch mal Deine Hilfe.</span></span></p><p> <span style="font-family: 'Arial'"><span style="font-size: 12px">Ich habe den Code jetzt soweit am laufen, dass man mit Maustaste, Mausrad und Pfeiltasten der Tastatur inkl. Smooth Scrollen kann. Hierbei habe ich die function, in der der Smooth ausgeübt wird, nicht mehr mit KeyboardEvent oder MouseEvent deklariert sondern einfach nur mit (ev) :void. </span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Jetzt ist es so das nach dem Scrollen mit den Pfeiltasten das Scrollen mit dem Mausrad nicht funktioniert. Erst wenn ich einmal auf den Scrollbalken klicke funktioniert das Scrollen mit dem Mausrad wieder. Klicke ich anstatt auf den Scrollbalken auf das Textfeld, dann funktioniert das Scrollen mit den Pfeiltasten nicht mehr richtig. Da bei gedrückter Pfeiltaste (rauf/runter beides gleich) das Scrollen normalerweise durchgängig ist, bleibt der Text jedoch jetzt stehen bis ich loslasse. Hier hüpft der Text an die Stelle wo der Scrollbalken stehen blieb. Klicke ich jetzt auf den Scrollbalken funktioniert es wieder bestens. Ich hoffe Du hast mich ein wenig verstanden. Hier mal mein laienhafter Versuch der Codeoptimierung (schaue nicht auf die vielen geschwungenen Klammern, einige kommen noch weg):</span></span></p><p> <span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">[php]</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> var yOffset:Number;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> var yMin:Number = 0;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> var yMax:Number = info_textfenster.textbox.scrollbar_eins.scrollbalkenhintergrund_eins.height - info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.height;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> var scroll_freigabe:Number;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> // Textscroll mit Maustaste</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> // -----------------------------------</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.addEventListener(MouseEvent.MOUSE_DOWN, thumbDown);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> stage.addEventListener(MouseEvent.MOUSE_UP, thumbUp);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">function thumbDown(ev:MouseEvent):void</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">{</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">scroll_freigabe = 1;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">stage.addEventListener(MouseEvent.MOUSE_MOVE,scrolltext_smooth);</span></span></p><p> <span style="font-family: 'Arial'"><span style="font-size: 12px">yOffset = mouseY - info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">}</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> function thumbUp(ev:MouseEvent):void</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> stage.removeEventListener(MouseEvent.MOUSE_MOVE, scrolltext_smooth);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> // Textscroll mit Mausrad</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> // ----------------------</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> info_textfenster.textbox.foto_beschreibung.addEventListener(MouseEvent.MOUSE_OVER, addWheelF);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> info_textfenster.textbox.foto_beschreibung.addEventListener(MouseEvent.MOUSE_OUT, removeWheelF);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> function addWheelF(ev:MouseEvent)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> scroll_freigabe = 2;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> stage.addEventListener(MouseEvent.MOUSE_WHEEL, scrolltext_smooth);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> function removeWheelF(ev:MouseEvent):void //</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> stage.removeEventListener(MouseEvent.MOUSE_WHEEL, scrolltext_smooth);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> // Textscroll mit Keyboard (Pfeiltasten)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> // ----------------------------------------------</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyPressedF);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> function KeyPressedF(ev:KeyboardEvent):void //</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> scroll_freigabe = 3;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> scrolltext_smooth(ev); </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> // Textscroll & Smooth Funktion</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> // ----------------------------</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> function scrolltext_smooth(ev):void</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> if (scroll_freigabe === 1)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = mouseY - yOffset;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> if (scroll_freigabe === 2)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y - ev.delta;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> if (scroll_freigabe === 3)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> var Keystep:Number=0;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> switch (ev.keyCode)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> {</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> case Keyboard.UP :</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> Keystep=Keystep-3;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> trace(Keystep);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> break;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> </span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> case Keyboard.DOWN :</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> Keystep=Keystep+3;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> trace(Keystep);</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> break;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y+Keystep;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> if(info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y <= yMin)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = yMin;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> if(info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y >= yMax)</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = yMax;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> var sp:Number = info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y / yMax;</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> Tweener.addTween(info_textfenster.textbox.foto_beschreibung, {y:(-sp*(info_textfenster.textbox.foto_beschreibung.height - info_textfenster.masker2.height)), time:1, transition:"easeOutQuart"});</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> ev.updateAfterEvent();</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"> }</span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">[/php]</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Vielleicht findest Du ja den Fehler oder hast einen anderen Vorschlag parat.</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Wegen dem Vorschlag mit dem Array ein dickes Dankeschön aber das schaue ich mir mal morgen genauer an.</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">So jetzt wünsche ich Dir erst einmal ein schönes und erholsames Wochenende!!!</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Grüße,</span></span><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px"></span></span></p><p><span style="font-family: 'Arial'"><span style="font-size: 12px">Michael</span></span></p></blockquote><p></p>
[QUOTE="Indium1, post: 1744839, member: 189537"] [b]AW: Smoothing von Text (CS5 / AS3) / An ssandner[/b] [FONT=Arial][SIZE=3]Hallo Stephan, [/SIZE][/FONT][FONT=Arial][SIZE=3] hier ein wenig Stuff für Dich (und das an einem Freitag). ;) [/SIZE][/FONT][FONT=Arial][SIZE=3] Ich fange mal mit den zwei Fehlern an die ich letztens angedeutet habe;[/SIZE][/FONT] [FONT=Arial][SIZE=3]Fehler 1:[/SIZE][/FONT] [FONT=Arial][SIZE=3]Beim Scrollen mit dem Mausrad und den Pfeiltasten der Tastatur wurde zu weit nach oben und nach unten gescrollt. Zu sehen waren ungefähr 3 Zeilen ohne Text.[/SIZE][/FONT][FONT=Arial][SIZE=3] Abhilfe:[/SIZE][/FONT][FONT=Arial][SIZE=3] Verschiebung der AS3 Zeile mit dem event.delta; in die dritte Zeile der function mouseWheel. [/SIZE][/FONT][FONT=Arial][SIZE=3] [php] function mouseWheel(event:MouseEvent) { this.info_textfenster.scrollbar_eins.scrollbalken_eins.y=this.info_textfenster.scrollbar_eins.scrollbalken_eins.y - event.delta; if(this.info_textfenster.scrollbar_eins.scrollbalken_eins.y <= yMin) this.info_textfenster.scrollbar_eins.scrollbalken_eins.y = yMin; if(this.info_textfenster.scrollbar_eins.scrollbalken_eins.y >= yMax) this.info_textfenster.scrollbar_eins.scrollbalken_eins.y = yMax; var sp:Number = this.info_textfenster.scrollbar_eins.scrollbalken_eins.y / yMax; Tweener.addTween(this.info_textfenster.foto_beschreibung, {y:(-sp*(this.info_textfenster.foto_beschreibung.height-this.info_textfenster.masker.height)), time:0.5, transition:"easeOutQuart"}); event.updateAfterEvent(); } [/php][/SIZE][/FONT][FONT=Arial][SIZE=3] Gleiches gilt für die function KeyPressedF. Hier die Zeile 25 mit dem …scrollbalken_eins.y+Keystep; auf die Zeile 17 verschieben.[/SIZE][/FONT][FONT=Arial][SIZE=3] [php] function KeyPressedF(event:KeyboardEvent) { var Keystep:Number=0; switch (event.keyCode) { case Keyboard.UP : Keystep=Keystep-3; trace(Keystep); break; case Keyboard.DOWN : Keystep=Keystep+3; trace(Keystep); break; } this.info_textfenster.scrollbar_eins.scrollbalken_eins.y=this.info_textfenster.scrollbar_eins.scrollbalken_eins.y+Keystep; if (this.info_textfenster.scrollbar_eins.scrollbalken_eins.y<=yMin) { this.info_textfenster.scrollbar_eins.scrollbalken_eins.y=yMin; } if (this.info_textfenster.scrollbar_eins.scrollbalken_eins.y>=yMax) { this.info_textfenster.scrollbar_eins.scrollbalken_eins.y=yMax; } var sp:Number=this.info_textfenster.scrollbar_eins.scrollbalken_eins.y/yMax; Tweener.addTween(this.info_textfenster.foto_beschreibung, {y:(-sp*(this.info_textfenster.foto_beschreibung.height-this.info_textfenster.masker.height)), time:0.5, transition:"easeOutQuart"}); event.updateAfterEvent(); } [/php][/SIZE][/FONT][FONT=Arial][SIZE=3] Schon ist das Problem mit dem zu weit nach oben und unten Scrollen gelöst.[/SIZE][/FONT][FONT=Arial][SIZE=3] Zu Fehler 2:[/SIZE][/FONT][FONT=Arial][SIZE=3] Bei zu wenig Text wird der Scrollbalken ausgeblendet. Trotzdem wird der Text beim Mausrad noch um eine Zeile gescrollt.[/SIZE][/FONT][FONT=Arial][SIZE=3] Abhilfe:[/SIZE][/FONT][FONT=Arial][SIZE=3] [php] name_des_textobjects.mouseWheelEnabled = false; [/php][/SIZE][/FONT][FONT=Arial][SIZE=3] Des Weiteren habe ich noch einen Fehler entdeckt aber der ist richtig ärgerlich;[/SIZE][/FONT][FONT=Arial][SIZE=3] Zu Fehler 3:[/SIZE][/FONT][FONT=Arial][SIZE=3] Beim betätigen des Mausrades wird nicht nur der Text gescrollt sondern auch die komplette Browser Seite (HTML) wenn diese größer ist oder jemand Symbolleisten im Browser installiert hat. Hierbei handelt es sich um einen Bug von AS3. In AS2 gab es dieses Problem nicht soweit wie ich das gelesen habe.[/SIZE][/FONT][FONT=Arial][SIZE=3] Drei Abhilfen die meines Erachtens keine sind:[/SIZE][/FONT][FONT=Arial][SIZE=3] Entweder keine Wheelfunktion im swfobject anbieten, die ganze Arbeit auf AS2 umschreiben oder auf eine JavaScript Steuerung ausweichen. Bei der Javascript Steuerung merke ich an, dass diese auch nur dann funktioniert wenn der User auch JavaScript (z. B. Activescripting) aktiviert hat und das swfobject ebenfalls über JavaSript angesteuert wird. Falls ich etwas Falsches geschrieben habe dann bitte ich um Korrektur, Danke. Nichts desto trotz, hier zwei Links über Flash, JavaScript und Mousewheel:[/SIZE][/FONT][FONT=Arial][SIZE=3] [/SIZE][/FONT][FONT=Arial][SIZE=3] [/SIZE][/FONT][FONT=Arial][SIZE=3] Zur Codeoptimierung brauche ich aber noch mal Deine Hilfe.[/SIZE][/FONT] [FONT=Arial][SIZE=3]Ich habe den Code jetzt soweit am laufen, dass man mit Maustaste, Mausrad und Pfeiltasten der Tastatur inkl. Smooth Scrollen kann. Hierbei habe ich die function, in der der Smooth ausgeübt wird, nicht mehr mit KeyboardEvent oder MouseEvent deklariert sondern einfach nur mit (ev) :void. [/SIZE][/FONT][FONT=Arial][SIZE=3] Jetzt ist es so das nach dem Scrollen mit den Pfeiltasten das Scrollen mit dem Mausrad nicht funktioniert. Erst wenn ich einmal auf den Scrollbalken klicke funktioniert das Scrollen mit dem Mausrad wieder. Klicke ich anstatt auf den Scrollbalken auf das Textfeld, dann funktioniert das Scrollen mit den Pfeiltasten nicht mehr richtig. Da bei gedrückter Pfeiltaste (rauf/runter beides gleich) das Scrollen normalerweise durchgängig ist, bleibt der Text jedoch jetzt stehen bis ich loslasse. Hier hüpft der Text an die Stelle wo der Scrollbalken stehen blieb. Klicke ich jetzt auf den Scrollbalken funktioniert es wieder bestens. Ich hoffe Du hast mich ein wenig verstanden. Hier mal mein laienhafter Versuch der Codeoptimierung (schaue nicht auf die vielen geschwungenen Klammern, einige kommen noch weg):[/SIZE][/FONT] [FONT=Arial][SIZE=3] [php] var yOffset:Number; var yMin:Number = 0; var yMax:Number = info_textfenster.textbox.scrollbar_eins.scrollbalkenhintergrund_eins.height - info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.height; var scroll_freigabe:Number; // Textscroll mit Maustaste // ----------------------------------- info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.addEventListener(MouseEvent.MOUSE_DOWN, thumbDown); stage.addEventListener(MouseEvent.MOUSE_UP, thumbUp); function thumbDown(ev:MouseEvent):void { scroll_freigabe = 1; stage.addEventListener(MouseEvent.MOUSE_MOVE,scrolltext_smooth); yOffset = mouseY - info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y; } function thumbUp(ev:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_MOVE, scrolltext_smooth); } // Textscroll mit Mausrad // ---------------------- info_textfenster.textbox.foto_beschreibung.addEventListener(MouseEvent.MOUSE_OVER, addWheelF); info_textfenster.textbox.foto_beschreibung.addEventListener(MouseEvent.MOUSE_OUT, removeWheelF); function addWheelF(ev:MouseEvent) { scroll_freigabe = 2; stage.addEventListener(MouseEvent.MOUSE_WHEEL, scrolltext_smooth); } function removeWheelF(ev:MouseEvent):void // { stage.removeEventListener(MouseEvent.MOUSE_WHEEL, scrolltext_smooth); } // Textscroll mit Keyboard (Pfeiltasten) // ---------------------------------------------- stage.addEventListener(KeyboardEvent.KEY_DOWN, KeyPressedF); function KeyPressedF(ev:KeyboardEvent):void // { scroll_freigabe = 3; scrolltext_smooth(ev); } // Textscroll & Smooth Funktion // ---------------------------- function scrolltext_smooth(ev):void { if (scroll_freigabe === 1) { info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = mouseY - yOffset; } if (scroll_freigabe === 2) { info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y - ev.delta; } if (scroll_freigabe === 3) { var Keystep:Number=0; switch (ev.keyCode) { case Keyboard.UP : Keystep=Keystep-3; trace(Keystep); break; case Keyboard.DOWN : Keystep=Keystep+3; trace(Keystep); break; } info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y+Keystep; } if(info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y <= yMin) info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = yMin; if(info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y >= yMax) info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y = yMax; var sp:Number = info_textfenster.textbox.scrollbar_eins.scrollbalken_eins.y / yMax; Tweener.addTween(info_textfenster.textbox.foto_beschreibung, {y:(-sp*(info_textfenster.textbox.foto_beschreibung.height - info_textfenster.masker2.height)), time:1, transition:"easeOutQuart"}); ev.updateAfterEvent(); } [/php][/SIZE][/FONT][FONT=Arial][SIZE=3] Vielleicht findest Du ja den Fehler oder hast einen anderen Vorschlag parat.[/SIZE][/FONT][FONT=Arial][SIZE=3] Wegen dem Vorschlag mit dem Array ein dickes Dankeschön aber das schaue ich mir mal morgen genauer an.[/SIZE][/FONT][FONT=Arial][SIZE=3] So jetzt wünsche ich Dir erst einmal ein schönes und erholsames Wochenende!!![/SIZE][/FONT][FONT=Arial][SIZE=3] Grüße,[/SIZE][/FONT][FONT=Arial][SIZE=3] Michael[/SIZE][/FONT] [/QUOTE]
Bilder bitte
hier hochladen
und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Zitate einfügen…
Authentifizierung
Wenn ★ = 12, ◇ = 4 und die Hälfte von ★ zu ◇ addiert wird, was ist das Ergebnis?
Antworten
Start
Forum
Sonstiges
Webdesign, Webentwicklung & Programmierung
Webdesign: HTML/CSS, Responsive Design, Sass...
Smoothing von Text (CS5 / AS3) / An ssandner
Oben