RollOver, OuT na obiekcie dynamicznym |
Autor |
Wiadomość |
Impats
Początkujący

Dołączył: 20 Lis 2009 Posty: 6 Skąd: Polska!
|
Wysłany: Pon 04 Sty, 2010 21:06 RollOver, OuT na obiekcie dynamicznym
|
|
|
Ładuje zdjęcie z folderu. Co zrobić, żeby po najechaniu na nie myszką po prostu się powiększyło?
Sotosuje:
Kod: |
on (RollOver){
this._xscale = 240
this._yscale = 240
}
on (RollOut){
this._xscale = 200
this._yscale = 200
}
|
Oczywiście w ładowałem go wpierw poleceniem LoadMovie do MC.
W czym tkwi mój błąd?
Bo jak dam
Kod: |
onSelfEvent (load){
this._xscale = 240
this._yscale = 240
}
|
to wszystko gra.... Somebody help? |
|
|
|
 |
eden
Ekspert

Pomógł: 35 razy Dołączył: 04 Sty 2008 Posty: 265 Skąd: warsaw
|
Wysłany: Pon 04 Sty, 2010 21:43
|
|
|
Gdy ladujesz cos do klipa, wszystkie jego akcje zostaja usuniete. Powinienes zakleszczyc jeszcze jeden klip. Np.
Kod: | onLoad () {
createEmptyMovieClip("test",1);
test.createEmptyMovieClip("kontener",1);
test.kontener.LoadMovie("test.jpg");
test.onRollOver = function() {
this._xscale = 240;
this._yscale = 240;
};
test.onRollOut = function() {
this._xscale = 100;
this._yscale = 100;
};
} |
|
|
|
|
 |
Impats
Początkujący

Dołączył: 20 Lis 2009 Posty: 6 Skąd: Polska!
|
Wysłany: Wto 05 Sty, 2010 15:39
|
|
|
oo właśnie tego mi było trzeba Ale działa mi to tylko na dysku twardym, na FTP-ie już nie:( Zdjęcie w ogóle się nie chce załadować.... |
|
|
|
 |
eden
Ekspert

Pomógł: 35 razy Dołączył: 04 Sty 2008 Posty: 265 Skąd: warsaw
|
Wysłany: Wto 05 Sty, 2010 17:35
|
|
|
Najprawdopodobniej dzieje sie tak dlatego, ze ladowanie fotki na serwerach odbywa sie wolniej niz na komputerach lokalnych, a movieclip ktory jest w stanie ladowania zawartosci nie moze byc uzywany przez zaden ze skryptow. Poniewaz kod wykonuje sie natychmiastowo, fotka niezdanza sie zaladowac,gdy juz ustawiana jest skala klipu. W takim przypadku operacja ladowania zostaje zakonczona niepowodzeniem.
najprostsze rozwiazanie jest by ustawiac akcje na klip nieco puzniej, (np ze 3 klatki dalej od polecenia loadmovie). Jest to oczywiscie bardzio cienkie rozwiazanie, bo czas ladowania jest wielkoscia zmienna. Najlepiej bylo by uzyc obiektu klasy MovieClipLoader do ladowania fotek, gdyz jako obiekt posiada on wbudowane metody na detekcje zakonczenia procesu ladowania zawartosci do klipa. (podobne mechanizmy da sie rowniez osiagnac dla loadMovie, ale sa to przestarzale techniki) |
|
|
|
 |
Impats
Początkujący

Dołączył: 20 Lis 2009 Posty: 6 Skąd: Polska!
|
Wysłany: Sro 06 Sty, 2010 20:57
|
|
|
Kurcze i jestem w kropce, bo tego "cieńkiego" rozwiązania chyba nie zastosuje;/;/ Nie mam pomysłu jak wyjść z tej sytuacji;/;/
Kod: | onSelfEvent (load) {
this._xscale = 100
this._yscale = 100
createEmptyMovieClip("test",1);
test.createEmptyMovieClip("kontener",1);
test.kontener.LoadMovie("9a.jpg");
test.onRollOver = function(a) {
skalaX = 120;
skalaY = 120;
gotoAndPlay(5
)
};
test.onRollOut = function(a) {
_xscale = 100;
_yscale = 100;
gotoAndPlay(1)
};
}onFrame (4) {
stop();
}
onFrame (5) {
predkoscX = ((this.skalaX-this._xscale)*0.1);
predkoscY = ((this.skalaY-this._yscale)*0.1);
this._xscale += predkoscX;
this._yscale += predkoscY;
}
onFrame (6) {
prevFrameAndPlay();
}
onFrame (7) {
stop();
}
onFrame (8) {
predkoscX = ((this.skalaX-this._xscale)*0.2);
predkoscY = ((this.skalaY-this._yscale)*0.2);
this._xscale += predkoscX;
this._yscale += predkoscY;
}
onFrame (9) {
prevFrameAndPlay();
}
onFrame (10) {
stop();
}
|
a MovieClipLoader coś mnie łamie... Wcale go nie wczytuje...
Kod: | onSelfEvent (load){
loader_obj = new MovieClipLoader();
loader_L = new Object();
loader_L.onLoadInit = function() {
this._xscale = 240;
this._yscale = 240;
}
loader_obj.addListener(loader_L);
loader_obj.loadClip(["9a.jpg"], [MC]);} |
|
|
|
|
 |
eden
Ekspert

Pomógł: 35 razy Dołączył: 04 Sty 2008 Posty: 265 Skąd: warsaw
|
Wysłany: Sro 06 Sty, 2010 23:06
|
|
|
Cytat: | loader_obj.loadClip("WoWScreenshot2583.jpg", test.kontener); |
Kod: | onSelfEvent (load){
createEmptyMovieClip("test",1);
test.createEmptyMovieClip("kontener",1);
loader_obj = new MovieClipLoader();
loader_L = new Object();
loader_L.onLoadInit = function(target) {
addEvent();
};
loader_obj.addListener(loader_L);
loader_obj.loadClip("WoWScreenshot2583.jpg", test.kontener);
}
function addEvent() {
test.onRollOver = function() {
this._xscale = 120;
this._yscale = 120;
};
test.onRollOut = function() {
this._xscale = 100;
this._yscale = 100;
};
} |
|
|
|
|
 |
Impats
Początkujący

Dołączył: 20 Lis 2009 Posty: 6 Skąd: Polska!
|
Wysłany: Sro 06 Sty, 2010 23:56
|
|
|
Wszystko Super:) ;p Działa Tylko ja inteligent nie potrafię teraz połączyć MovieClipLoader z tym delikatnym skalowaniem ... Ale i tak ogromne Ci dzięki:) |
|
|
|
 |
Fygydymyk
Początkujący

Dołączył: 09 Sty 2010 Posty: 2 Skąd: Kłock
|
Wysłany: Sob 09 Sty, 2010 09:53
|
|
|
Witam wszystkich użytkowników
Mam pytanie. Jak korzystając z takiej metody ustwić Anchor Point?
Moja fotka po wczytaniu się z pliku skaluje wzdłuż osi X i Y od TL. Jak to zrobić żeby powiększała się równomiernie w każdą stronę? (Oczywiście po wywołaniu funkcji Roll Out)
próbowałem tak:
Kod: |
this.align = "Center";
|
W sumie nawet nie wiem czy się za to dobrze zabieram... |
|
|
|
 |
eden
Ekspert

Pomógł: 35 razy Dołączył: 04 Sty 2008 Posty: 265 Skąd: warsaw
|
Wysłany: Sob 09 Sty, 2010 14:54
|
|
|
Niestety niema takiej możliwości. W AS2 nieda się dynamicznie zmienić zakotwiczenia. Wyjscia sa 2:
- zrezygnować z createEmptyMovieClip() na rzecz gotowego klipu z interfejsu.
- obliczyc sobie roznice przesuniecia x i y skalowanego klipu i przesować podczas skalowania. |
|
|
|
 |
Fygydymyk
Początkujący

Dołączył: 09 Sty 2010 Posty: 2 Skąd: Kłock
|
Wysłany: Sob 09 Sty, 2010 15:41
|
|
|
Ja to wkładam do MoVie Clipa. W środku niego mam ten skrypt. Ale opcje "align" mam tak jakby zablokowane.
a tak swoją drogą Kod: | Stage.align = "Center"; | - działa. |
|
|
|
 |
|