PDA

Volledige versie bekijken : [Flash MX pro '04] Actionscript probleem, specifiek plaatje ipv algemeen.


remcoultee
%Europe/Berlin %784 %2005, 19:49
Ik heb het volgende stuk actionscript, ik heb overal al gezocht in tutorials maar dit is een specifiek probleem.

Hoe het eruit ziet..: Links in het scherm staan 20 plaatjes, 1 plaatje wordt naar rechts geschoven en vergroot naar 300x300 pixels. de andere 19 zijn 50x50 pixels.

Nu wil ik als 1 van de 20 plaatjes rechts staat aan elk plaatje een link geven, zodat ik het plaatje kan uitvergroten. Helemaal mooi zou zijn dat dit binnen in flash gebeurd..
Maar ik ben al tevreden met een uitvergrote foto in IE, een popup dus...

Ik denk dat het ergens in het vetgedrukte moet maar niks wil werken..
Ik snap ook niet hoe ik elk plaatje afzonderlijk een link kan geven...zo krijgt elk plaatje toch dezelfde link?

onClipEvent (load) {
this.pics.gotoAndStop(_root.num++);
accel = _root.accel;
rate = _root.rate;
targetwidth=50;
targetheight=50;
targetx=_x;
targety=_y;

startx=_x;
starty=_y;
}

onClipEvent(enterFrame) {
//elasticScale(this.targetScale, this.accel, this.rate);
width = width * accel + (targetwidth - _width) * rate;
_width += width;
if(Math.abs(targetwidth-_width)<1) { _width=targetwidth; }

height = height * accel + (targetheight - _height) * rate;
_height += height;
if(Math.abs(targetheight-_height)<1) { _height=targetheight; }

x = x * accel + (targetx - _x) * rate;
_x += x;
if(Math.abs(targetx-_x)<1) { _x=targetx; }

y = y * accel + (targety - _y) * rate;
_y += y;
if(Math.abs(targety-_y)<1) { _y=targety; }


_parent.border_up._width=_width;
_parent.border_up._x=_x;
_parent.border_up._y=_y-5;

_parent.border_down._width=_width;
_parent.border_down._x=_x;
_parent.border_down._y=_y+_height;

_parent.border_left._height=_height+10;
_parent.border_left._x=_x;
_parent.border_left._y=_y-5;

_parent.border_right._height=_height+10;
_parent.border_right._x=_x+_width+5;
_parent.border_right._y=_y-5;
}

on(release) {
getURL("http://www.nu.nl","_blank");
}


onClipEvent(mouseDown) {
if(this.hitTest(_root._xmouse, _root._ymouse)) {
_parent._parent.swapDepths(10000);
_parent.swapDepths(10001);
this.swapDepths(10002);
_parent._parent[_root.url].sq.targetwidth=50;
_parent._parent[_root.url].sq.targetheight=50;
_parent._parent[_root.url].sq.targetx=_parent._parent[_root.url].sq.startx;
_parent._parent[_root.url].sq.targety=_parent._parent[_root.url].sq.starty;
//trace(_root.url)

_root.url=_parent._name
targetwidth=300;
targetheight=300;
targetx=-250-_parent._x;
targety=-_parent._y-10;

s=new Sound(_root);
s.attachSound("hit");
s.start(0,1);

}

}


Vetgedrukte:
Als ik op een figuur van 50x50 klik opent nu.nl niet. Maar wel als ik op een figuur van 300x300 klik. Dat is goed

Maar ik wil nu dat ik aan elke van de 20 figuren afzonderlijk een url kan geven.

Hoe doe ik dat?

A-Flash
%Europe/Berlin %961 %2005, 00:04
Het lijkt mij handig om van die 20 plaatjes een button te maken. Elk plaatje dus.Dit doe je als volgt: selecteer het plaatje en druk op F8 selecteer in het scherm button. Nu wordt het plaatje een button. Selecteer de button en type on(release) {
getURL("http://www.nu.nl","_blank");
} in het actions venster. Als het goed is moet nu volgens het voorbeeld www.nu.nl openen in een nieuw venster. Dit kan je dus bij elk plaatje doen. Bij mijn site (http://home.wanadoo.nl/koen-en-arnaud/trije.html) staat rechtsboven het RTN logo dit is ook een button (en op dezelfde manier gemaakt) waardoor je naar de site van de lokale omroep gaat.

Veel succes ermee.

Arnaud

trashpuppy
%Europe/Berlin %378 %2005, 10:04
een makkelijke manier zou zijn om alle plaatjes in 1 mc te stoppen, elk plaatje in een ander frame.

vervolgens maak je een array aan met daarin alle linkjes. in de hoofdtijdlijn.
(link 1 hoort bij plaatje op frame nr 1 etc.)

onder die code type je een code die de mc dmv een linkage uit de library rukt. en op de juiste waarde zet (plaats in de mc).
- dit kun je doen door: for-loopje, attachfile & gotoandstop

hierna ga je naar de mc en plaats je een onzichtbare knop over alle plaatjes. dan maak je een functie aan in de as van die tijdlijn, die checkt over welke plaatje je heen gaat met je muis. en zoekt daar in de array de juiste link bij.
- dit kun je doen mbv: String(this), substring()

en bij klik opent hij die link dan.
- doen mbv: getURL

dit zou zijn hoe ik het aan zou pakken en hoe ik het al eerder heb aangepakt.

werken met een klein 'databeest', de array, is heel handig... ook bij updaten bijv.

erikvanhouten
%Europe/Berlin %408 %2005, 10:48
Wellicht bedoel je dit: (deze gebruik ik in mijn eigen site, de ingeladen foto's zijn tevens buttons en laden dezelfde foto groot in een andere movieclip.

http://www.lucyinthecastle.nl/scrolla.swf