[ Schmidt @ 28.11.2007. 15:46 ] @
Dakle, problem je sledecji:
U gornjih 10 piksela vidljivog dijela prezentacije hvatam poziciju misha, ako je mish po y koordinatama unutar tih 10 piksela aktiviram flash animaciju.
Medjutim, problem je shto mi treba aktivacija sa dodatna dva uslova:
1. ako mish dolazi odozgo (od toolbara i addressbara) ne treba da se aktivira animacija
2. ako mish dolazi odozdo (sa sadrzhaja) onda treba da se aktivira animacija

Cilj: ako posjetilac zheli da napusti moju stranicu (zheli da ukuca novu adresu u addressbar, zheli da klikne na back ili bilo shta slichno) aktiviracje se animacija.

Ovo mi je prva action skripta, pa vas molim za strpljenje :)
[ Schmidt @ 28.11.2007. 20:45 ] @
Ok, upotrebio sam watchcallback funkciju, poredjenjem oldval i newval mogu znati da li se mish krecje prema gore ili prema dole. Medjutim sporo je, i ako se brzhe trzne mishem i predje preko gornjih 10 piksela koje hvatam mozhe se desiti da se animacija ne pokrene. Ima li neki brzhi nachin uzimanja koordinata misha? Inache, zbog toga shto je flash u skrivenom layeru, koordinate shaljem javascriptom, pa je mozhda i to razlog shto je sporije. Ne poznajem relacije izmedju objekata u flashu, ne znam da li bi se objektnim programiranjem moglo brzhe pokupiti varijable iz javascripte. Da li postoji event.mouseposition ili neshto slichno?
[ shedvel @ 28.11.2007. 21:00 ] @
Jako interesantna ideja za zadrzavanje korisnika koji bi da odu sa sajta.
Uvek mozes da im prikazes gomilu macica u korpici sa cvecem (trademark), ili neku paranoicnu poruku tipa cik izadjite sa sajta... pain...lot's of painnn... salim se naravno.

Back on topic, ovo mozes uraditi samo u AS3 obzirom da AS1,2 nema klasu za detektovanje napustanja stage-a ili ili flash player prozora.

Code:

import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;

stage.addEventListener(Event.MOUSE_LEAVE, pobezeKorisnik)

function pobezeKorisnik (e:Event):void {
    trace("dont go, pleaseee dont go... pain...lot's of painnn...")
}



Sve najbolje
[ Schmidt @ 28.11.2007. 22:29 ] @
Problem je shto koordinate shaljem javascriptom, tako da pokrivam cijelu stranicu, a ne samo podruchje flash (mouse leave vazhi samo za podruchje flasha?).
Dakle, meni treba event na ponashanje varijable. Ako ta varijabla opada od nekog vecjeg broja prema nuli i dodje do nule aktivira se flash. Ako ide od nule prema nekoj vecjoj vrijednosti onda se ne desi nishta (jer je to vjerovatno ulazak misha na stranicu)... Izvodivo? Gore sam naveo da sam radio sa watchcallback ali je sporo, preletish mishonjom jako brzo i flash ne uhvati event...
[ Schmidt @ 28.11.2007. 22:34 ] @
Evo primjer koji mi radi posao:

Code:

_global.fleg = 1;
watchCallback = function (id,oldval,newval):String {
    if (newval < 10)
        {
        if (fleg == 1)
        {
            if (oldval > newval)
            {
                getURL("javascript:showMovie();");
                _root.animacija.gotoAndPlay (2);
                fleg = 0;
            }
        }
    }
    return newval;
};
_root.watch("tempY",watchCallback);
_root.watch("fleg",watchCallback);


tempY i fleg setujem iz javascripte, jedan je za y koordinatu misha, a drugi je fleg da je flash vecj odradio animaciju i da ga ne treba pokretati ponovo ako se ispuni uslov za tempY.

Ako mozhe bolje bio bih zahvalan na savjetu, ovo sam uspio nakon shto sam prochitao neshto malo dokumentacije. Imam neki portable flash pa nemam help ni primjere...