Kezdőoldal » Számítástechnika » Programozás » ACTIONSCRIPT 3! Hol a hiba?...

ACTIONSCRIPT 3! Hol a hiba? Mit csinálok rosszul?

Figyelt kérdés

Sziasztok.

Elég kezdő vagyok. Van 3 gombom egy layeren, amivel hivatkozni szeretnék.

Mind a 3 gombal, 3 különböző lapot szeretnék megnyitni.

Első kérdés: Az alábbi kód nem működik, mind a 3 gombomra, ugyanazt az oldalt hozza be. Mit rontok el?


stop();

var link1:URLRequest = new URLRequest ("gallery/link1.html");

galeri1.addEventListener(MouseEvent.CLICK, gooo);

var link2:URLRequest = new URLRequest ("gallery/link2.html");

galeri2.addEventListener(MouseEvent.CLICK, gooo);

var link3:URLRequest = new URLRequest ("gallery/link3.html");

galeri3.addEventListener(MouseEvent.CLICK, gooo);

function gooo(event:MouseEvent):void {

navigateToURL(link1, "gallery");

navigateToURL(link2, "gallery");

navigateToURL(link3, "gallery");

}



A másik kérdésem az lenne, hogy a targetem: gallery, a html oldalon az iframe neve is gallery. Miért nem oda tölti be?


Ha valaki tudna segíteni előre is köszönöm.


Üdvözletem!


2012. febr. 1. 15:35
 1/2 anonim ***** válasza:

Na nézzük!


Mindegyik gombhoz ugyanazt az egéreseményt rendeled. Ez eddig oké.

Az eseménykezelőben 3 utasítás található, ezek végbemennek bármely gombra kattintva. Ez már nem teljesen oké.


Gondolom az a célod, hogy a galeri1 gomb töltse be a link1-et a galeri2 a link2-t és így tovább... Ehhez viszont meg kell különböztetni a gombokat, erre 2 megoldás is van:

1. Mindegyik gombhoz más eseményt rendelsz. (nem túl praktikus)

2. Az adott (egyetlen egy) eseményben vizsgálod meg és döntöd el, hogy melyik gomb váltotta ki az eseményt. Ez jól hangzik... de mégis hogyan?


Ez sem nehéz. Elsőnek meg kell vizsgálnunk az eseménykezelőnket:

function gooo(event:MouseEvent):void


A gooo fügvény egy event nevű (MouseEvent típusú) paramétert vár. Ezt a paraméternek teszel eleget, mikor a kattintás során átadod argumentumként a figyelő objektumot objektumok (tehát a gombot ha rákattintottál).

Tudjuk hogy az argumentumnak (ez esetben a gombnak) vannak tulajdonságai. Ezeket kéne elérni és megvizsgálni.


Mikor létrehozol egy objektumot, el kell látnod egy címkével, hogy tudj rá hivatkozni. Ezt a címkét tudod "visszafejteni" az alábbi kódsorral:

event.currentTarget.name


Tehát, az eseménykezelődben érdemes e tulajdonságot megvizsgálnod (célszerű a switch használata), és ha ez megegyezik az adott gombod címkéjével akkor lepjen a megadott linkre:


switch(event.currentTarget.name)

{

case "galeri1"

navigateToURL(link1)

.

.

.


A másik kérdésed nem teljesen értem.


Ha bármilyen kérdésed van AS3-mal kapcsolatban írj privit nyugodtan.

2012. febr. 1. 16:34
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:

Sziasztok.

Megszületett a megoldás valahogy így. Nállam működik. Felteszem, hogyha mást is érdekel esetleg.


link1.addEventListener(MouseEvent.CLICK,Link1);

function Link1(event:MouseEvent):void

{

navigateToURL(new URLRequest("link1.html"),"target");

}


link2.addEventListener(MouseEvent.CLICK,Link2);

function Link2(event:MouseEvent):void

{

navigateToURL(new URLRequest("link2.html"),"target");

}


link3.addEventListener(MouseEvent.CLICK,Link3);

function Link3(event:MouseEvent):void

{

navigateToURL(new URLRequest("link3.html"),"target");

}


link1 link2 link3 -› Instance name = A gombod jelölő neve!

Link1 Link2 Link3 -› A funkció jelölő neve. ( kétszer ugyanaz nem lehet.)

link1.html link2.html link3.html -› A hivatkozás URL címe.

target -› _blank , _self, _parent vagy az iframe name!


Remélem másnak is tudtam ezzel segíteni.


Üdv.

2012. febr. 1. 23:03

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!