|
SWiSH Forum Forum użytkowników programów SWiSH |
 |
SWiSH Max - Problematico z budową RollOver
UndefinedMan - Wto 14 Lip, 2009 21:14 Temat postu: Problematico z budową RollOver morhen!
Posiadam problem następujący.
Chciałbym aby jedna funkcja roll over działała dla wszystkich MC. W tym celu
zrobiłem sobie w MC
this.onRollOver = function {
_root.FunkcjaRollOver();
}
zaś w Scenie
function FunkcjaRollOver() {
this._alpha = 50;
}
oczywiście przedstawiony sposób nie działa, bo this tyczy się sceny, a jak to ładnie sklepać, żeby root wiedział, że FunkcjaRollOver ma się tyczyć MC?
shastaan - Sro 15 Lip, 2009 01:42
zaraz mnie roland, eden i mielu poprawią zapewne ale wydaje mi się, że to dlatego, że definiujesz function w złym miejscu albo w zły sposób.
Może się myle, ale cokolwiek robie to staram się robić to tak, żeby była jak najmniejsza możliwość błedu. W tym właśnie kontekście chciałem zasugerować definiowanie funkcji bezpośrednio w root (nadrzędnej scenie, w onSelfEvent(load) ). Taką funkcję będzie można wywołać wszędzie niżej w drzewie.
Nie działa? Zrób najprostszą sytuację w której może działać.
- Jak zadziała to zastanów się czym się ta sytuacja różni od twojej. W ten sposób udaje mi się samemu wybrnąć z 90% zawijasów.
- Jak nie zadziała to pomyśl czemu.
- Dalej nie wiesz czemu? Pomyśl co możesz uprościć.
- Nie da rady? Pokaż swi, tak uproszczonego na pewno nie boisz się pokazać...
sl01k - Sro 15 Lip, 2009 18:31
pokusze sie o przykladzik ...
w scenie daj np:
Kod: | function fadeIn() {
this._alpha += 3;
if (this._alpha>=99) {
this._alpha = 100;
}
}
function fadeOut() {
this._alpha -= 3;
if (this._alpha<=20) {
this._alpha = 20;
}
} |
czyli mamy dwie funkcje fadeIn i fadeOut
a teraz odwolanie do niech z poziomu MC
Kod: | onSelfEvent (load) {
this._alpha=20;
this.onRollOver = function () {this.onEnterFrame = _parent.fadeIn}
this.onRollOut = function () {this.onEnterFrame = _parent.fadeOut}
} | ważny w tym wypadku fragment to "_parent" jak zapewne wiesz wskazuje on aplikacji gdzie ma szukac funkcji ...
Szymciosek - Sro 15 Lip, 2009 19:22
super, szkoda ze nie ma pomógł, ale przyda się skrypcik, dopiero się uczę
ps.
tworzę mc, ustawiam go, ładuję zdjęcie.
wszystko w scene
onSelfEvent(load){
_root.createEmptyMovieClip("clip", 1);
_root.clip._x = 0
_root.clip._y = 0
_root.clip.loadMovie("1a.jpg");
}
i teraz chciałbym do tego dodać ten skrypt od sl01k'a, jak mam to zrobić ? Powiem tyle że już próbowałem na kilka sposobów i mi nie wychodziło.
UndefinedMan - Czw 16 Lip, 2009 13:52
ja kliknę pomógł szymciosek to gej lol
Szymciosek - Czw 16 Lip, 2009 14:27
sam ześ gej...
shastaan - Czw 16 Lip, 2009 16:37
fora wam się pomyliły, chłopaki
może na http://forum.gejowo.pl/ zobaczcie
uzyje ktoś elegancko search'a zeby sie dowiedziec jak rozwiązać problem ze swoim skryptem rollOver i bedzie czytal kto z was jest wiekszym gejem x]
I'd mod it.
sl01k - Pią 17 Lip, 2009 00:15
Cytat: | ps.
tworzę mc, ustawiam go, ładuję zdjęcie.
wszystko w scene
onSelfEvent(load){
_root.createEmptyMovieClip("clip", 1);
_root.clip._x = 0
_root.clip._y = 0
_root.clip.loadMovie("1a.jpg");
} |
zamiast this daj clip i powinno dzilac ... oczywiscie chodzi mi o druga czesc kodu ... pierwsza zostaw jak jest. ..
UndefinedMan - Pią 17 Lip, 2009 09:24
sl01k, sloik mam jeszcze take pytanie dotyczące programowania, mianowicie:
ja zazwyczaj robię tak, function nazwafunkcji() i pozniej odwołuję się przez nazwafunkcji() - generalnie chodzi mi o te nawiasy.
Bo u CIebie w skrypcie powyżej jest zbudowana funkcja fadeIn() ale odwołujemy się fadeIn - bez nawiasów, z nawiasami nie działa, mógłbyś mi to jakoś wytłumaczyć?
sl01k - Pią 17 Lip, 2009 14:21
Cytat: | sl01k, sloik mam jeszcze take pytanie dotyczące programowania, mianowicie:
ja zazwyczaj robię tak, function nazwafunkcji() i pozniej odwołuję się przez nazwafunkcji() - generalnie chodzi mi o te nawiasy.
Bo u CIebie w skrypcie powyżej jest zbudowana funkcja fadeIn() ale odwołujemy się fadeIn - bez nawiasów, z nawiasami nie działa, mógłbyś mi to jakoś wytłumaczyć? |
po pierwsze deklarujac funkcje musza byc nawiasy bo taka jest skladnia.... wiec zawsze bedzie cos jak Kod: | function fadeIn() { ... } | wywolujac funkcje np po on press musieli bysmy ja wywolac z nawiasami natomiast w moim przypadku Kod: | this.onRollOver = function () {this.onEnterFrame = _parent.fadeIn} | przypisuje funkcje do eventu ktorym jest onEnterFrame a nie wywoluje funkcje....
wiec gdy wywoluje funkcje to fadeIn()
a gdy przypisuje event do funkcji to tylko jej nazwa...
w wiekszosci jezykow programowania jeszt podobnie...
P.S. jezeli cos zle wytlumaczylem albo zle to rozumiem to prosze mnie poprawic gdyz nie jestem programista...
|
|