Tło obrazkowe |
Autor |
Wiadomość |
krzywy105
Doradca
Pomógł: 1 raz Dołączył: 09 Kwi 2011 Posty: 68 Skąd: Małopolska
|
Wysłany: Czw 12 Sty, 2012 15:44 Tło obrazkowe
|
|
|
Witam.
W jaki sposób mogę za pomocą skryptu ustawić tło obrazkowe (png) dla obiektu który ma być przyciskiem?
Zastosowanie loadMovie dla przycisku który jest przekonwertowany do movieclipa powoduje że nie działa akcja onPress. |
|
|
|
|
espe1
Profesjonalista
Pomógł: 16 razy Dołączył: 02 Lis 2011 Posty: 175 Skąd: łódzkie
|
Wysłany: Czw 12 Sty, 2012 19:28
|
|
|
Działa, tylko coś poknociłeś.
Masz jakiś kształt (obiekt)
Wypełnienie obiektu - są 4 rodzaje:
- None (brak)
- Solid (jeden kolor)
- Gradient
- Image (zdjęcie png, jpg, gif, bmp, dib)
zaznaczasz Image i z boku otwierasz pomarańczową ikonę Open Image - wskazujesz plik na dysku |
|
|
|
|
krzywy105
Doradca
Pomógł: 1 raz Dołączył: 09 Kwi 2011 Posty: 68 Skąd: Małopolska
|
Wysłany: Czw 12 Sty, 2012 20:33
|
|
|
Tak tylko tu chodziło o ustawienie tego za pomocą skryptu. Ale mniejsza z tym przeniosłem akcje onPress z przycisku do klipu do którego ładuje też obraz i wygląda że działa.
Mam natomiast inny problem. Struktura projektu jest taka że. Jest scena1 która zawiera klip map_klip który to następnie zawiera klip przycisk
Następnie dynamicznie tworze z poziomu sceny1 klipy dynamiczne będące kopią klipu przycisk.
Kod: | for (i=1; i <= ilosc_ikon; i++) {
map_klip.przycisk.duplicateMovieClip("Ikona"+i, map_klip.getNextHighestDepth());
map_klip["Ikona"+i]._x = this["x_ikona"+i];
map_klip["Ikona"+i]._y = this["y_ikona"+i];
map_klip["Ikona"+i].przycisk.loadMovie("http://localhost/~MP/"+this["ikona"+i]);
}
|
Pod tymi tworzonymi dynamicznie przyciskami mam akcje onPress {trace(this._name)}
I niestety okazuje się że kazdy tak tworzony przycisk ma nazwę map_klip (widać to po kliknięciu)a nie tak jak bym się spodziewał Ikona+numer.
Jest w stanie ktoś coś tu poradzić? Czy można używać duplicateMovieClip z poziomu sceny do klipów głębiej zagnieżdżonych(w sensie klip w klipie)? Bo mam wrazenie że tu może byc problem. Wcześniej miałem tą pętle tworzącą przycisku w map_klip i wtedy prawidłowo wyświetlało nazwy niestety musiałem ją przenieść z pewnych powodów do sceny głównej. Wiem że chyba troche namieszałem ale naprawdę potrzebuje pomocy w tej sprawie.
[ Dodano: Pią 13 Sty, 2012 20:01 ]
Dobra dodałem pod spodem dodatkowy klip do którego wczytywany jest obrazek a na nim przeźroczysty przycisk który reaguje na klik.
Inna kwestia. W scenie1 mam mape na której właśnie pojawiają się te przyciski. Po kliku chciałbym aby pojawiał się panel z tekstem, zdjęciami itp natomiast mapa przyciemniała się jak w lightboxie. Myślałem że wystarczy te zdjęcia, teksty umieścić w scenie2 a scene1 ustawić jako tło. Ale w takim przypadku animacja nie zatrzymuje się w scenie1 tylko odrazu przechodzi do sceny2.
W jaki sposób zrobić aby przejsice do sceny2 było dopiero po kliku a scena1 była tłem dla sceny2? |
|
|
|
|
^Januszr
Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
Wysłany: Sob 14 Sty, 2012 12:46
|
|
|
A jakbyś ładował SWF poprzez loadMovie czyli png z akcją przycisku i wykorzystał LocalConnection? |
_________________ Niestety używam nieoficjalnych wersji Swish, które można zassać z forums.swishzone.com - jest na szczycie listy w BugsForum.
|
|
|
|
|
krzywy105
Doradca
Pomógł: 1 raz Dołączył: 09 Kwi 2011 Posty: 68 Skąd: Małopolska
|
Wysłany: Sob 14 Sty, 2012 14:32
|
|
|
Czyli zamiast umieszczać treści w scenie2 stworzyć oddzielnego swf tak?
I ładować go po kliknięciu na ikone na środek sceny? Z sceny1 musi być do niego przekazane w sumie tylko ID ikony w którą kliknięto aby można było załadować odpowiednie dane typu opis, zdjęcia itp? Czy ten załadowany swf może wykonywać wszytko to co zwykły flash czyli chodzi mi głównie o pobranie zmiennych z php czy załadowanie zdjęć? Czy zmienne które są w scenie głównej będą również widoczne w ładowanym swf czy też właśnie do przekazania ich (czyli głównie ID ikony) służy właśnie localconnection?
Sory za tak dużo pytań ale chciałbym rozwiać wątpliwości które mam aby się potem nie okazało że jednak tak się nie da. |
|
|
|
|
^Januszr
Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
|
|
|
|
krzywy105
Doradca
Pomógł: 1 raz Dołączył: 09 Kwi 2011 Posty: 68 Skąd: Małopolska
|
Wysłany: Sob 14 Sty, 2012 18:47
|
|
|
No tam sprawa była dziwna bo przyciski są tworzone dynamicznie i po wczytaniu png do takiego dynamicznego przycisku nie wykonywał się kod w nim zawarty tak jak myślałem. Tworzone były w pętli i nazwy się zmieniały przy każdym przebiegu petli (Ikona1,Ikona2, itd). Przycisk ktury był dynamicznie powielany miał kod onPress {trace(_this.name)}. To poto aby sprawdzić czy będzie można rozróżnić potem przyciski po nazwie. Niestety nie działa to tak jak chce.
Ale mam inne pytanie jak zrobić aby klik przycisku powodował załadowanie do kontenera pliku swf i wysłanie do niego zmiennej. Wiem jak załadować natomiast nie wiem jak wysłać i odebrać potem zmienną. Mógłbyś podać jakiś prosty przykład?
[ Dodano: Sob 14 Sty, 2012 21:26 ]
W jednym z linków które podałeś ktoś pisze że do komunikacji między swf ładowanymi do jednego swf służą zmienne globalne ale u mnie nie widzi tych zmiennych w swf który jest wczytywany do głównego.
Dobra okazało się że aby zmienne globalne były widoczne to obydwa pliki muszą być w tym samym katalogu.
[ Dodano: Nie 15 Sty, 2012 19:25 ]
No to inna sprawa.
Jak zrobić aby po naciśnięciu odpowiedniego przycisku klipy wjeżdżały i wyjeżdżały na scenę?
Mam przykładowo 4 przyciski. Naciśnięcie pierwszego powoduje wjechanie klipu1; drugiego wyjechanie aktualnego i wjechanie klipu2. Chodzi mi o to że gdy naciskamy przycisk nie wiemy który klip jest na scenie wiec jak mamy określić który ma wyjechać? Chcę po prostu aby naciśnięcie przycisku powodowało wyjechanie klipu ze sceny niezależnie który to jest dokładnie klip i wjechanie odpowiedniego. Jak to uzyskać (już pomijam wstawianie efektu ruch bo to jest oczywiste).
[ Dodano: Pon 16 Sty, 2012 13:07 ]
Trochę pisze sam ze sobą ale..
Jak zrobić preloader do łądowanego jpg?
Mam taki kod który w 13 klatce ładuje jpg do klipu:
Kod: |
onFrame (13) {
map_klip.mapa.loadMovie("http\\localhost\obraz.jpg");
} |
[/code] |
|
|
|
|
^Januszr
Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
Wysłany: Pon 16 Sty, 2012 19:12
|
|
|
Pisanie do samego siebie ma tę zaletę, że na pewno wymieniasz posty z osobą równie inteligentną ;P
Ładowanie zewnętrznych plików z preloaderem:
http://blog.swishzone.com/?p=3426 |
_________________ Niestety używam nieoficjalnych wersji Swish, które można zassać z forums.swishzone.com - jest na szczycie listy w BugsForum.
|
|
|
|
|
krzywy105
Doradca
Pomógł: 1 raz Dołączył: 09 Kwi 2011 Posty: 68 Skąd: Małopolska
|
Wysłany: Sro 18 Sty, 2012 18:31
|
|
|
Czy jest jakiś sposób ustawienia punktów transformacji aby wyśrodkować wczytywany swf względem sceny?
Chodzi o to aby ten wczytywany swf był na środku bez względu na jego rozmiar.
Jeśli mc do którego wczytuje jest pusty to wczytuje lewy górny róg ładowanego swf do punktu gdzie jest umieszczony mc. Natomiast jeśli dam temu mc rozmiar sceny to wtedy ładowany swf ustawia się górnym lewym rogiem do punktu gdzie jest zaznaczony punkt transformacji a chce żeby wczytał się na środek. |
|
|
|
|
^Januszr
Pomógł: 216 razy Dołączył: 11 Maj 2005 Posty: 1854 Skąd: Stolyca od urodzenia
|
Wysłany: Sro 18 Sty, 2012 19:24
|
|
|
Cytat: | Czy jest jakiś sposób ustawienia punktów transformacji aby wyśrodkować wczytywany swf względem sceny? |
Tak, podziel wysokość stage na dwa, szerokość także i pozycjonuj w ten sposób MC.
Jakieś informacje załączyłem w przeszłości tutaj: http://swish.wodip.opole....pic.php?p=21385
Ewentualnie zaadoptuj to:
Twój_MC._x = Stage.width/2
Twój_MC._y = Stage.height/2
I jak coś nie działa to załącz swi, bo łatwiej mi się naprawia niż pisze od początku... |
_________________ Niestety używam nieoficjalnych wersji Swish, które można zassać z forums.swishzone.com - jest na szczycie listy w BugsForum.
|
|
|
|
|
espe1
Profesjonalista
Pomógł: 16 razy Dołączył: 02 Lis 2011 Posty: 175 Skąd: łódzkie
|
Wysłany: Sro 18 Sty, 2012 20:21
|
|
|
Ponieważ sm4 nie podaje/oblicza rozmiarów ładowanego pliku, trzeba do każdego ładowanego pliku obliczać ręcznie:
Kod: |
onFrame (1) {
_root.createEmptyMovieClip("holder", 1);
_root.holder.loadMovie("film.swf");
_root.holder._x = 130 //(szerokość sceny - szerokość filmu)/2;
_root.holder._y = 110 //(wysokość sceny - wysokość filmu)/2;
} |
liczy, ale przez funkcję przy ładowaniu - patrz niżej |
Ostatnio zmieniony przez espe1 Sro 18 Sty, 2012 21:48, w całości zmieniany 2 razy |
|
|
|
|
krzywy105
Doradca
Pomógł: 1 raz Dołączył: 09 Kwi 2011 Posty: 68 Skąd: Małopolska
|
Wysłany: Sro 18 Sty, 2012 20:21
|
|
|
Tak tylko nie znając z góry rozmiaru swf to w taki sposób chyba się nie da. Bo z tego co zauważyłem wczytywany swf zawsze ma punkt transformacji ustawiony na lewy górny róg. Chyba że można już po wczytaniu w jakiś sposób skryptem przestawić ten punkt?
Próbowałem po wczytaniu pobierać wartość _width i _height MC (bo wtedy dało by się wyliczyć środek) ale to podaje złe wyniki i często losowe w pewnych granicach.
Żeby załączenie pliku swi miało sens muszę go przerobić bo teraz pobiera dane z bazy i ciężko by było o dobre działanie. Ale jak nic nie wymyśle to przerobie i załączę. |
|
|
|
|
espe1
Profesjonalista
Pomógł: 16 razy Dołączył: 02 Lis 2011 Posty: 175 Skąd: łódzkie
|
Wysłany: Sro 18 Sty, 2012 20:53
|
|
|
centrowanie działa przez tego loadera (do ściągnięcia i przerobienia)
http://blog.swishzone.com/?p=3426
czyli:
1. tworzymy pustego mc o nazwie "container"
2. w scenie_1 wpisujemy:
Kod: |
onSelfEvent(load) {
var mcListener = new Object();
mcListener.onLoadInit = function(tmc) {
tmc._x = Math.round((Stage.width/2) - tmc._width/2);
tmc._y = Math.round((Stage.height/2)- tmc._height/2);
tmc.play();
}
var mcLoader = new MovieClipLoader();
mcLoader.addListener(mcListener);
}
onFrame (1) {
mcLoader.loadClip("plik.swf", this.container);
} |
można też tworzyć przyciski z kolejnymi akcjami ładowania plików:
Kod: |
on(release) {
mcLoader.loadClip("plik2.swf", this.container);
} |
Centrowanie źle działa, jeśli:
- ładowany swf nie ma tła w postaci shape lub zdjęcia
- ładowany swf ma tło, lub element który wystaje poza scenę |
|
|
|
|
krzywy105
Doradca
Pomógł: 1 raz Dołączył: 09 Kwi 2011 Posty: 68 Skąd: Małopolska
|
Wysłany: Pią 20 Sty, 2012 12:30
|
|
|
No właśnie te wymiary pobierane przez swisha dotyczą tylko pierwszej klatki i właśnie biorą pod uwagę elementy animacji tzn jeśli wystają poza obszar sceny albo są małe to wymiar jest do tego dostosowywany. Zdecydowałem że wymiar animacji będzie pobierał PHP i wysyłał do flasha. Teraz centrowanie działa prawidłowo.
[ Dodano: Pią 20 Sty, 2012 19:48 ]
Jest gdzieś jakiś tutorial na temat wykonania prostego playera mp3?
Chce wykonać taki ale za bardzo nie wiem jak się za to zabrać. Te z komponentów są za duże i nie wiem za bardzo jak przekazywać do nich dynamicznie plik mp3 którego ścieżka będzie pobierana z bazy danych.
Jeśli ktoś dysponuje materiałami odnośnie audio w swishu to byłbym wdzięczny za podzielenie się. |
|
|
|
|
|