11 berichten aan het bekijken - 1 tot 11 (van in totaal 11)
  • Q:
    Bijdrager
    MacBeer

    Dynamische navigatie: tekst altijd op hele pixel forceren

    Ik wil een kleine re-design doen van mijn eigen website welke is gemaakt in Flash. Belangrijk element hierin is het gebruik van een pixelfont.
    Nu ben ik op de hoogte van alle truucjes om dit font scherp te krijgen. Echter, in mijn geval heb ik te maken met een glijdende navigatie. Op het ene moment is het font scherp en op het andere moment niet.

    Is er een manier om ervoor te zorgen dat een tekst altijd op een hele pixel staat wanneer het menu op zijn goede plek staat?

    De tekst en de clips waarin het menu is genest staan allemaal keurig op de hele pixel.

    Bijdrager
    MauZ

    volgens mij kan je de geselcteerde text de anti-aliasing uitzetten, dan moet je wel pixels krijgen

    Bijdrager
    MacBeer

    Helaas, die optie onder ‘view’ heeft alleen effect op het werken in de stage. Het heeft géén effect op de gepubliseerde file.

    Bijdrager
    freshface

    Math.round(); rond de code zetten die de _y positie van ieder element controleerd.

    Bijdrager
    MacBeer

    Alleen rond de _Y? Niet ook rond de _X?

    Bijdrager
    freshface

    Ook rond de _x.

    Bijdrager
    MacBeer

    Oke… mijn actionscript-kennis reikt niet zover dat ik dit alleen kan toepassen. Hoe verwerk ik de math-functie in deze code?

    [code:1:856616334f]onClipEvent (enterFrame) {
    _x = _parent.scaler._x+_parent.scaler._xscale/-2;
    _y = _parent.scaler._y-_parent.scaler._yscale/2;
    }[/code:1:856616334f]

    Bijdrager
    freshface

    onClipEvent (enterFrame) {
    _x = Math.round(_parent.scaler._x+_parent.scaler._xscale/-2);
    _y = Math.round(_parent.scaler._y-_parent.scaler._yscale/2);
    }

    Bijdrager
    MacBeer

    Kijk eens aan, dit werkt perfect op het menu. Nu wil ik deze code ook op de holder-movie toegepast hebben waar mijn movies in verschijnen.

    [code:1:59196599b5]}
    onClipEvent (enterFrame) {
    _xscale += (target_xscale-_xscale)/easeSpeed;
    _yscale += (target_yscale-_yscale)/easeSpeed;
    // trace(this._width + " – " + this._height);
    //
    _root.holder._x = this._x-(this._width/2);
    _root.holder._y = this._y-(this._height/2);
    //
    if (_root.holder._alpha<100) {
    _root.holder._alpha += 5;
    }[/code:1:59196599b5]

    Ik neem aan dat de Math.round() toegepast moet worden op dit gedeelte van de code:

    [code:1:59196599b5] //
    _root.holder._x = this._x-(this._width/2);
    _root.holder._y = this._y-(this._height/2);
    // [/code:1:59196599b5]

    Wanneer ik dit doe krijg ik verschillende resultaten varierend van een wegvliegend menu bij het inladen tot en niet glijden van de holder-movie. Waar plaats ik de math-code precies?

    Bijdrager
    freshface

    Hier rond normaal:

    [code:1:ca1cab264d]
    _root.holder._x = Math.round(this._x-(this._width/2));
    _root.holder._y = Math.round(this._y-(this._height/2));
    [/code:1:ca1cab264d]

    Mocht dat niet werken probeer dan dit eens:

    [code:1:ca1cab264d]
    _root.holder._x = Mat.round(_root.holder._x);
    _root.holder._y = Mat.round(_root.holder._y);
    //
    _root.holder._x = this._x-(this._width/2);
    _root.holder._y = this._y-(this._height/2);
    [/code:1:ca1cab264d]

    Bijdrager
    MacBeer

    Dank je Konijn, de eerste code werkte. Ik dacht dat ik die optie al eens geprobeerd had, maar bij mij schoot meteen het menu buiten beeld. Ik zal nog even goed naar het verschil tussen jouw en mijn code kijken.

    Nogmaals (alweer) vriendelijk bedankt.

11 berichten aan het bekijken - 1 tot 11 (van in totaal 11)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.