A számítógép dokumentációja A-tól Z-ig

Hozzon létre egy görgetősáv Flash MX

Ebben a leírásban megmutatom, hogyan lehet létrehozni egy görgetősáv Flash MX. Ez hasonló az egyik, hogy jön a Flash MX, de úgy döntöttem, hogy hozzon létre a saját verzióját. Úgy érzem, sokkal magabiztosabb, ha dolgozik a kódokat, de nem valaki mással. A zenekar által alapított velem, nem lehet automatikusan határozza meg a magasságot. De ez sokkal rugalmasabb, és egy kisebb fájlméret mellett.

Szövegdoboz és a görgetősáv

Hozzon létre egy új fájlt.

A gyökere a jelenet 1, adjunk hozzá két rétegben. Név fedőréteg „funkciók” (funkció), a következő - „akciók” (akció). Egy kicsit később fogjuk hozzáadni a kódot.

Az alsó réteget hozzon létre egy dinamikus szövegmezőbe. Válassza ki a kívánt betűtípust és színt. Kívánatos, hogy azonnal látható 5-6 öltés. A mi példánkban úgy tűnik, nem több, mint 6 sor. Ügyeljen arra, hogy a paramétereket a szöveg „többsoros” (multi) kiválasztva, és a „választható” (elosztása) - nincs. Adjon egy nevet a szövegmezőbe, például: „w_field”.

Kattintson a „Character”. (Szöveg), és válassza ki a kívánt karakterkészlet.
A fő videó, jelölje ki a mezőbe, és átalakítani, hogy egy szimbólum (nyomja meg az F8).

Válassza ki a klip, így a szimbólum neve „main_mc” tétel (például) - a név a „fő”.

Most megy a „main_mc”, és nevezze réteg egy szöveges mező „text”.
Most adjunk hozzá egy pár réteg alulról felfelé: „címkék” (címkék), „akciók” (intézkedések), a „funkciók” (funkció), „scroll hüvelykujj” (scroll gomb), „gördítőgombokat” ( „up” gomb és a „le ") és a" scroll track „(scroll bar).

Ha ehhez hozzátesszük a menetrend, akkor tegye a megfelelő rétegeket. Ha azt szeretnénk, hogy adjunk több grafikai elemek, adjuk hozzá a megfelelő rétegeket.

Most adjuk hozzá a két keret minden videoréteget. Név Az első képkocka
"No_scroll", a második - "scroll_loop". Tegyen be egy keyframe a második helyen a rétegek „scroll hüvelykujj”, „gördítőgombokat” és „scroll track”.

Most a görgetősáv. Menj a második keret réteg „scroll track”.
Rajzolj egy téglalapot a kívánt szélességű, és biztos, hogy az ő magassága nem haladja meg a méret a dinamikus szövegmezőbe. Állítsa be az összehangolás jobbra. Átalakítás videóklipet szimbólum és rendelje hozzá a nevét „scroll_track”.

Most pedig néhány kódot hozzá. A réteg „intézkedések” az első frame betét

A második keret ( „scroll_loop”) paszta

Vissza fogunk térni erre a kódot.

Az utolsó képkocka betét

Most menj vissza a gyökér könyvtárba és add a kód:

funkció showText (üzenet) main.w_field.text = üzenetet;
ha (main.w_field.maxscroll> main.w_field.scroll) main.gotoAndPlay ( "scroll_loop");
>
>

A réteg „akciók”, adjunk hozzá:

my_text = „több szöveges, különben ez lesz látható scrollbars”;
showText (my_text);
stop ();

Mindent megteszünk annak érdekében, hogy a görgetősáv csak akkor jelenik meg a szöveg több sort is jeleníthető meg.

Gombok „felfelé” és „lefelé”

Tovább a fő klip.

Én alapjául használjuk a nyíl egy sor előre elkészített komponenseket. Hozhat létre saját gombokat. Az egyetlen dolog, amit meg kell azonos szélességű a görgetősáv. Tedd a görgetősáv, és igazítsa a felső és alsó. Elemek, így a nevek „up_arrow” (nyíl „up”) és a „DOWN_ARROW” (lefelé mutató nyíl).

Most fogunk hozzá olyan funkció, ami hajt végre a szöveget a megfelelő irányban a gomb megnyomásakor:

működnek scrollIt () w_field.scroll + = nyomva;
>
funkció stopScroll () still_pressed = false;
nyomva = false;
>
függvényvisszahívást () ha (préselt) still_pressed = true;
> Else still_pressed = false;
>
clearInterval (checkIfPressed);
>
up_arrow.onPress = függvény () nyomva = -1;
ha (w_field.scroll> 1) scrollIt ();
>
checkIfPressed = setInterval (visszahívás, 500);
>
down_arrow.onPress = függvény () nyomva = 1;
if (w_field.scroll >
checkIfPressed = setInterval (visszahívás, 500);
>
up_arrow.onRelease = down_arrow.onRelease = up_arrow.onReleaseOutside = down_array.onReleaseOutside = stopScroll;

Győződjön meg arról, hogy a szöveg mozog, ha megnyomja a gombot. Az biztos, hogy hozzá ezt a kódot, hogy a második keret a játék () művelet:

ha (still_pressed) scrollIt ();

Folytassa a következő lépéssel.

Rajzolj egy téglalapot vagy egy négyzet, és átalakítani, hogy egy gombot. Gombra kell azonos szélességű a görgetősáv. Adja meg a nevét, a gomb „thumb_btn”, és nyomja meg az F8. Ennek eredményeként, a klip jelenik meg egy gombot. Rendeljen hozzá egy nevet „scroll_thumb”. Győződjön meg róla, hogy ez csak a második és harmadik keretek, valamint a nyilak és csíkok. Tegyük közvetlenül az „Up” gombot a görgetősáv - ez a kiinduló helyzetbe.

Hogy gomb lehetett húzni és mozgatni a szöveget ennek megfelelően fogunk hozzá a keretben „funkciók” az alábbi kódot:

scroll_thumb.initiate = függvény () this.initiated = true;
this.min_y = this._y;
this.max_y = this.min_y + (scroll_track._height - up_arrow._height - this._height / 2) + 1;
this.total_travel = Math.abs (this.max_y - this.min_y);
this.inc = Math.floor (this.total_travel / w_field.maxscroll);
>
scroll_thumb.drag = függvény () this.startDrag (hamis, this._x, this.min_y, this._x, this.max_y);
if (this.org_y!) this.org_y = this._y;
>
húzás = true;
this.onEnterFrame = whileDragging;
>
scroll_thumb.thumb_btn.onPress = függvény () scroll_thumb.drag ();
>
scroll_thumb.thumb_btn.onRelease = függvény () húzás = false;
nyomva = false;
still_pressed = false;
scroll_thumb.stopDrag ();
scroll_thumb.onEnterFrame = null;
>
scroll_thumb.checkPos = function (), ha (this._y> this.max_y) this._y = this.max_y;
> Else if (this._y >
>
funkció whileDragging () ha (húzás) var mozgott = this._y - this.org_y;
ha (Math.abs (áthelyezve)> = this.inc) amennyiben (áthelyezve> 0) nyomva = 1;
> Else nyomva = -1;
>
this.org_y = this._y;
scrollIt ();
if (Math.abs (this._y - this.max_y) <1) w_field.scroll = w_field.maxscroll;
> Else if (Math.abs (this._y - this.min_y) <1) w_field.scroll = 1;
>
> Else nyomva = 0;
>
>
>

Mi kiegészítik a görgető funkció scrollIt az alábbi kódot, amelyet meg kell elhelyezni közvetlenül a vonal „w_field.scroll + = lenyomva”:

if (! húzás) if (w_field.scroll <= 1) scroll_thumb._y = scroll_thumb.min_y;
> Else if (w_field.scroll> = w_field.maxscroll) scroll_thumb._y = scroll_thumb.max_y;
> Else scroll_thumb._y + = scroll_thumb.inc * préselt;
scroll_thumb.checkPos ();
>
>

És végül, annak érdekében, hogy kezdeményezi a léptető gombot, és optimalizálja görgetés, add meg a kódot a második keret több mint a sorban a „play () akció”:

if (! scroll_thumb.initiated) scroll_thumb.initiate ();
>
if (Math.abs (scroll_thumb._y - scroll_thumb.max_y) <1) w_field.scroll = w_field.maxscroll;
> Else if (Math.abs (scroll_thumb._y - scroll_thumb.min_y) <1) w_field.scroll = 1;
>

Tudom, hogy fáradt a végtelen kódot. De a medve velem - közel a vég. Továbbra is csak azért, hogy a tekercset lehet aktiválni kattintva a szalag.

Véglegesítése görgetősávon

Valójában, a görgetősáv már ott van - „scroll_track”. Továbbra is csak a hozzá a következő kódot:

scroll_track.useHandCursor = false;
scroll_track.onPress = függvény () rec_y = _root._ymouse - this._parent._y;
ha (rec_y> scroll_thumb._y) nyomva = 5;
> Else nyomva = -5;
>
scrollIt ();
checkIfPressed = setInterval (visszahívás, 500);
>
scroll_track.onRelease = scroll_track.onReleaseOutside = stopScroll;

Felhívjuk figyelmét, hogy az értéke „5” a kódot - eggyel kevesebb, mint a maximális sorok száma megjelenítendő szöveget egy időben. Ha 20 sor kerül a szövegmezőbe, majd helyettesítse be a kódot értékek 19 és -19.

Alább ismét idézni a kódokhoz.

felső szint
Frame 1 "funkciók".

// megjeleníti a szöveget a mezőbe. Meghatározta szükség görgetés, vagy sem.
funkció showText (üzenet) main.w_field.text = üzenetet;
ha (main.w_field.maxscroll> main.w_field.scroll) main.gotoAndPlay ( "scroll_loop");
>
>

Frame 1 "műveleteket".

// Ez a változó lehet változtatni, ahogy kell.
my_text = „, helyezze el a szöveget ide szöveg kell sok - vagy görgetősáv nem folytat”;
showText (my_text);
stop ();

A fő klip ( „fő”)
Frame 1 funkciókat.

// görgetni a szöveget felfelé vagy lefelé.
működnek scrollIt () w_field.scroll + = nyomva;
// ellenőrizzük, hogy a gomb továbbra is szerepel a csík
if (! húzás) if (w_field.scroll <= 1) scroll_thumb._y = scroll_thumb.min_y;
> Else if (w_field.scroll> = w_field.maxscroll) scroll_thumb._y = scroll_thumb.max_y;
> Else scroll_thumb._y + = scroll_thumb.inc * préselt;
scroll_thumb.checkPos ();
>
>
>
// hívják, ha megnyomja a stop
funkció stopScroll () still_pressed = false;
nyomva = false;
>
// ellenőrizze, hogy ha megnyomja a gombot fél másodpercig
függvényvisszahívást () ha (préselt) still_pressed = true;
> Else still_pressed = false;
>
clearInterval (checkIfPressed);
>
// funkció fel és le nyilak
up_arrow.onPress = függvény () nyomva = -1;
ha (w_field.scroll> 1) scrollIt ();
>
checkIfPressed = setInterval (visszahívás, 500);
>
down_arrow.onPress = függvény () nyomva = 1;
if (w_field.scroll >
checkIfPressed = setInterval (visszahívás, 500);
>
up_arrow.onRelease = down_arrow.onRelease = up_arrow.onReleaseOutside = down_array.onReleaseOutside = stopScroll;
// inicializálja a scroll gomb segítségével változók
scroll_thumb.initiate = függvény () this.initiated = true;
this.min_y = this._y;
this.max_y = this.min_y + (scroll_track._height - up_arrow._height - this._height) + 1;
this.total_travel = Math.abs (this.max_y - this.min_y);
this.inc = Math.floor (this.total_travel / w_field.maxscroll);
>
// funkcióját húzza a léptető gombot
scroll_thumb.drag = függvény () this.startDrag (hamis, this._x, this.min_y, this._x, this.max_y);
if (this.org_y!) this.org_y = this._y;
>
húzás = true;
this.onEnterFrame = whileDragging;
>
// görgetés funkció gomb megnyomásával:
scroll_thumb.thumb_btn.onPress = függvény () scroll_thumb.drag ();
>
scroll_thumb.thumb_btn.onRelease = függvény () húzás = false;
nyomva = false;
still_pressed = false;
scroll_thumb.stopDrag ();
scroll_thumb.onEnterFrame = null;
>
// ellenőrzi, hogy a gomb nem a tartományon kívül
scroll_thumb.checkPos = function (), ha (this._y> this.max_y) this._y = this.max_y;
> Else if (this._y >
>
// enterFrame funkció görgetés gombok
funkció whileDragging () ha (húzás) var mozgott = this._y - this.org_y;
ha (Math.abs (áthelyezve)> = this.inc) amennyiben (áthelyezve> 0) nyomva = 1;
> Else nyomva = -1;
>
this.org_y = this._y;
scrollIt ();
// ellenőrizzük, hogy a rendelkezések szövegét és a gombok
if (Math.abs (this._y - this.max_y) <1) w_field.scroll = w_field.maxscroll;
> Else if (Math.abs (this._y - this.min_y) <1) w_field.scroll = 1;
>
> Else nyomva = 0;
>
>
>
// settings és a görgetősáv funkció
scroll_track.useHandCursor = false;
scroll_track.onPress = függvény () rec_y = _root._ymouse - this._parent._y;
ha (rec_y> scroll_thumb._y) nyomva = 5;
> Else nyomva = -5;
>
scrollIt ();
checkIfPressed = setInterval (visszahívás, 500);
>
scroll_track.onRelease = scroll_track.onReleaseOutside = stopScroll;

Frame 1 "akciók":

2 keret „akciók”:

if (! scroll_thumb.initiated) scroll_thumb.initiate ();
>
// továbbra görgetni a szöveget, amikor a gomb megnyomásakor
ha (still_pressed) scrollIt ();
>
// optimalizálja a léptető gombot
if (Math.abs (scroll_thumb._y - scroll_thumb.max_y) <1) w_field.scroll = w_field.maxscroll;
> Else if (Math.abs (scroll_thumb._y - scroll_thumb.min_y) <1) w_field.scroll = 1;
>
play ();

3 keret „akciók”:

Kapcsolódó cikkek