Skocz do zawartości

Problem: Przewijanie we flashu


Rekomendowane odpowiedzi

Napisano

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ć? :)

  • Odpowiedzi 24
  • Created
  • Ostatniej odpowiedzi

Top Posters In This Topic

Top Posters In This Topic

Napisano (edytowane)

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
Napisano (edytowane)

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
Napisano

La R - jakieś okienko output mi się pokazuje, więc nie wiem, czarna magia :D

 

wysłałabym komuś ten plik .fla ale wstyd pokazywać, bo by się wystraszył jaki tam bałagan jest :D

Napisano

W tym "output" wyskakują Ci wszelkie ostrzeżenia błedy, a także "wnętrze" funkci trace czyli w tym przypadku powinno wyskoczyć "test" jeśli funkcje są wywoływane :).

Napisano (edytowane)

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
Napisano (edytowane)

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
Napisano (edytowane)

No to jest oczywiste, że w trakcie zmieniać nie będziesz :).

Rozumiem, że w zakładce "Properties" MovieClipu nazwa instancji jest taka sama jak w kodzie, czy tak?

Edytowane przez La R
Napisano

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 ;).

Napisano

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.

Napisano

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 :).

Napisano (edytowane)

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
Napisano

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
Napisano

aha łatwo mówić - wywal wyżej :D szybciej bym usunęła niż to zrobiła :D

Wielkie dzięki za pomoc, w ogóle za cierpliwość, bo nie każdy ją ma :D szczególnie ze mną haha :D

Napisano

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ł?

Napisano

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.

Napisano

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.

Napisano

dzięki wielkie za odpowiedzi. problem rozwiązany - okazało się że przyczyną braku polskich znaków była przeźroczystość we flashu. transparenta dodałam do flasha by było widać tło i to było tego przyczyną.

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