Skocz do zawartości

Problem: Przewijanie we flashu


secret

Rekomendowane odpowiedzi

Witam!

Zaczynam uczyć się flasha. Zrobiłam pierwszą stronę: http://www.unk.pl/szklarska i chcę żeby w dziale "galeria" po lewej stronie tam gdzie miniaturki - był pasek przewijania w dół i w górę lub po prostu strzałeczki, na które jak się kliknie to przewija się galeria. Obejrzałam tutorial, zrobiłam dokładnie tak jak na tutorialu, lecz u mnie nie działa. Nie wiem co robię nie tak. Tu jest screen z programu: http://www.unk.pl/flash.jpg - narobiłam tych miniaturek by zobaczyć efekt przewijania, a kod as2 to:

 

przewijanie_gora.onRelease = function () {
   miniaturki.y -= 10;
}
przewijanie_dol.onRelease = function () {
   miniaturki.y += 10;
}

Może coś w kodzie źle wpisałam, wartości itp. Przyciski mam dobrze nazwane, więc nie wiem czemu nie działa. Mógłby ktoś doradzić? :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Odpowiedzi 24
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

to może miniaturki nie są w tym samym obiekcie/scenie co przewijanie_gora/dol ?

Jeśli nie są należy podać cały adres obiektu.

np. jeśli miniaturki są zagnieżdżone w jakimś mc to

 

_root.instancenameMC.miniaturki._y +=10;

EDIT:

spojrzałem teraz na screen, może posprawdzaj czy nazwy obiektów są takie samy w poszczególnych kluczowych klatkach.

Edytowane przez zgred
Odnośnik do komentarza
Udostępnij na innych stronach

tzn to wszystko jest w movie clipie o nazwie "galeria podklad movie", to znaczy że mam wpisać coś takiego?:

 

przewijanie_gora.onRelease = function () {

_root.galeria podklad movieMC.miniaturki._y -=10;

}

przewijanie_dol.onRelease = function () {

_root.galeria podklad movieMC.miniaturki._y +=10;

}

 

chyba źle wpisałam bo nie działa.

 

edit: chyba tak, ale nie jestem pewna, sprawdzam i mi się zdaje że wszystko ok wpisałam, chociaż mogę się mylić bo jestem nowa we flashu i na pewno gdzieś zrobiłam błąd, tylko gdzie :/

Edytowane przez secret
Odnośnik do komentarza
Udostępnij na innych stronach

W takim razie wszystko powinno grać. Sprawdź dokładnie te nazwy i ścieżki jak Ci kolega wyżej napisał i jeszcze jedno: staraj się unikać nazewnictwa ze spacjami - być może to jest teraz problemem.

 

Ps. Skoro jesteś nowa we flaszce to polecam zacząć od razu od action script 3 i zostawić dwójkę już w spokoju :).

Edytowane przez La R
Odnośnik do komentarza
Udostępnij na innych stronach

zmieniłam na kod bez spacji:

 

przewijanie_gora.onRelease = function () {

_root.galeria_podklad_movieMC.miniaturki._y -=10;

}

przewijanie_dol.onRelease = function () {

_root.galeria_podklad_movieMC.miniaturki._y +=10;

}

 

ale nadal nie działa.

 

edit: no chciałam w as3 napisać, ale tak to jest w necie: część tutoriali i kodów piszą w as2 a część w as3 i jak teraz zmienię na as3 to mi się strona sypie.

 

to może ktoś chciałby mi to poprawić? zapłacę :)

Edytowane przez secret
Odnośnik do komentarza
Udostępnij na innych stronach

No dobra to już wiem co jest, a raczej czego brak :).

Po pierwsze MovieClip "galeria_podklad_movieMC" nie ma nazwy w polu Instance Name - wymagane jest do tego aby można się było ze skryptu odwołać bez tego ani rusz ( w panelu properties znajdziesz ).

 

Po drugie odwołujesz się w funkcji do obiektu "miniaturki", który nie istnieje. Każdą miniaturkę masz oddzielnie. Wrzuć miniaturki do jednego MovieClipu i w Instance Name wpisz tą nazwę "miniaturki".

Pamietaj że nazwa MovieClipu to nie jest to samo co nazwa instancji tegoż klipu w skrypcie:).

 

Ach i po trzecie przycisk odpowiadający za odtwarzanie muzyki jest nonstop aktywny - sprawdź skutek kilku naciśnięć - to tak niechcący ;).

Odnośnik do komentarza
Udostępnij na innych stronach

o zobacz, działa :D wielkie dzięki :) a jak zrobić żeby nie klikać cały czas na te strzałki, tylko żeby przetrzymać i przewijało?

co do dźwięku to wiem o tym, ale nie wiedziałam jak inaczej zrobić by ciągle muzyka leciała i jednocześnie zrobić przycisk stop i play.

Odnośnik do komentarza
Udostępnij na innych stronach

AS2 tylko liznąłem więc nie chciałbym namieszać, ale wyglądało by to mniej więcej tak:

obiekt.onMouseDown ( lub onPress ) = jakaś funkcja powtarzająca inną funkcję ( na przykład setInterval może być )

a potem

obiekt.onMouseUp ( lub onRelease ) = funkcja zatrzymująca licznik ( wobec powyższego clearInterval ).

Co do dźwięku to zwyczajnie start na początku i nieaktywny przycisk play, a po naciśnięciu stop jego aktywacja :).

Odnośnik do komentarza
Udostępnij na innych stronach

aha, może kiedyś, wolę nie mieszać bo i tak tego nie zrobię :D co do dźwięku to też namieszam w kodzie, dziś ciężko mi idzie myślenie :D po wstawieniu miniaturek do movie clipa nie dziala mi galeria, nie zmienia zdjęć, może wiesz czemu? pewnie trzeba kod zmienić, ale dokładnie nie wiem jaki wpisać, bo tu ważne są te kropki, cudzysłowia itp. mam taki:

 

this.onRelease = function () {

_parent.gotoAndStop("foto1");

}

 

edit: uff działa, dałam kod:

 

this.onRelease = function () {

_root.galeria_podklad_movie.gotoAndStop("foto2");

}

 

rany ale trzeba tu główkować :D

Edytowane przez secret
Odnośnik do komentarza
Udostępnij na innych stronach

Mogłaś też z powodzeniem wpisać _parent._parent.gotoAndStop() - miniaturki zeszły poziom niżej. A najlepiej jakbyś w ogóle wywaliła skrypt piętro wyżej - większa kontrola potem i bez pisania taaaakich długich sieżek :).

  • Confused 1
Odnośnik do komentarza
Udostępnij na innych stronach

Chyba nie będę zakładać nowego tematu :)

Mam jeszcze pytania:

 

1. Jak zrobić by te przewijanie było automatyczne (bez klikania) po najechaniu kursorem?

 

2. http://www.unk.pl/szklarska w zakładce kontakt, nie wpisuje polskich znaków. Przeszukałam wiele tematów o tym w internecie, próbowałam różnych sposobów i żaden nie działa. Ktoś ma jakiś pomysł?

Odnośnik do komentarza
Udostępnij na innych stronach

1. Może to niezbyt ogarnięte rozwiązanie, ale o tej porze nic rozsądnego nie przychodzi mi do głowy. Suwaki które byłyby odpowiedzialne za przewijanie niech będą MovieClip'ami, tam na początku w nich daj stop a później jakaś pętle wraz z akcja na przesuwanie tego co chcesz przewijać. Po najechaniu na MovieClip odpowiedzialny za przewijanie będzie odsyłać do pętli. Po zjechaniu z MovieClipa do klatki Stop. Mam nadzieję, że jasno opisałem. Jak nie, to może zrobię przykładowy fla.

2. Tam gdzie masz wybór czcionki itp. powinna być taka ikonka jak embed. Tam wystarczy wpisać wszystkie polskie znaki.

Odnośnik do komentarza
Udostępnij na innych stronach

Z tymi ogonkami to zawsze są jakieś problemy i generalnie trzeba się trzymać przy flaszce ze wszystkim innym w utf8. Prawdopodobnie później przy odczycie jest problem i trzeba by tuż przed wysłaniem zwartość maila przekonwertować do latin2.

Co do przewijania to myślę, że całkiem dobrze sprawdziło by się coś takiego:

var zmienna_przerwania:Number;
przewijanie_gora.onPress = function ()
{
zmienna_przerwania = setInterval(funkc,100);
function funkc()
{
	miniaturki._y -=2;
}
przewijanie_gora.onRelease = function ()
{
	clearInterval(zmienna_przerwania);
}
}

dla dolnego będzie tak samo. setInterval wywołuje daną funkcję ( func ) co określony czas - w tym przypadku co 0.1s.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się



×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Wykorzystujemy cookies. Przeczytaj więcej Polityka prywatności