» »

Flash - določanje hitArea v MovieClip

Flash - določanje hitArea v MovieClip

lesnik24 ::

Zdravo!
Potreboval bi pomoč pri naslednjem problemu.

delam spletno stran v flashu, in namesto klasičnih gumbov imam movieClip, ki jih poganja naslednja koda:


btn_album.onRollOver = function() {
btn_album.gotoAndPlay ("_over");
}
btn_album.onRollOut = function() {
btn_album.gotoAndPlay ("_out");
}
btn_album.onRelease = function() {
gotoAndPlay ("album")
}


animacija gumba (oz kar gumb) je sestavljena sekvenc .png slik.
gumb je nepravilne oblike, njegova okolica je transparentna.
samega gumba ne morem izdelati v flashu, ker je narejen iz rastrske slike.

problem, ki bi ga želel rešit je, da se transparentni del png slike nebi štel v hitArea, oz. da bi se akciji onRollOver in onRollOut zgodili samo v primeru ko bi miš preletela rdečo zvezdo(na skici) in ne že v transparentni okolici.
kar je vseskupaj težko razložit je tukaj še
 skica problema

skica problema

za lažjo predstavo

vesel bi bik kakršne koli pomoči/nasvetov :)

lp

Music Man ::

Slikca ti ne dela, tako da ne vem kako točno zgleda problem. Ampak recimo ena možna rešitev problema je, da tvoj class za gumb extenda Sprite, v tem razredu z addChild dodaš najprej MovieClip, nato pa še en Sprite (kar en navaden rectangle) katerekoli barve, ampak z alpha = 0. Tale kvadratek pozicioniraj točno nad tisto zvezdo. Nato pa dodaš vse mouse listenerje na ta kvadratek, v metodah, ki se prožijo ob mouse eventih, pa MovieClip postaviš na ustrezen frame.

Upam, da bi to moralo delat, ker govorim bolj po spominu, nimam pa sedaj pri roki eclipsa s Flash builderjem, da bi probal.

edit: gledam zdaj še dokumentacijo in razred Sprite ima property hitArea, ki sprejema argumente tipa Sprite. Glede na to, da MovieClip extenda Sprite, predvidevam, da tud MovieClip pozna ta property. Naredi pol raje to s tem, da tist kvadratek z alpha = 0 nastaviš za hitArea.

Zgodovina sprememb…

680x0 ::

1.) Namesto MovieClip uporabi Button, v Up, Over in Down frejme daj svoje PGN slikice, v Hit frame pa zriši objekt, ki bo določal površino gumba (ki je lahko neodvisna od površine slik v ostalih frejmih.

ALI

2.) Če zadevo skriptiraš, uporabi hitArea propery:
var square:Sprite = new Sprite();
square.graphics.beginFill(0xCCFF00);
square.graphics.drawRect(200, 0, 100, 100);

tvojGumb.hitArea = square;

http://livedocs.adobe.com/flash/9.0/Act...

#000000 ::

On bi rad mel gumb oblike kot je tista zvezda al neki podobnega, ga pa jebe ker ne zna tega narest.

lesnik24 ::

v bistvu imam enak problem kot je tukaj

http://blog.erikphansen.com/hit-area-of...

zj v as3 sm najdu kako se da to odpravit... sam moj page uporablja action script 2.0 in če bom vse spremenu v as 3 morm spet vse preprogramirat povrh tega pa nimam pojma o as3 :S :/

maastermedia ::

Ne bi preverjal podrobnosti, ampak še vedno ti preostane obris hobotnice (oz. zvezde) s pen toolom. Obrisano zapolniš z barvo in narediš button/hitarea...

lesnik24 ::

pač glavni problem je bil da sam gumb močno spreminja obliko med samo rollover akcijo ampak sm zdj naredu nov movieClip, ga uporabil za hitArea, sam hitaArea pa se sinhrono spremninja z samo obliko gumba... sicr ne na pixel natančno a še vedno dovolj da sm težavo rešil :D

hvala vseeno vsem za trud :D :D


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kako narediti animacijo z actionscriptom

Oddelek: Programiranje
61082 (993) peroteam
»

Flash združevanje

Oddelek: Izdelava spletišč
91634 (1486) kekc
»

vprašanje iz flasha (actionscripta)

Oddelek: Programiranje
15960 (777) [MYTiX]
»

Flash 5 - menuji

Oddelek: Programska oprema
141443 (1285) Lunik
»

flash

Oddelek: Omrežja in internet
91075 (1009) Lunik

Več podobnih tem