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 :D
Szymciosek - Czw 16 Lip, 2009 14:27

sam ześ gej... :P
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... :)


Powered by phpBB modified by Przemo © 2003 phpBB Group