Vous êtes sur la page 1sur 313




















ActionScript 3.0
Aprenda a programar

)UDQFLVFR-DYLHU$UFH$QJXLDQR





















ActionScript 3.0
Aprenda a programar

)UDQFLVFR-DYLHU$UFH$QJXLDQR


















%XHQRV$LUHV‡%RJRWi‡0p[LFR')‡6DQWLDJRGH&KLOH

Edición:

Alejandro Herrera Datos catalográficos
Corrección:
Roberto Alfaro M. Arce, Francisco Javier
Revisión: ActionScript 3.0. Aprenda a programar
David Moisés Terán Pérez
Gerente editorial: Primera Edición
Marcelo Grillo
Alfaomega Grupo Editor, S.A. de C.V., México
ISBN: 978-607-707-161-7
Formato: 17 x 23 cm Páginas: 312

ActionScript 3.0. Aprenda a programar


Francisco Javier Arce Anguiano
Derechos reservados © 2011, por Alfaomega Grupo Editor, S.A. de C.V. México.
Primera edición: Alfaomega Grupo Editor, México, febrero 2011

© 2011 Alfaomega Grupo Editor, S.A. de C.V.


Pitágoras 1139, Col. Del Valle, 03100, México D.F.

Miembro de la Cámara Nacional de la Industria Editorial Mexicana


Registro No. 2317

Pág. Web: http://www.alfaomega.com.mx


E-mail: atencionalcliente@alfaomega.com.mx

ISBN: 978-607-707-161-7

Derechos reservados:
Esta obra es propiedad intelectual de su autor y los derechos de publicación en lengua
española han sido legalmente transferidos al editor. Prohibida su reproducción parcial o total
por cualquier medio sin permiso por escrito del propietario de los derechos del copyright.

Nota importante:
La información contenida en esta obra tiene un fin exclusivamente didáctico y, por lo tanto,
no está previsto su aprovechamiento a nivel profesional o industrial. Las indicaciones
técnicas y programas incluidos, han sido elaborados con gran cuidado por el autor y
reproducidos bajo estrictas normas de control. ALFAOMEGA GRUPO EDITOR, S.A. de
C.V. no será jurídicamente responsable por: errores u omisiones; daños y perjuicios que se
pudieran atribuir al uso de la información comprendida en este libro, ni por la utilización
indebida que pudiera dársele. Los nombres comerciales que aparecen en este libro son
marcas registradas de sus propietarios y se mencionan únicamente con fines didácticos, por
lo que Alfaomega Grupo Editor, S.A. de C.V., México no asume ninguna responsabilidad por
el uso que se de a esta información, ya que no infringe ningún derecho de registro de marca.
Los datos de los ejemplos y pantallas son ficticios, a no ser que se especifique lo contrario.
Impreso en México. Printed in Mexico.
Empresas del grupo:
México: Alfaomega Grupo Editor, S.A. de C.V. – Pitágoras 1139, Col. Del Valle, México, D.F. – C.P. 03100.
Tel.: (52-55) 5575-5022 – Fax: (52-55) 5575-2420 / 2490. Sin costo: 01-800-020-4396
E-mail: atencionalcliente@alfaomega.com.mx
Colombia: Alfaomega Colombiana S.A. – Carrera 15 No. 64 A 29, Bogotá, Colombia,
Tel.: (57-1) 2100122 – Fax: (57-1) 6068648 – E-mail: cliente@alfaomega.com.co
Chile: Alfaomega Grupo Editor, S.A. – Dr. La Sierra 1437, Providencia, Santiago, Chile
Tel.: (56-2) 235-4248 – Fax: (56-2) 235-5786 – E-mail: agechile@alfaomega.cl
Argentina: Alfaomega Grupo Editor Argentino, S.A. – Paraguay 1307 P.B. Of. 11, C.P. 1057, Buenos Aires,
Argentina, – Tel./Fax: (54-11) 4811-8352, 4811 7183 y 4811 0887 – E-mail: ventas@alfaomegaeditor.com.ar





'HGLFDWRULD 




4XLHURGHGLFDUHVWHOLEUR

$PLHVSRVD\DPLVKLMRVTXHVRQHOVRSRUWHGHPLYLGD
$PLSDGUH
$PLPDGUHTXHVHQRVDGHODQWyFRQHO&UHDGRU HVWR\VHJXURTXH'LRVSURJUDPD
FRQ$FWLRQ6FULSW\QRFRQ-DYDFRPRDVHJXUDQDOJXQRV 
$ WRGRV PLV H[DOXPQRV GH ORV FXDOHV KH DSUHQGLGR PXFKR \ HVSHUR TXH HOORV
WDPELpQKD\DQDSUHQGLGRDOJR


)UDQFLVFR-DYLHU$UFH$QJXLDQR






$JUDGHFLPLHQWRV
$JUDGHFLPLHQWRV

$ WRGR HO SHUVRQDO GH $OIDRPHJD SRU VX DSR\R \ SURIHVLRQDOLVPR SUHVWDGR SDUD TXH
HVWHOLEURVHDQXHYDPHQWHUHDOLGDG
$PLVH[DOXPQRVTXHORVKHYLVWRVXIULUFRQHOOHQJXDMH\PHKDQHQVHxDGRPXFKR\
DXPHQWDGRPLHQWXVLDVPRSRUDSUHQGHUPiV
$$OHMDQGUR+HUUHUD\5REHUWR$OIDURTXLHQHVFRQVXWUDEDMR\HVIXHU]RLPSXOVDURQOD
SXEOLFDFLyQGH$FWLRQ6FULSW$SUHQGDDSURJUDPDU
*UDFLDV

)UDQFLVFR-DYLHU$UFH$QJXLDQR






0HQVDMHGHOHGLWRU
0HQVDMHGHOHGLWRU
/RV FRQRFLPLHQWRV VRQ HVHQFLDOHV HQ HO GHVHPSHxR SURIHVLRQDO VLQ HOORV HV
LPSRVLEOH ORJUDU ODV KDELOLGDGHV SDUD FRPSHWLU ODERUDOPHQWH /D XQLYHUVLGDG R ODV
LQVWLWXFLRQHV GH IRUPDFLyQ SDUD HO WUDEDMR RIUHFHQ OD RSRUWXQLGDG GH DGTXLULU
FRQRFLPLHQWRV TXH VHUiQ DSURYHFKDGRV PiV DGHODQWH HQ EHQHILFLR SURSLR \ GH OD
VRFLHGDG HO DYDQFH GH OD FLHQFLD \ GH OD WpFQLFD KDFH QHFHVDULR DFWXDOL]DU
FRQWLQXDPHQWHHVRVFRQRFLPLHQWRV&XDQGRVHWRPDODGHFLVLyQGHHPEDUFDUVHHQ
XQDYLGDSURIHVLRQDOVHDGTXLHUHXQFRPSURPLVRGHSRUYLGDPDQWHQHUVHDOGtDHQ
ORVFRQRFLPLHQWRVGHOiUHDXRILFLRTXHVHKDGHFLGLGRGHVHPSHxDU
$OIDRPHJD WLHQH SRU PLVLyQ RIUHFHUOHV D HVWXGLDQWHV \ SURIHVLRQDOHV
FRQRFLPLHQWRV DFWXDOL]DGRV GHQWUR GH OLQHDPLHQWRV SHGDJyJLFRV TXH IDFLOLWHQ VX
XWLOL]DFLyQ \ SHUPLWDQ GHVDUUROODU ODV FRPSHWHQFLDV UHTXHULGDV SRU XQD SURIHVLyQ
GHWHUPLQDGD$OIDRPHJDHVSHUDVHUVXFRPSDxHUDSURIHVLRQDOHQHVWHYLDMHGHSRU
YLGDSRUHOPXQGRGHOFRQRFLPLHQWR
$OIDRPHJDKDFHXVRGHORVPHGLRVLPSUHVRVWUDGLFLRQDOHVHQFRPELQDFLyQ
FRQ ODV WHFQRORJtDV GH OD LQIRUPDFLyQ \ ODV FRPXQLFDFLRQHV ,7  SDUD IDFLOLWDU HO
DSUHQGL]DMH/LEURVFRPRpVWHWLHQHQVXFRPSOHPHQWRHQXQDSiJLQD:HEHQGRQGH
HODOXPQR\VXSURIHVRUHQFRQWUDUiQPDWHULDOHVDGLFLRQDOHV
(VWD REUD FRQWLHQH QXPHURVRV JUiILFRV FXDGURV \ RWURV UHFXUVRV SDUD
GHVSHUWDU HO LQWHUpV GHO HVWXGLDQWH \ IDFLOLWDUOH OD FRPSUHQVLyQ \ DSURSLDFLyQ GHO
FRQRFLPLHQWR &DGD FDStWXOR VH GHVDUUROOD FRQ DUJXPHQWRV SUHVHQWDGRV HQ IRUPD
VHQFLOOD\HVWUXFWXUDGDFODUDPHQWHKDFLDORVREMHWLYRV\PHWDVSURSXHVWDV
/RVOLEURVGH $OIDRPHJDHVWiQGLVHxDGRV SDUDVHUXWLOL]DGRVGHQWURGH ORV
SURFHVRVGHHQVHxDQ]DDSUHQGL]DMH\SXHGHQVHUXVDGRVFRPRWH[WRVSDUDGLYHUVRV
FXUVRVRFRPRDSR\RSDUDUHIRU]DUHOGHVDUUROORSURIHVLRQDO
$OIDRPHJD HVSHUD FRQWULEXLU DVt D OD IRUPDFLyQ \ HO GHVDUUROOR GH
SURIHVLRQDOHVH[LWRVRVSDUDEHQHILFLRGHODVRFLHGDG





(ODXWRU
(ODXWRU
)UDQFLVFR-DYLHU$UFH$QJXLDQR

(VWXGLy0DWHPiWLFDV$SOLFDGDV\&RPSXWDFLyQHQOD81$0
(QFRQRFLy)ODVKFXDQGRTXHUtDKDFHUDQLPDFLRQHVVHQFLOODVSDUDSiJLQDVGH
,QWHUQHW\pVDIXHVXSHUGLFLyQ
(Q\UHDOL]yMXHJRVHQ)ODVKXWLOL]DQGR$FWLRQ6FULSW ODSULPHUDYHUVLyQ 
3XEOLFyWXWRULDOHVHQSiJLQDVHVSHFLDOL]DGDV
'HVGHVHGHGLFyH[FOXVLYDPHQWHD)ODVK\$FWLRQ6FULSW
2EWXYRODFHUWLILFDFLyQFRPRGLVHxDGRU\GHVDUUROODGRUHQ
3XEOLFyVXSULPHUOLEURGH$FWLRQ6FULSWFRQHVWDHGLWRULDOHQ
(QREWXYRODFHUWLILFDFLyQFRPR,QVWUXFWRU&HUWLILFDGRHQ)ODVK\'UHDPZHDYHU
3XEOLFyHOOLEURGHSURJUDPDFLyQHQ$FWLRQ6FULSWHQ
$FWXDOPHQWH WUDEDMD GH WLHPSR FRPSOHWR GHVDUUROODQGR DSOLFDFLRQHV HGXFDWLYDV
PXOWLPHGLD HQ )ODVK \ HQVHxDQGR $FWLRQ6FULSW HQ XQLYHUVLGDGHV \ FHQWURV
FHUWLILFDGRV






$FWLRQ6FULSW
$FWLRQ6FULSW$SUHQGDDSURJUDPDU
$SUHQGDDSURJUDPDU
$SUHQGDDSURJUDPDU

(VWHOLEURHVWiGLULJLGRWDQWRDSHUVRQDVTXHWLHQHQFRQRFLPLHQWRVGHODVYHUVLRQHV
DQWHULRUHV GH $FWLRQ6FULSW FRPR D DTXHOODV SHUVRQDV TXH QR WLHQHQ FRQRFLPLHQWRV
SUHYLRVVREUHHOOHQJXDMH

6H KD SURFXUDGR TXH HVWH OLEUR VHD GH XWLOLGDG WDQWR D ODV SHUVRQDV GH
GHVDUUROOR FRPR D ORV GLVHxDGRUHV LQWHUHVDGRV HQ DSUHQGHU HVWH PDUDYLOORVR
OHQJXDMH /RV FDStWXORV VH HQFXHQWUDQ HVWUXFWXUDGRV FRQ H[SRVLFLyQ GH FRQFHSWRV
WHyULFRVOXHJRHMHUFLFLRVFRUWRVHQUHODFLyQFRQORDQWHULRU\SRU~OWLPRXQHMHPSOR
LQWHJUDGRUGHWRGRHOFDStWXOR

(VWH OLEUR QR HV XQD UHIHUHQFLD GHO OHQJXDMH QL XQ PDQXDO SDUD PLJUDU
DSOLFDFLRQHVGHODVYHUVLRQHVDQWHULRUHVD$FWLRQ6FULSW,QWHQWDPRVTXHVHDXQ
OLEUR TXH LQWURGX]FD SRFR D SRFR DO OHFWRU HQ IRUPD DPDEOH \ DPHQD GHVGH OD
FRPSUHQVLyQGHODVYDULDEOHV\VHQWHQFLDVFRQGLFLRQDOHVDWHPDVPiVDPELFLRVRV
FRPRHO;0/\DQLPDFLyQFRQFyGLJR

1R LPSRUWD VL XVWHG HV XQ DUWLVWD JUiILFR R XQ SURJUDPDGRU FRPSXOVLYR
HVSHUHPRV TXH HVWH OLEUR VHD XQD H[FHOHQWH LQWURGXFFLyQ DO SODQHWD $FWLRQ6FULSW
%LHQYHQLGR






$FFHVRDOPDWHULDOFRPSOHPHQWDULR
$FFHVRDOPDWHULDOFRPSOHPHQWDULR
DOFRPSOHPHQWDULR

3DUDWHQHUDFFHVRDOPDWHULDOFRPSOHPHQWDULRGHOOLEUR$FWLRQ6FULSW$SUHQGDD
SURJUDPDUHVQHFHVDULR

,UDODSiJLQDKWWSYLUWXDODOIDRPHJDFRPP[

5HJLVWUDUVHFRPRXVXDULR\JXDUGHHQXQOXJDUVHJXURVXQRPEUHGHXVXDULR\
FODYHGHDFFHVRSDUDHPSOHDUODSDUDIXWXURVLQJUHVRV

,QJUHVHFRQVXXVXDULRDODVHFFLyQGHOLEURV

%XVTXH\VHOHFFLRQHODLPDJHQFRUUHVSRQGLHQWHDHVWHOLEURSDUDGHVFDUJDUVX
PDWHULDOFRPSOHPHQWDULRFRPR

• (MHPSORV
• /RVDUFKLYRVQHFHVDULRVSDUDUHDOL]DUVXVHMHPSORV\SUiFWLFDV
• /LJDVD9LGHRWXWRULDOHVFRQQXPHURVRVHMHPSORVSUiFWLFRVGHVDUUROODGRV
SDVRDSDVR

(VQHFHVDULRTXHHOXVXDULRFXHQWHLQVWDODGRHQVXFRPSXWDGRUDHOVRIWZDUH
$FWLRQ6FULSW

/DGHVFDUJDGHVRIWZDUHGHVGHHOVLWLRGH$XWRGHVNŠQRJHQHUDQLQJXQD
UHVSRQVDELOLGDGSDUDHODXWRURODHGLWRULDO

127$6
127$6

 6H UHFRPLHQGD UHVSDOGDU ORV DUFKLYRV GHVFDUJDGRV GH ODV SiJLQDV ZHE HQ XQ
VRSRUWHItVLFR &'86%GLVFRGXURRFXDOTXLHURWURPHGLRGHDOPDFHQDPLHQWR 

 (Q DGHODQWH VH UHIHULUi DO PDWHULDO FRPSOHPHQWDULR FRPR HO PDWHULDO TXH VH
GHVFDUJyGHOVLWLRZHE 

 








&RQWHQLGR
&RQWHQLGR



&DStWXOR (MHUFLFLR  
$FWLRQ6FULSW
$FWLRQ6FULSW ÉPELWRRDOFDQFHGHODVYDULDEOHV   
(YROXFLRQDURPRULU  (MHUFLFLR  
1XHYD$90\QXHYR5HQGHU  9DULDEOHVSRUVXDOFDQFH   
3DUiPHWURVGHODIXQFLyQFRQVWUXFWRUD 
3URJUDPDFLyQRULHQWDGDDREMHWRV
(MHUFLFLR  
FXHVWLyQGHJDWRV  
7LSRGHGDWRV   
/DVFODVHVJDWRV 
(MHUFLFLR  
&XHVWLyQGHVLQWD[LV 
6DEHUORVWLSRVGHYDULDEOH
¢'yQGHLQLFLDU"  
RSHUDGRUHVLV\DV  
(OFDVFDUyQ 
(MHPSOR   
1RWD  
&RQYHUVLyQGHWLSRV   
/RVHOHPHQWRVGHODFODVH  
&RQVWDQWHV  
/DIXQFLyQFRQVWUXFWRUD 
(MHUFLFLR  
/ODPDUDODFODVH 
2SHUDGRUHV   
&ODVV3DWK 
2SHUDGRUHVSULQFLSDOHV   
6HQWHQFLDLPSRUW 
2SHUDGRUHVGHVXILMR   
3URSLHGDGHV\PpWRGRV  
2SHUDGRUHVGHSUHILMR  
+HUHQFLD  
2SHUDGRUHVXQDULRV   
2YHUULGH  
2SHUDGRUHVGHPXOWLSOLFDFLyQ   
(MHPSORSUiFWLFR  
2SHUDGRUHVDGLWLYRV  
8QDVXEFODVHGH0RYLH&OLS6SULWH  2SHUDGRUHVUHODFLRQDOHV   
&ODVHGHGRFXPHQWRRGRFXPHQWFODVV   2SHUDGRUHVGHLJXDOGDG   
$PDQHUDGHFRQFOXVLyQ   2SHUDGRUHVOyJLFRV  
&DStWXOR 2SHUDGRUFRQGLFLRQDO   
2SHUDGRUHVGHDVLJQDFLyQ   
$OJRPiVVREUHSURJUDPDFLyQ
$OJRPiVVREUHSURJUDPDFLyQ
(MHPSOR   
ULHQWDGDDREMHWRV  
RULHQWDGD
$PDQHUDGHFRQFOXVLyQ  
,QWURGXFFLyQ  
3DTXHWHV SDFNDJHV   &DStWXOR
,PSRUWDUSDTXHWHV   6HQWHQFLDVFRQGLFLRQDOHV\FLFORV  
6HQWHQFLDVFRQGLFLRQDOHV
1RPEUHVGHHVSDFLRVRQDPHVSDFHV   6HQWHQFLDVFRQGLFLRQDOHV   
0RGRHVWULFWR\PRGRHVWiQGDUGH 6HQWHQFLDLI   
FRPSLODFLyQ   6HQWHQFLDLIHOVHLI   
9DULDEOHV   6HQWHQFLDVZLWFK   

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH
;,, &RQWHQLGR

(MHUFLFLR   (MHUFLFLR  
%XFOHVRFLFORV   (OLPLQDUXQREMHWRGHODOLVWDGH
6HQWHQFLDIRU  YLVXDOL]DFLyQ   
6HQWHQFLDIRULQ  (MHUFLFLR  
6HQWHQFLDIRUHDFKLQ  &yPRERUUDUXQHOHPHQWRVLQOD
(MHUFLFLR   UHIHUHQFLD  
1RWD   (MHUFLFLR  
6HQWHQFLDZKLOH  1RWD  
6HQWHQFLDGRZKLOH  &yPRHOLPLQDUDWRGRVORVKLMRVGHXQ
)XQFLRQHV  FRQWHQHGRU   
)XQFLRQHVJOREDOHV   (MHUFLFLR  
0pWRGRV 
&yPRPRYHUDORVKLMRVGHSURIXQGLGDG
)XQFLRQHVSHUVRQDOL]DGDV  
VHW&KLOG,QGH[   
/ODPDGRRLQYRFDFLyQGHXQDIXQFLyQ  
)XQFLRQHVGHXVXDULR  (MHPSOR   
)XQFLyQWLSRVHQWHQFLD  (MHPSOR  
(MHPSOR  
)XQFLRQHVWLSRH[SUHVLRQHV 
1RWD   &yPRPDQLSXODUXQREMHWRTXH\DH[LVWH
)XQFLRQHVTXHUHJUHVDQYDORUHV   HQHOHVFHQDULR  
)XQFLRQHVDQLGDGDV  (MHPSOR  
(MHUFLFLR   &yPROODPDUDXQREMHWRJUiILFR
3DVDUSDUiPHWURVSRUYDORUR GHODOLEUHUtD  
SRUUHIHUHQFLD  1RWD 
(MHUFLFLR   (MHPSOR  
9DORUHVSUHGHWHUPLQDGRVHQODV 1RWD 
IXQFLRQHV  &yPRHVFULELUFyGLJRGHQWURGHOREMHWR  
(OREMHWRDUJXPHQWV  $PDQHUDGHFRQFOXVLyQ 
(MHUFLFLR   &DStWXOR
(OSDUiPHWUR« UHVW  
0DQHMRGHHYHQWRV  
(MHUFLFLR  
1RWD   0DQHMRGHHYHQWRV 
¢4XpVRQORVHYHQWRV"  
(MHPSORSUiFWLFRXVRGHFRQGLFLRQDOHV 
1RWD 
(MHPSORSUiFWLFRXVRGHORVFLFORV 
(OHPHQWRVGHOPDQHMRGHHYHQWRV 
$PDQHUDGHFRQFOXVLyQ  
(MHPSORFRQJDWRV  
&DStWXOR 'HWHUPLQDUHOHYHQWR\VX
/DOLVWDGHYLVXDOL]DFLyQ   LGHQWLILFDGRU  
,QWURGXFFLyQ   1RWD 
1RWD   'HWHUPLQDUHOWLSRGHREMHWR
$xDGLUXQHOHPHQWRDODOLVWDGH GHOHYHQWR (YHQWREMHFW  
1RWD 
YLVXDOL]DFLyQ  
&UHDXQOLVWHQHUSDUDHOHYHQWR 
(MHUFLFLR  
1RWD 
(MHUFLFLR  
6XVFULELUHOREMHWRGHVWLQR
/LVWDGHYLVXDOL]DFLyQGHQWURGHXQ  WDUJHWREMHFW DOOLVWHQHU  
FRQWHQHGRU   1RWD 
1RWD   (VSHUDUDTXHODVFRVDVVXFHGDQ  
(MHUFLFLR   &UHDULQWHUDFFLRQHVGHOPRXVH  
1RWD   (MHUFLFLR 
&yPRUHSDUHQWDU UHSDUHQW REMHWRV 1RWD 
HQODOLVWDGHYLVXDOL]DFLyQ   (MHUFLFLR 

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD
&RQWHQLGR ;,,,

(MHUFLFLR  SDUDFUHDUXQDUUHJOR\QRJHQHUDUHO
$UUDVWUDU\VROWDUREMHWRVFRQHO ~OWLPRFXDGUR 
DSXQWDGRUGHOPRXVH *HQHUDUHODOJRULWPRSDUD´EDUDMDUµ
(MHUFLFLR  ORVFXDGURVGHODILJXUD  
*HVWLRQDUHOHYHQWRHQWHU)UDPH ¢&yPRVDEHPRVVLXQPRYLPLHQWR
1RWDV  HVYiOLGR"  
(MHUFLFLR  0RYHUODVSLH]DV  
5HVSRQGHUDHYHQWRVGHOPRXVH $PDQHUDGHFRQFOXVLyQ 
(MHUFLFLR 
&DStWXOR
5HVSRQGHUDHYHQWRVGHOWHFODGR
(MHUFLFLR 
7H[WR  
-XHJRGHPHPRULD ,QWURGXFFLyQ 
(VWDGRVGHODVFDUWDV )RUPDWRGHXQWH[WR 
&RGLILFDUODIXQFLyQGHOOLVWHQHU )RUPDWHRFRQODFODVH7H[W)LHOG  
$PDQHUDGHFRQFOXVLyQ  (MHUFLFLR 
)RUPDWRFRQ7H[W)RUPDW&ODVV  
&DStWXOR 1RWD 
&UHDUFODVHVYLVXDOHV (MHPSOR  
SHUVRQDOL]DGDV  )RUPDWRFRQ+70/ 
,QWURGXFFLyQ  (MHUFLFLR 
(MHUFLFLR  )RUPDWRFRQ&66 
1RWD  1RWD 
(MHUFLFLR  (MHUFLFLRIRUPDWRFRQ&66LQWHUQRV 
1RWD  (MHUFLFLRIRUPDWRFRQ&66H[WHUQRV 
&UHDUERWRQHVVHQFLOORV  7H[WRVGHHQWUDGD 
1RWD  (MHUFLFLR 
(MHPSOR (YHQWRVGHODVFDMDVGHWH[WR 
1RWD  (MHUFLFLR 
&DUJDULPiJHQHVH[WHUQDVHQ $PDQHUDGHFRQFOXVLyQ 
WLHPSRGHHMHFXFLyQODFODVH/RDGHU &DStWXOR
(MHPSOR
7H[WR  
(MHPSORHVFXFKDUDGLIHUHQWHV
HYHQWRVGHOSURJUHVRGHGHVFDUJD ,QWURGXFFLyQ 
GHXQDLPDJHQ  /DVEDVHV  
1RWD  &UHDUREMHWRV;0/FRQ$6  
(MHPSORSURJUHVRGHGHVFDUJD 1RWD 
GHXQDLPDJHQHQFDPSRWH[WR $xDGLUQRGRV;0/FRQ$6 
1RWD  $xDGLUDWULEXWRV;0/FRQ$6 
&DUJDUHLQWHUDFWXDUFRQSHOtFXODV %RUUDU\PRGLILFDUQRGRV\DWULEXWRV 
/HFWXUDGHXQDUFKLYR;0/ 
H[WHUQDV
(MHPSORGHVDUUROORGHXQMXHJR
(MHPSOR
GHWULYLD  
(MHPSOR
$PDQHUDGHFRQFOXVLyQ 
1RWD 
¢<ORVPDSDVGHELWV" &DStWXOR
/DFODVHIODVKJHRP5HFWDQJOH 7H[WR  
/DFODVHIODVKJHRP3RLQW ,QWURGXFFLyQ 
1RWD  0pWRGROLQH6W\OH  
&UHDFLyQGHXQURPSHFDEH]DV  1RWD 
(MHPSORURPSHFDEH]DVWLSR 0pWRGRPRYH7R  
FDMDGHQ~PHURV  0pWRGROLQH7R  
0RGLILFDUHODOJRULWPRGHFRUWDGR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH
;,9 &RQWHQLGR

(MHUFLFLRGLEXMDUGRVWULiQJXORV $FHOHUDFLyQ  
0pWRGRVEHJLQ)LOO \HQG)LOO  (MHPSOR  
(MHPSORFRQWRUQHDU\UHOOHQDU 2WURVPRYLPLHQWRV 
GRVWULiQJXORV (MHPSORPRYLPLHQWRHQIRUPD
0pWRGRVEHJLQ*UDGLHQW)LOO \ FLUFXODU  
HQG)LOO  (MHPSORPRYLPLHQWRHQIRUPD
(MHUFLFLRFXDGURFRQFRORUHV VHQRLGDO 
GHVYDQHFLGRV  (MHPSORPRYLPLHQWRRYDO  
0pWRGRGUDZ5HFW (MHPSORPRYLPLHQWRDOHDWRULR  
(MHUFLFLRGHILQLUOtQHDGHFRQWRUQR\WLSRGH (MHPSORPRYLPLHQWRDOFRPSiV
UHOOHQR GHOFXUVRU  
0pWRGRFXUYH7R  -XHJRFRQXQWDQTXHTXHXWLOL]D
(MHUFLFLRGLEXMDUXQDFXUYDDSDUWLUGH PRYLPLHQWRVDQJXODGRV 
WUHVSXQWRV  (OPRWRUGHOWDQTXH  
(MHUFLFLRFtUFXORDSDUWLUGHFXDWURFXUYDV  /DIXQFLyQWHFOD$EDMR  
/DIXQFLyQWHFOD$UULED 
(MHUFLFLRFtUFXORUHDOL]DGRFRQRFKR
0RYHUHOWDQTXH 
VHJPHQWRV
$YDQ]DUHOWDQTXH  
(MHUFLFLR  (MHPSORWDQTXHHVWiWLFR 
1RWD  0RYHUVHDXQDSRVLFLyQ  
0pWRGRGUDZ&LUFOH 
(ODUFRWDQJHQWH 
(MHUFLFLRFtUFXORFRQHOPpWRGRGUDZ&LUFOH  $PDQHUDGHFRQFOXVLyQ  
0pWRGROLQH*UDGLHQW6W\OH 
(MHUFLFLRFXDGURFRQGHJUDGDGRV
0pWRGRGUDZ(OLSVH 
(MHUFLFLRGLEXMDUXQDHOLSVH
0pWRGREHJLQ%LWPDS)LOO 
(MHUFLFLR 
0RYLPLHQWRGHVKDSHVFRQGLEXMRV
(MHUFLFLRGLEXMRGHXQDIXQFLyQVHQRLGDO
0pWRGRFOHDU 
(MHUFLFLR 
(MHPSORWUD]RGHXQDJUiILFDGHOtQHDV 
$PDQHUDGHFRQFOXVLyQ 
&DStWXOR
$QLPDFLyQFRQ$FWLRQ6FULSW 
,QWURGXFFLyQ 
(MHUFLFLR 
(MHUFLFLR 
0RYHUXQREMHWRDXQDFRRUGHQDGD
HVSHFtILFD 
(MHUFLFLR 
0RYHUXQREMHWRDXQDGLUHFFLyQ
GHWHUPLQDGD 
(MHPSOR
0RYHUXQREMHWRHQIRUPDFLUFXODU 
(MHPSOR
(DVLQJ
(MHPSOR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD



Introducción
$FWLRQ6FULSW KD HYROXFLRQDGR GH XQD IRUPD DVRPEURVD 'H VHU XQ FRQMXQWR GH
LQVWUXFFLRQHV VHQFLOODV SHUR TXH IXHURQ XQD PDUDYLOOD HQ VX PRPHQWR ¢UHFXHUGD
ORVFRPDQGRVIVFRPPDQG" KDVWDQXHVWURVGtDVTXHFRQWDPRVFRQXQDSODWDIRUPD
)ODVKODFXDOHVWiEDVDGDHQ$FWLRQ6FULSW
3DUWHGHOUHWRDOTXHVHKDHQIUHQWDGR)ODVKHVHOGHVHUYLUDGRVDPRVSRUXQ
ODGRDORVDUWLVWDVGHGLVHxRTXHQRVKDQVRUSUHQGLGRFRQVXLQJHQLR\SRUHORWURD
ORV GHVDUUROODGRUHV TXH GHVGH XQ SULQFLSLR YHtDQ D )ODVK FRPR XQ PHUR
HQWUHWHQLPLHQWR\D$FWLRQ6FULSWFRPRXQOHQJXDMH´PHQRUµ \HQPXFKRVFDVRVQLOR
FRQVLGHUDEDQXQOHQJXDMHVyORXQVFULSW &UHRTXHQRFDEHGXGDGHTXH)ODVKQR
HVHOPHMRUSDTXHWHSDUDHGLFLyQGHYLGHRQLSDUDODHGLFLyQGHPDSDVGHELWVQL
SDUDHOGLEXMRYHFWRULDOSHURFRQVLGHURTXHHVHOPHMRULQWHJUDGRUGHPHGLRV\TXH
SRVHHXQH[FHOHQWHOHQJXDMHSDUDODSURJUDPDFLyQPXOWLPHGLD$FWLRQ6FULSW
(VWRSODQWHDQXHYRVGLOHPDV¢SXHGHH[LVWLUXQGLVHxDGRUPXOWLPHGLDTXHQR
VHSD GH SURJUDPDFLyQ" 6HJ~Q $GREH ORV GLVHxDGRUHV TXH VH GHGLTXHQ D OD
PXOWLPHGLD GHEHUiQ SRVHHU FRQRFLPLHQWRV GH SURJUDPDFLyQ ¢+D YLVWR VROLFLWXGHV
GHWUDEDMRGRQGHSLGHQGLVHxDGRUHVFRQFRQRFLPLHQWRVGH-DYD6FULSW3+30\64/\
$FWLRQ6FULSW" $Vt TXH VL XVWHG HV GLVHxDGRU \ TXLHUH DSUHQGHU $FWLRQ6FULSW YD SRU
EXHQFDPLQR
8QDFDUDFWHUtVWLFDTXHKHYLVWRHQPLDFWLYLGDGGRFHQWHHVTXH$FWLRQ6FULSWGD
PLHGR«\$FWLRQ6FULSWGDSDYRU1DGDPiVHUUyQHR7RGRHOWLHPSRTXHLQYLHUWD
HQDSUHQGHUHVWDWHFQRORJtDOHVHUiGHHQRUPHXWLOLGDGHQVXYLGDSURIHVLRQDO
(V FLHUWR TXH 0DFURPHGLD \ DKRUD $GREH WRPDURQ GHFLVLRQHV DUULHVJDGDV
KDVWD FRQYHUWLU D )ODVK HQ XQD SODWDIRUPD GH GHVDUUROOR YLGHR \ PXOWLPHGLD
0XFKRVFXDQGRVDOLyODSULPHUDYHUVLyQGH$FWLRQ6FULSWHQ)ODVKGHFtDQTXHHUD
´LOyJLFRµ XQ SURJUDPD IRUPDO SDUD XQ SDTXHWH GH DQLPDFLyQ (O WLHPSR GHPRVWUy
TXHVHHTXLYRFDEDQ/XHJRVHDJUHJDURQFRPSRQHQWHV )ODVK0;\)ODVK0; 
\ QXHYDV YRFHV GLMHURQ TXH HUD ´LOyJLFRµ DJUHJDUOH D )ODVK KHUUDPLHQWDV GH
GHVDUUROOR)ODVKHUDSDUDDQLPDGRUHV$KRUDFRQHVWHQXHYRFDPELR$FWLRQ6FULSW
 KHPRV HVFXFKDGR YRFHV TXH GLFHQ TXH HV ´LOyJLFRµ XQ OHQJXDMH FRQ FODVHV
SROLPRUILVPR KHUHQFLDV \ HQFDSVXODFLyQ 'HVGH PL SXQWR GH YLVWD QXHYDPHQWH HO
WLHPSR OH GDUi OD UD]yQ D )ODVK 3RU HVR HO SULPHU FDStWXOR GH HVWH OLEUR VH OODPD
HYROXFLRQDURPRULU\GHHVDVYRFHVTXHDXJXUDQHOILQGH)ODVKVHJXUDPHQWHOHV
RFXUULUiORPLVPRTXHDORVGLQRVDXULRV
$SUHQGHU $FWLRQ6FULSW  QR VyOR OH VHUi GH XWLOLGDG SDUD KDFHU DSOLFDFLRQHV
PXOWLPHGLD VLQR WDPELpQ XWLOL]DU )OH[ $LU \ GHVDUUROOR HQ SODWDIRUPDV PyYLOHV FRQ
)ODVK/LWH(OFDPELRLPSOLFDXQDQXHYDIRUPDGHSHQVDU(VXQUHWRTXHYDOGUi
ODSHQDUHDOL]DU
(VWH OLEUR LQWHQWD TXH HVH VDOWR HYROXWLYR VHD OR PiV VHQFLOOR H LQGRORUR 
SRVLEOH &RPR GLFH XQ UHIUiQ RULHQWDO 3DUD SRGHU DSUHQGHU HV QHFHVDULR SULPHUR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH


´GHVDSUHQGHUµ(VWiHYROXFLyQVHGHEHHQ SDUWHD TXH ODFRPXQLGDGGHGHVDUUROOR


HQ $FWLRQ6FULSW KD PDGXUDGR /RV GHVDUUROORV PXOWLPHGLD KDQ HYROXFLRQDGR GH
´LQWURVµHQ,QWHUQHWDVLVWHPDVVRILVWLFDGRVMXHJRV\YHUGDGHUDVH[SHULHQFLDVSDUD
HOXVXDULRQRVyORHQFRPSXWDGRUDVVLQRWDPELpQHQWHOpIRQRVFHOXODUHV\WDEOHWDV
'HVDUUROOR HQ VLVWHPDV RSHUDWLYRV FRPR $QGURLG R 6\PELDQ  DEULUiQ QXHYDV
RSRUWXQLGDGHV\QXHYRVUHWRV
8QD GH ODV FRVDV TXH PH JXVWD GH ODV LQWURGXFFLRQHV D ORV OLEURV GH )ODVK \
$FWLRQ6FULSW HV HO HQWXVLDVPR (VSHUR KDEHU FRODERUDGR FRQ PL JUDQLWR GH DUHQD
SDUDTXHXVWHGDPDEOHOHFWRUDXPHQWHVXHQWXVLDVPRSRUHVWDWHFQRORJtD\TXHOH
D\XGH D SHUGHU HO PLHGR D OD SURJUDPDFLyQ RULHQWDGD D REMHWRV DVt FRPR ORV
SRNHPRQHV QHFHVLWDQ HYROXFLRQDU SDUD FRQWLQXDU OXFKDQGR QRVRWURV QHFHVLWDPRV
DSUHQGHU SDUD OR PLVPR OXFKDU HQ OD DUHQD FDGD YH] PiV FRPSHWLGD GH OD
PXOWLPHGLD

)UDQFLVFR-DYLHU$UFH$QJXLDQR


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


ActionScript 3.0.
Evolucionar o morir 1



1XHYD$90\QXHYR5HQGHU
/RV FDPELRV HQ $FWLRQ6FULSW VRQ LPSRUWDQWHV (Q JHQHUDO SXHGH GHFLUVH TXH HO
UHSURGXFWRU GH )ODVK HO )ODVK 3OD\HU FRQVWD GH XQ PRWRU TXH LQWHUSUHWD DO
$FWLRQ6FULSW $FWLRQ6FULSW 9LUWXDO 0DFKLQH R $90  \ GH RWUR TXH OR KDFH FRQ ORV
REMHWRVHQODSDQWDOOD 5HQGHU  $PERVHOHPHQWRVKDQ FDPELDGR\VLD HVWRVHOH
DxDGHHOKHFKRGHTXHKD\XQQXHYRPRGHORGHHYHQWRV

'HELGR D TXH OD IRUPD GH GHVDUUROODU \ GH SHQVDU  HQ )ODVK FDPELD
FRQVWDQWHPHQWHHVXQSUREOHPD´HQVHxDUµHVWHWLSRGHOHQJXDMH (Q HVWHOLEURVH
KD GHFLGLGR LQLFLDU FRQ OD H[SOLFDFLyQ GH OD QXHYD HVWUXFWXUD GHO OHQJXDMH
SURJUDPDFLyQ RULHQWDGD D REMHWRV  SDUD SRVWHULRUPHQWH DERUGDU OD QXHYD PDQHUD
GHUHLQWHUSUHWDUORVREMHWRV

$QWHV GH LQLFLDU FRQ HO WHPD VH KDUi XQ EUHYH UHSDVR GH OD KLVWRULD GH
$FWLRQ6FULSW

$FWLRQ6FULSW 
 /D SDWLQHWD $SDUHFH FRQ )ODVK  (UD XQ FRQMXQWR
UHODWLYDPHQWH UHGXFLGR GH FRPDQGRV TXH VH PDQHMDEDQ FRQ OLVWDV \
SDUiPHWURV 5HVXOWy XQD PDUDYLOOD HQ VXV WLHPSRV /RV XVXDULRV
´HPSXMDURQµDOOtPLWHHVWRVFRPDQGRV
$FWLRQ6FULSW 8Q DXWR FRPSDFWR $SDUHFLy HQ )ODVK  &RPSDWLEOH FRQ HO
HVWiQGDU(&0$(QFRPSDUDFLyQFRQHOOHQJXDMHDQWHULRUVHYHtDFRPR
XQ HQRUPH DYDQFH OR IXH  /RV XVXDULRV ´HPSXMDURQµ DO OtPLWH HVWH
OHQJXDMH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

        
3URJUDPDFLyQRULHQWDGDDREMHWRVFXHVWLyQGHJDWRV

$FWLRQ6FULSW
$FWLRQ6FULSW
W 8Q DXWR GHSRUWLYR (Q HVWD YHUVLyQ \D VH FRQWDED FRQ
KHUUDPLHQWDV PiV VyOLGDV GH SURJUDPDFLyQ RULHQWDGDV D REMHWRV DGHPiV
GHTXHHOOHQJXDMHPLVPRIXHUHHVFULWRSDUDKDFHUORPiVUiSLGR\SRWHQWH
1XHYDPHQWHORVXVXDULRV´HPSXMDURQµDOOtPLWHHVWHOHQJXDMH

$FWLRQ6FULSW 
 8Q SRWHQWH WUiLOHU $GREH HQWUHJD DKRUD XQ OHQJXDMH
FRPSOHWDPHQWH RULHQWDGR D REMHWRV OLVWR SDUD VRSRUWDU WRGD HVSHFLH GH
FDUJDKDFHUODUJRVUHFRUULGRV\EDMRFLHUWRVFDVRVPXFKRPiVUiSLGRTXH
HODQWHULRU/DSUHJXQWDHV¢FXiQWRWLHPSRWDUGDUiQORVXVXDULRVHQOOHYDU
DOOtPLWHHVWHOHQJXDMH"

$FWLRQ6FULSWPiVDOOiGH)ODVK6LELHQHVFLHUWRTXH$FWLRQ6FULSWLQLFLy
HQ HO OHMDQR )ODVK  DKRUD H[LVWHQ YDULRV SDTXHWHV GRQGH VH SXHGH
SURJUDPDUFRQHVWHOHQJXDMH)OH[)ODVK/LWH\$LU$FWLRQ6FULSWKDVDOLGRGH
VXFDMDSDUDFRQYHUWLUVHHQXQHVWiQGDUGHGHVDUUROOR


3URJUDPDFLyQRULHQWDGDDREMHWRVFXHVWLyQ 
GHJDWRV
/D SURJUDPDFLyQ RULHQWDGD D REMHWRV 223 2ULHQWHG 2EMHFWV 3URJUDPPLQJ  QR HV
QXHYDGHKHFKRHVPX\YLHMDSXHVGDWDGH\QRSDVyGHVHUXQH[SHULPHQWR
GH ODERUDWRULR 3RVWHULRUPHQWH VXV DXWRUHV 2OH -RKDQ 'DKO \ .ULVWHQ 1\JDDUG
QRUXHJRV ODQ]DURQ6,08/$6LVHUHFXHUGDORVOHQJXDMHVTXHVHXWLOL]DEDQ HQ
ODV FRPSXWDGRUDV GH SDQWDOODV YHUGHV HUDQ ´SURFHGXUDOHVµ HV GHFLU HVWDEDQ
EDVDGRVHQSURFHGLPLHQWRV$SDUWLUGHOVXUJLPLHQWRGHODVLQWHUIDFHVJUiILFDVSDUD
XVXDULRV *8,  OD QHFHVLGDG GH OHQJXDMHV RULHQWDGRV D REMHWRV QR KD
SURFHGLPLHQWRVIXHFDGDYH]PD\RU

)LQDOPHQWHHOGHVWLQRQRVDOFDQ]y$KRUDODSURJUDPDFLyQHQ)ODVKWLHQHTXH
RULHQWDUVHDREMHWRV$VtTXHFRPRGLMR3LNDFK~´HYROXFLRQDURPRULUµ3DUDTXHQR
VHDWDQGXURHOWUiQVLWRDHVWHOHQJXDMHVHLQLFLDUiFRQXQDDQDORJtDORVJDWRV

/DVFODVHVJDWRV

8QFRQFHSWRTXHWRGRVFRQRFHPRVHVODH[LVWHQFLDGHOUHLQRDQLPDO$ORVDQLPDOHV
VHOHVDJUXSDHQHVSHFLHV\VXEHVSHFLHV7yPHVHSRUHMHPSORDORVJDWRVFRPXQHV
DTXLHQHVVHOHVSRQGUiODHWLTXHWD´&ODVHµ$KRUDVHWLHQHXQDFODVHTXHVHOODPD
*DWRVRWUD3HUURV+iPVWHUHVHWF/RVJDWRVWLHQHQFDUDFWHUtVWLFDVGLIHUHQWHVDODV
GHPiVFODVHVSRUHVRVHVDEHTXHXQDQLPDOSHUWHQHFHDFLHUWRJpQHUR RFODVH 
7DPELpQWLHQHQDFFLRQHVTXHORVGHPiVDQLPDOHVQRSXHGHQKDFHUFRPRPDXOODUR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$FWLRQ6FULSW(YROXFLRQDURPRULU 

URQURQHDU $VLPLVPR KD\ FRVDV D TXH ORV JDWRV UHDFFLRQDQ \ HQ FDPELR ORV RWURV
DQLPDOHV QR 8QD FODVH QR HV RWUD FRVD TXH XQ FRQFHSWR DEVWUDFWR FRQ
FDUDFWHUtVWLFDV ~QLFDV TXH LQGLFD TXH XQ LQGLYLGXR SHUWHQHFH D FLHUWD ´FODVHµ GH
DQLPDOHV

$KRUDSLpQVHVHHQXQDQLPDOHQFRQFUHWR*DWLWReOHVEDMLWRVXSHORHVFRORU
EODQFRHVUHJRUGHWHWLHQHXQDYR]XQSRFRFKLOORQD\OHJXVWDPXFKRGRUPLU


2WURHVSpFLPHQGHOJUXSRGHORVJDWRVHV&KXFKRpOHVPiVDOWRTXH*DWLWR
WLHQHHOSHORJULV\HVPX\RFXUUHQWH

 $Vt VH SRGUtD VHJXLU GHVFULELHQGR D FDGD HOHPHQWR GHO JUXSR JDWRV DKRUD
SLHQVH HQ OD SDQGLOOD GH 'RQ *DWR (O SXQWR LPSRUWDQWH HV TXH FDGD PLQLQR WLHQH
VXV FDUDFWHUtVWLFDV ~QLFDV TXH ORV KDFH GLIHUHQWHV (Q 223 VH OHV OODPD D ODV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

  3URJUDPDFLyQRULHQWDGDDREMHWRVFXHVWLyQGHJDWRV
      

FDUDFWHUtVWLFDV GH FDGD LQGLYLGXR SURSLHGDGHV D ODV DFFLRQHV TXH VRQ YHUERV  VH
OHVFRQRFHFRPRPpWRGRV$GHPiVDODVPDQHUDVGHUHDFFLRQDUDQWHXQSUREOHPD
VH OHV GHQRPLQD HYHQWRV PLHQWUDV TXH D ORV LQGLYLGXRV VH OHV LGHQWLILFD FRPR
LQVWDQFLDV3RQLHQGRORDQWHULRUHQ$FWLRQ6FULSWVHHVFULEHQDVt

var gatito:Gato = new Gato();


gatito.pelo = “blanco”;
gatito.voz = “Chillona”;
gatito.maullar()

(QUHVXPHQXQDFODVHHVXQDUHSUHVHQWDFLyQDEVWUDFWDTXHFRQWLHQHSURSLHGDGHV
PpWRGRV \ PDQHMDGRUHV GH HYHQWRV DOJXQR GH HVWRV WUHV  SDUD FUHDU REMHWRV R
LQVWDQFLDVORVFXDOHVKHUHGDQODVSURSLHGDGHVPpWRGRV\PDQHMDGRUHVGHHYHQWRV
GHODFODVH

2EYLDPHQWHHOWHPDGHODSURJUDPDFLyQRULHQWDGDDREMHWRV \DORVJDWRV HV
PXFKR PiV FRPSOHMR TXH OR TXH DTXt VH GHVFULELy 6H WUDWD VRODPHQWH GH XQD
DQDORJtDGHWUDEDMRFRQODFXDOVHSUHWHQGHHMHPSOLILFDUWpUPLQRVDEVWUDFWRV

$QWHVGHHPSH]DUDUHDOL]DUREUDVGHDUWHHQ)ODVK\HQ$FWLRQ6FULSWVHGHEHUi
FRQRFHUXQDVHULHLPSRUWDQWHGHFRQFHSWRV(VQHFHVDULRSHGLUDOOHFWRUTXHQRVH
GHVHVSHUH\DTXHWRGRHOFRQRFLPLHQWRTXHDGTXLHUDYDOGUiODSHQD

&XHVWLyQGHVLQWD[LV

$QWHVGHDERUGDUDOJXQRVDVSHFWRVGHODSURJUDPDFLyQRULHQWDGDDREMHWRVGHEHQ
UHYLVDUVHDOJXQRVSXQWRVUHODFLRQDGRVFRQODVLQWD[LVGHOOHQJXDMH
 $6GLVWLQJXHHQWUHPD\~VFXODV\PLQ~VFXODV
 (ORSHUDGRUSXQWR  SHUPLWHDFFHGHUDODVSURSLHGDGHV\PpWRGRVGHORV
REMHWRV
 (Q$6\DQRVHDFHSWDODVLQWD[LVGHGLDJRQDOHV
 8QDOLWHUDOHVXQYDORUTXHDSDUHFHHQHOFyGLJRSRUHMHPSOR´+RODµ
WUXH
 (OSXQWR\FRPD  LQGLFDTXHVHWHUPLQDXQDVHQWHQFLD
 /RVFRPHQWDULRVGHOtQHD GREOHGLDJRQDO \GHEORTXH    VH
PDQWLHQHQ
 /DVSDODEUDVUHVHUYDGDVHQ$6VRQ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$FWLRQ6FULSW(YROXFLRQDURPRULU 


DV EUHDN FDVH FDWFK
FODVV FRQVW FRQWLQXH GHIDXOW
GHOHWH GR HOVH H[WHQGV
IDOVH ILQDOO\ IRU IXQFWLRQ
LI LPSOHPHQWV LPSRUW LQ
LQVWDQFHRI LQWHUIDFH LQWHUQDO LV
QDWLYH QHZ QXOO SDFNDJH
SULYDWH SURWHFWHG SXEOLF UHWXUQ
VXSHU VZLWFK WKLV WKURZ
WR WUXH WU\ W\SHRI
XVH YDU YRLG ZKLOH
ZLWK   


7,3'(&(57,),&$&,Ð1

3UHJXQWD¢&DVH6HQVLWLYHHVXQDFDUDFWHUtVWLFDGH$6"
5HVSXHVWD$FWLRQ6FULSWHV&DVH6HQVLWLYHHVGHFLUGLVWLQJXHHQWUH
PD\~VFXODV\PLQ~VFXODV

¢'yQGHLQLFLDU"

3ULPHUR ODV FODVHV VH HVFULEHQ HQ DUFKLYRV GH WH[WR H[WHUQRV 3DUD HOOR VH SXHGH
XWLOL]DU OD KHUUDPLHQWD GH )ODVK XQ SURFHVDGRU WLSR 'UHDPZHDYHU )OH[ R XQ
SURFHVDGRU GH WH[WR TXH QR GHMH FDUDFWHUHV HVSHFLDOHV SRU OR TXH DTXt VH DVXPH
TXHHOXVXDULRORKDUiSRUPHGLRGHO,'(GH)ODVK$VtTXHVLJXLHQGRODWUDGLFLyQGH
.HUQLJKDQ 5LWFKLH 7KH&3URJUDPPLQJ/DQJXDJH VHUHDOL]DHOWUDGLFLRQDO
´+HOOR:RUOGµ

7,3'(&(57,),&$&,Ð1

3UHJXQWD¢(Q$6VHSHUPLWHFDSWXUDUFyGLJRHQORVFOLSVGHSHOtFXODR0RYLH
&OLSV"
5HVSXHVWD(QHVWDYHUVLyQ\DQRVHSXHGH


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

        
3URJUDPDFLyQRULHQWDGDDREMHWRVFXHVWLyQGHJDWRV

(OFDVFDUyQ

/D SURJUDPDFLyQ RULHQWDGD D REMHWRV GH $FWLRQ6FULSW WHQGUi HQ OD YHUVLyQ  XQ
QXHYR FDVFDUyQ TXH DJUXSDUi ODV FODVHV OD VHQWHQFLD SDFNDJH
SDFNDJH R XQ SDTXHWH (Q
$6ORVSDTXHWHVHUDQFDUSHWDVGRQGHVHJXDUGDEDQODVFODVHVHVGHFLUHVSDFLRV
ItVLFRV HQ QXHVWUR GLVFR GXUR (Q $6 ORV SDTXHWHV SDFNDJH  VHUiQ HQWLGDGHV
OyJLFDVTXHDJUXSDQGLIHUHQWHVFODVHV6XVLQWD[LVEiVLFDHV

package {
… aquí van las diferentes clases
}


(VWHEORTXHGHFyGLJRVHUiFRQRFLGRFRPRSDTXHWHSRURPLVLyQ GHIDXOWSDFNDJH 
6H SXHGH GHFLU TXH XQ SDTXHWH VHUYLUi SDUD RUJDQL]DU \ DJUXSDU FODVHV /RV
SDTXHWHVSHUPLWLUiQFRPSDUWLUFyGLJR\HYLWDUORVFRQIOLFWRVHQODVQRPHQFODWXUDVGH
FODVHVPpWRGRV\SURSLHGDGHV
(OPDQHMRGHORVSDTXHWHVSXHGHVHUPiVFRPSOHMR(QHVWHPRPHQWRVyORVH
OHFRQVLGHUDUiFRPRXQDDJUXSDFLyQGHFODVHV

7,3'(&(57,),&$&,Ð1

3UHJXQWD¢&XiOHVHOFRQWHQHGRUTXHQRVVLUYHSDUDDOPDFHQDUODVFODVHV"
5HVSXHVWD8QSDTXHWH SDFNDJH 

8Q SDTXHWH HVWi UHODFLRQDGR FRQ XQ QDPHVSDFH DOJXQRV WH[WRV OR WUDGXFHQ
FRPR ´HVSDFLRV GH QRPEUHVµ SHUR DTXt VH VHJXLUi FRQVHUYDQGR HO WpUPLQR HQ
LQJOpV FRQFHSWRTXHVHH[SOLFDUiPiVDGHODQWH
$VtTXHVHDEUH)ODVK\VHVHOHFFLRQDXQDUFKLYRQXHYRWLSR$6DOFXDOVH
OHQRPEUDMHORXIOD(QHVWHDUFKLYRVHOHOODPDODFODVH-HORXSDUDHOVDOXGR
$KRUD VH DEUH XQ DUFKLYR QXHYR WLSR $6 FRQ )LOH
)LOH!1HZ
!1HZ!$FWLRQ6FULSW )LOH
)LOH DO
FXDO VH OH JUDED FRQ HO QRPEUH -HORXDV
-HORXDV (Q HO SDQHO GH DFFLRQHV VH HVFULEH OD
GHILQLFLyQGHOSDTXHWH

package {
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$FWLRQ6FULSW(YROXFLRQDURPRULU 

1RWD

(Q&6VHWLHQHQQXHYDVRSFLRQHVHQODYHQWDQD1XHYRVGRFXPHQWRV&UHDUXQDFODVH
\&UHDUXQDLQWHUIDFHFRPRVHYHHQOD)LJ


)LJXUD1XHYDVRSFLRQHVHQ)ODVK3URIHVVLRQDO&6
)LJXUD

 8QDUFKLYRGHWLSR$FWLRQ6FULSW&ODVVHVFULELUiSRUQRVRWURVODHVWUXFWXUDGH
ODFODVHFRPRVHREVHUYDHQOD)LJ


)LJXUD$UFKLYRGHFODVHHQ)ODVK3URIHVVLRQDO&6
)LJXUD

(QRWUDVYHUVLRQHVEDVWDUiFRQHVFULELUHOFyGLJR

 'HPRPHQWRDPERV DUFKLYRVWDQWRHOIODFRPR HO DVGHEHUiQ UHVLGLU HQ OD
PLVPDFDUSHWD1yWHVHTXHQRVHOHKDSXHVWRQRPEUHDOSDTXHWH$FRQWLQXDFLyQVH
HODERUDODFODVH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

        
3URJUDPDFLyQRULHQWDGDDREMHWRVFXHVWLyQGHJDWRV

/RVHOHPHQWRVGHODFODVH

'HQWURGHOFDVFDUyQGHOSDTXHWHVHHVFULEHODHVWUXFWXUDGHODFODVHGHODVLJXLHQWH
PDQHUD

package {
public class Jelou {
}

6HREVHUYDUiTXHDOLQLFLRVHWLHQHUHVHUYDGDODSDODEUD´SXEOLFµ$HVWDVSDODEUDV
FODYHV VH OHV FRQRFH FRPR PRGLILFDGRUHV GH DFFHVR
DFFHVR R DFFHVV PRGLILHUV /RV
PRGLILFDGRUHVVRQSDODEUDVSDUDGHWHUPLQDUVLHOFyGLJRTXHVHHVFULEHSXHGHVHU
DFFHVDGR XWLOL]DGR SRURWURFyGLJRRVLQRVHWHQGUiHODFFHVR(QHVWHFDVRSXEOLF
SHUPLWLUiHODFFHVRGHFXDOTXLHUFyGLJRH[WHUQRDODFODVHHVGHFLUFXDOTXLHUFyGLJR
SRGUi XWLOL]DU VXV PpWRGRVHYHQWRV \ SURSLHGDGHV (VWH PRGLILFDGRU GH DFFHVR DO
LJXDO TXH SULYDWH VH XWLOL]DURQ HQ $6 (Q OD QXHYD YHUVLyQ VH WLHQHQ GRV
PRGLILFDGRUHVPiV/D7DEODGHVFULEHORVFXDWURPRGLILFDGRUHVGHDFFHVR
7DEOD0RGLILFDGRUHVGHDFFHVR
7DEOD 
MODIFICADOR
DESCRIPCIÓN
DE ACCESO
public Se puede acceder a este código desde cualquier otro.
private Sólo se puede acceder al código dentro de la clase.
internal El atributo internal es similar al control de acceso predeter-
minado en Java, aunque en Java no hay ningún nombre
explícito para este nivel de acceso y sólo se puede alcanzar
mediante la omisión de cualquier otro modificador de acceso.
El atributo internal está disponible en ActionScript 3.0 para
ofrecer la opción de indicar, de manera explícita, la intención
de hacer que una propiedad sólo sea visible para orígenes de
llamada de su propio paquete.
protected Hace que una propiedad esté visible para los orígenes de
llamada en su propia clase o en una subclase. Es decir, una
propiedad protegida está disponible en su propia clase o para
clases de nivel inferior en la jerarquía de herencia. Esto se
cumple tanto si la subclase está en el mismo paquete como si
está en un paquete diferente.

3HUR QR KD\ PRWLYRV SDUD DQJXVWLDUVH SXHV GH PRPHQWR VyOR VH XWLOL]DUi HO
PRGLILFDGRU GH DFFHVR ´SXEOLFµ PLHQWUDV TXH ORV GHPiV PRGLILFDGRUHV VH
H[SOLFDUiQPiVDGHODQWH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$FWLRQ6FULSW(YROXFLRQDURPRULU 

/DVHJXQGDSDUWHGHODVHQWHQFLDHVFODVVFODVVODFXDOLQGLFDDOFRPSLODGRUTXHVH
FODVV
HVWiHVFULELHQGRXQDFODVH3RU~OWLPRVHHVFULEHHOQRPEUHGHODFODVH2EVpUYHVH
TXHODSDODEUDLQLFLDFRQPD\~VFXODORFXDOHVREOLJDWRULRSDUDGHILQLUFODVHVSXHV
GH OR FRQWUDULR HO FRPSLODGRU QR HQFRQWUDUi OD GHILQLFLyQ GH OD FODVH \ PDUFDUi XQ
HUURU

1yWHVHWDPELpQTXHODGHILQLFLyQGHODFODVHQRWHUPLQDFRQSDUpQWHVLVFRPR
HQHOFDVRGHODVIXQFLRQHV6LVHFRPSLODHQHVWHPRPHQWRHOGRFXPHQWR)ODVKQR
GHEH PDUFDU QLQJ~Q HUURU SHUR WDPSRFR HIHFWXDU DOJR 3DUD HOOR VH QHFHVLWD XQ
SRFRPiVGHFyGLJR

/DIXQFLyQFRQVWUXFWRUD

6LVHWLHQHH[SHULHQFLDHQHOXVRGH$6VHHVWDUiIDPLOLDUL]DGRFRQHOXVRGHORV
FRQVWUXFWRUHV3RUHMHPSOR

var nombres_array:Array = new Array();


var libro:Object = new Object();

'HVSXpVGHODSDODEUDUHVHUYDGDQHZVHXWLOL]DHOQRPEUHGHODFODVHVHJXLGDGHORV
SDUpQWHVLVeVWDHVODIXQFLyQFRQVWUXFWRUD
/DV IXQFLRQHV FRQVWUXFWRUDV GHEHQ WHQHU H[DFWDPHQWH HO PLVPR QRPEUH TXH
ODFODVH LQFOX\HQGRODSULPHUDOHWUDHQPD\~VFXODV 7DPELpQHVQHFHVDULRHVFULELU
VXPRGLILFDGRUGHDFFHVRHQHVWHFDVRSXEOLF

package {
public class Jelou {
public function Jelou(){
}
}

(Q $6 ODV IXQFLRQHV FRQVWUXFWRUDV R FRQVWUXFWRUHV  SRU RPLVLyQ VRQ S~EOLFDV \
QRSXHGHQWHQHURWURPRGLILFDGRUGHDFFHVR6LQHPEDUJRQRHVWiSRUGHPiVVHU
H[SOtFLWR\HVFULELUODFRQHOPRGLILFDGRUSXEOLF

(Q HVWH SXQWR VH KD UHDOL]DGR XQD IXQFLyQ TXH VHUYLUi SDUD TXH QXHVWURV
XVXDULRVFUHHQXQREMHWRGHQXHVWUDFODVH(QFDVRGHTXHVHRPLWDHVFULELUODFODVH
FRQVWUXFWRUDHOFRPSLODGRUFUHDUiXQDIXQFLyQYDFtD SDUHFLGDDODTXHVHDFDEDGH
KDFHU 

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

  3URJUDPDFLyQRULHQWDGDDREMHWRVFXHVWLyQGHJDWRV

/DIXQFLyQFRQVWUXFWRUDSXHGHUHFLELUSDUiPHWURVRGLVSDUDUFLHUWDVDFFLRQHV
(VWRV SDUiPHWURV VH GLVSDUDQ HQ HO PRPHQWR HQ TXH VH HODERUDQ ORV REMHWRV 'H
PRPHQWRVyORVHHVFULELUiODVLJXLHQWHVHQWHQFLD


package {
public class Jelou {
public function Jelou(){
trace(“Constructora de Jelou”);
}
}
}

2EVpUYHVHTXHHQHVWHFDVRHOQRPEUHGHODIXQFLyQVtOOHYDORVSDUpQWHVLV/DFODVH
HVWiOLVWDSDUDXWLOL]DUVHDXQTXHHQUHDOLGDGKDFHPX\SRFDFRVD

/ODPDUDODFODVH

6LVHFRPSLODHOGRFXPHQWR)ODVKQRGHEHUiPDQGDUQLQJ~QPHQVDMHGHHUURUSHUR
QR KDFH DEVROXWDPHQWH QDGD 3DUD HOOR VH GHEH FUHDU XQ REMHWR GH OD FODVH -HORX
&iPELHVHDOSDQHOGHDFFLRQHVGHODSHOtFXODMHORXIODSULPHUIRWRJUDPDFODYH(QpO
HVFUtEDVHHOVLJXLHQWHFyGLJR

var saludo:Jelou = new Jelou();



3XEOtTXHVH HO GRFXPHQWR (Q OD YHQWDQD GH VDOLGD TXH VH PXHVWUD HQ OD )LJ 
GHEHDSDUHFHU


)LJXUD9HQWDQDGHVDOLGD
)LJXUD
6LQRVHLPSRUWyODFODVH\WDPSRFRHVXQDFODVHLQWHUQD¢FyPRIXQFLRQy"

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD
$FWLRQ6FULSW(YROXFLRQDURPRULU 

&ODVV3DWK

(OHMHPSORDQWHULRUIXQFLRQySRUTXHHQODYHQWDQDGHGLiORJR&ODVV3DWK
&ODVV3DWKVHOHKDEtD
&ODVV3DWK
LQGLFDGR D )ODVK TXH EXVFDUD ODV FODVHV HQ HO PLVPR GLUHFWRULR GRQGH UHVLGH HO
GRFXPHQWR IOD (VWR SXHGH REVHUYDUVH HQ (GLW
(GLW!3UHIHUHQFHV
!3UHIHUHQFHV!$FWLRQ6FULSW
!$FWLRQ6FULSW 3&V  R
HQ)ODVK
)ODVK
)ODVK!3UHIHUHQFHV
!3UHIHUHQFHV!$FWLRQ6FULSW 0DFV (QODSDUWHEDMDGHODYHQWDQDGHOD)LJ
!$FWLRQ6FULSW
KD\XQERWyQSDUDHQWUDUDO&ODVV3DWK

)LJXUD
)LJXUD9HQWDQDGHGLiORJR3UHIHUHQFHV
3~OVHVHHVWHERWyQ\VHDEULUiODYHQWDQDGHGLiORJRFRUUHVSRQGLHQWHFRPRVH
DSUHFLDHQOD)LJ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 3URJUDPDFLyQRULHQWDGDDREMHWRVFXHVWLyQGHJDWRV

)LJXUD
)LJXUD9HQWDQDGHGLiORJR$FWLRQ6FULSW6HWWLQJV

(QHOODVHREVHUYDQGRVOtQHDV/DSULPHUD HVXQSXQWRHOFXDOLQGLFD TXH HO
SULPHU OXJDU GRQGH HO FRPSLODGRU EXVFDUi ORV DUFKLYRV GH ODV FODVHV HV HO PLVPR
GLUHFWRULR GRQGH UHVLGH OD SHOtFXOD HVR VLJQLILFD HO SXQWLWR  /D VHJXQGD OtQHD HV
GRQGH )ODVK JXDUGD ORV DUFKLYRV GH FODVH (VWD UXWD HVWi UHSUHVHQWDGD SRU
 $SS&RQILJ  (O YDORU GH OD UXWD YDULDUi VL HVWi HQ 3& FDUFKLYRV GH
SURJUDPD$GREH$GREH )ODVK &6HQ&RQILJXUDWLRQ  R HQ 0DF  $ SDUWLU GH HVWH
SXQWREXVFDUtDQODFDUSHWD$FWLRQ6FULSW\GHQWURGHpVWDODFDUSHWD&ODVVHV

¢4XpSDVDUtDVLVHFDPELDODFODVHGHFDUSHWDVLQDYLVDUOHD)ODVK"'HQWURGHO
GLUHFWRULR GH VX SHOtFXOD VH FUHD XQD FDUSHWD TXH VH OODPH PLV&ODVHV
PLV&ODVHV $VHJ~UHVH
TXH HO DUFKLYR -HORXDV VH HQFXHQWUH FHUUDGR \ PXpYDVH HO DUFKLYR DV D HVWD
FDUSHWD6HYXHOYHDFRPSLODUHOSURJUDPD\GHEHUiDSDUHFHUHQHOSDQHOGHHUURUHV
PHQVDMHVVLPLODUHVDORVTXHVHPXHVWUDQHQOD)LJ


)LJXUD
)LJXUD0HQVDMHVGHHUURU

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

  
$FWLRQ6FULSW(YROXFLRQDURPRULU 


3DUD QRWLILFDUOH D )ODVK TXH OD FODVH VH PRYLy R TXH QR VH HQFXHQWUD HQ HO
&ODVV3DWK VHQHFHVLWDXQDVHQWHQFLDLPSRUWLPSRUW
LPSRUW

6HQWHQFLDLPSRUW

3ULPHUR FRPR OD XELFDFLyQ GHO DUFKLYR GH FODVHV VH FDPELy GH ODV FDUSHWDV GHO
&ODVV3DWKVHGHEHHVFULELUHQODVHQWHQFLD SDFNDJHODXELFDFLyQHVGHFLUDEULUHO
SDFNDJH
DUFKLYR-HORXDV\DxDGLUODXELFDFLyQGHODUFKLYRFRPRVHLQGLFD


package misClases {
public class Jelou {
public function Jelou() {
trace("Constructor Jelou");
}
}
}


/D SDODEUD PLV&ODVHV


PLV&ODVHV VH UHILHUH D OD FDUSHWD \ VHUi DKRUD HO QRPEUH GH OD FODVH
1yWHVH TXH ORV QRPEUHV GH ORV SDTXHWHV DVt FRPR GHORV GLUHFWRULRV VH HVFULEHQ
FRQ OD SULPHUD OHWUD HQ PLQ~VFXOD 3RU VX SDUWH ODV FODVHV VH HVFULEHQ FRQ OD
SULPHUDOHWUDHQPD\~VFXOD
$KRUDVHQHFHVLWDXWLOL]DUODVHQWHQFLDLPSRUW
LPSRUW\DTXHODFODVHQRVHHQFXHQWUD
LPSRUW
HQHO&ODVV3DWKHVGHFLUHQHODUFKLYRIODVHDxDGHODVLJXLHQWHVHQWHQFLD


import misClases.Jelou;
var saludo:Jelou = new Jelou();


6HHMHFXWDHOGRFXPHQWR)ODVK(OUHVXOWDGRGHEHVHUHOPLVPR

3URSLHGDGHV\PpWRGRV

+DVWD HO PRPHQWR OD FODVH FUHDGD QR KDFH QDGD 6yOR PDQGD XQ PHQVDMH WUDFH
WUDFH
FXDQGRVHFUHDHO REMHWR3DUDTXHODVFRVDVVXFHGDQ VHQHFHVLWDQORVPpWRGRV \
ODVSURSLHGDGHV&RPRVHPHQFLRQyDQWHULRUPHQWHXQDSURSLHGDGHVXQDYDULDEOH
DVRFLDGDDXQREMHWR$VLPLVPRXQPpWRGRHVXQDIXQFLyQDVRFLDGDDXQREMHWRHV
GHFLUGHQWURGHODFODVHQRVRQRWUDFRVDTXHYDULDEOHV\IXQFLRQHVSHURFXDQGRVH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 3URJUDPDFLyQRULHQWDGDDREMHWRVFXHVWLyQGHJDWRV

OODPDQGHVGHDIXHUDVHFRQYLHUWHQHQSURSLHGDGHV\PpWRGRVUHVSHFWLYDPHQWH(Q
HODUFKLYR-HORXDVVHPRGLILFDHOFyGLJRSDUDTXHTXHGHGHODVLJXLHQWHIRUPD

package misClases {
public class Jelou {
public var saludo:String;

public function Jelou(arg1:String) {


saludo=arg1;
}

public function hola(arg1:String){


return saludo+", "+arg1;
}
}
}

(Q OD WHUFHUD OtQHD VH FUHD XQD YDULDEOH S~EOLFD OODPDGD VDOXGR
VDOXGR GH WLSR FDGHQD
2EVpUYHVH TXH QR VH OH KD LQLFLDOL]DGR VyOR VH OH KD FUHDGR (Q OD IXQFLyQ
FRQVWUXFWRUD VH HVWi UHFLELHQGR XQD FDGHQD OD PLVPDTXH VH YDFLy HQ OD YDULDEOH
DQWHULRU 3RU ~OWLPR VH FUHD XQD IXQFLyQ S~EOLFD TXH VH OODPD GH PDQHUD PX\
RULJLQDO  KROD
KROD eVWD D VX YH] UHFLEH XQ DUJXPHQWR GH WLSR FDGHQD /R ~QLFR TXH
KDFHHVWDIXQFLyQHVFRQFDWHQDUODVFDGHQDVGHVDOXGRFRQHODUJXPHQWRPiVXQD
FRPDFRQXQHVSDFLR
'HQWURGHO,'(GH)ODVKDKRUDVHKDFHQXQRVSHTXHxRVFDPELRV

import misClases.Jelou;
var saludo:Jelou = new Jelou("Buenos días");
trace(saludo.hola("Paco"));

/DSULPHUDOtQHDHVHOLPSRUW
LPSRUWSDUDODFODVH1RKD\FDPELR(QODVHJXQGDOtQHDVH
LPSRUW
FUHD HO REMHWR SHUR VH OH HVWi SDVDQGR XQ DUJXPHQWR TXH VH JXDUGD HQ HO
SDUiPHWURVDOXGR
VDOXGR(QODOtQHDWUHVVHOHOODPDDOPpWRGRVDOXGR
VDOXGR VDOXGR FRQHOSDUiPHWUR
VDOXGR
´3DFRµFRQORFXDOVHREWLHQHHOUHVXOWDGRTXHVHPXHVWUDHQOD)LJ

)LJXUD
)LJXUD6DOXGR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$FWLRQ6FULSW(YROXFLRQDURPRULU 

6RQPXFKDVOtQHDVGHFyGLJRSDUDXQVLPSOHVDOXGR¢QR"3RFRDSRFRVHLUi
HQFRQWUDQGRORVEHQHILFLRVGH$6VREUHWRGRFXDQGRVHUHDOLFHQSUR\HFWRVPiV
FRPSOHMRV
3DUD WHUPLQDU FRQ HVWD LQWURGXFFLyQ DO OHQJXDMH VH DERUGDUiQ GRV WHPDV
WDPELpQPX\LPSRUWDQWHVODKHUHQFLD\ODVVXEFODVHV

+HUHQFLD

,PDJtQHVH TXH XQ GtD DOJXLHQ DPDQHFH FRQ HO GRQ GH KDFHU OR TXH GHVHH FRQ ODV
HVSHFLHV GHO UHLQR DQLPDO DVt TXH GHFLGH FUHDU D ORV ´JDWRV YRODGRUHVµ $XQTXH
FXHQWDFRQSRGHUHVLOLPLWDGRVQRYDDKDFHUDORVJDWRVYRODGRUHVDSDUWLUGHFHUR
\D TXHFXHQWDFRQXQDHVSHFLHGH ´JDWRVµSRU OR TXH VyORKD\TXHDJUHJDUOHVODV
SURSLHGDGHV FDUDFWHUtVWLFDV  \ DFFLRQHV PpWRGRV  D GLFKD FODVH SDUD FUHDU XQD
QXHYDFODVHDQLPDO
(QWUH ODV QXHYDV FDUDFWHUtVWLFDV \ DFFLRQHV GH ORV JDWRV YRODGRUHV SRGUtDQ
GHVWDFDU FDGDVHUFRQHOGRQGHWUDQVIRUPDFLyQGHORVDQLPDOHVSXHGHVHOHFFLRQDU
VXVSURSLRVFDPELRV 
NUEVAS CARACTERÍSTICAS (PROPIEDADES) NUEVAS ACCIONES (MÉTODOS)
7DPDxRGHODVDODV 9RODU 
&RORUGHODVDODV $WHUUL]DU 
9HORFLGDG 3ODQHDU 

$GHPiV HVD SHUVRQD QR VyOR WLHQH HO SRGHU GH FDPELDU D ODV HVSHFLHV
DQLPDOHVDVXDQWRMRVLQRTXHWLHQHWDPELpQDFFHVRDVXFyGLJRDVtTXHSXHGHYHU
OD FODVH *DWRV FRPR OD VLJXLHQWH WRPDQGR HQ FXHQWD TXH HVWH SRGHURVR
3URJUDPDGRUXWLOL]y$6 

package {
public class Gatos{
public var vidas:Number = 8;
public var colorPelo:String;
public function maullar(){
//…
}
public function ronronear(){
//..
}
}
}


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

       
3URJUDPDFLyQRULHQWDGDDREMHWRVFXHVWLyQGHJDWRV

$KRUDWLHQHTXHHVFULELUODQXHYDFODVHGHODVLJXLHQWHPDQHUD

package {
public class GatosVoladores extends Gatos{
public var alas:String = “grandes”;
public var colorAlas:String = “negras”;
public var velocidad:Number = 1000;

public function volar(){


//…
}
public function planear(){
//..
}
public function aterrizar(){
//..
}

}
}

2EVpUYHVH TXH OD FODYH SDUD TXH ORV JDWRV YRODGRUHV KHUHGHQ ODV SURSLHGDGHV \
PpWRGRVGHORVJDWRVRUGLQDULRVIXHODSDODEUDH[WHQGV
H[WHQGVHVGHFLUH[WHQGLyDODFODVH
H[WHQGV
*DWRV9RODGRUHV D OD FODVH *DWRV 8QD YH] FRQFOXLGD VX REUD ORV PRUWDOHV SXHGHQ
XWLOL]DUODQXHYDFODVHGHODVLJXLHQWHIRUPD

var gatito:GatosVoladores = new GatosVoladores();


benito.volar()
benito.ronronear()
benito.maullar()
//etc.

1yWHVH TXH OD LQVWDQFLD JDWLWR
JDWLWR SRGUi KDFHU WDQWR ODV DFFLRQHV GH ORV *DWRV
2UGLQDULRVFRPRGHORV*DWRV9RODGRUHV$HVWRVHOHOODPD+HUHQFLD

2YHUULGH

6XSyQJDVHDKRUDTXHORVJDWRVYRODGRUHVURQURQHDQGHXQPRGRGLIHUHQWH\SRGUtD
GHFLUVHTXHWLHQHQXQDJXGtVLPRVRQLGRSHURORVJDWRVRUGLQDULRVURQURQHDQGHOD
PLVPDIRUPDHQTXHORKDQKHFKRSRUVLJORVGHPDQHUDTXHQRVHSXHGHPRGLILFDU
ODUXWLQDGHOSURJUDPDGRURULJLQDODVtTXHVHWHQGUiTXHVREUHHVFULELUODHQODQXHYD
FODVH 3DUD HOOR VH XWLOL]D HO PRGLILFDGRU RYHUULGH
RYHUULGH HO FXDO UHHVFULEH OD IRUPD GH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$FWLRQ6FULSW(YROXFLRQDURPRULU 

URQURQHDU GH ORV *DWRV 9RODGRUHV VLQ DIHFWDU D ORV *DWRV 2UGLQDULRV /D VHQWHQFLD
VHUtDDSUR[LPDGDPHQWHODVLJXLHQWH

package {
public class GatosVoladores extends Gatos{
//...
override public ronronear(){
//...
}
}
}


7,3'(&(57,),&$&,Ð1

(QHOH[DPHQGHFHUWLILFDFLyQ$&(WDPELpQWHSUHJXQWDUiQVREUHHORYHUULGHHQOD
UHODFLyQFODVHV~SHUFODVH

(MHPSORSUiFWLFR
9ROYLHQGR DO SULPHU HMHPSOR HO GH +HOOR :RUOG VH DEUH XQ DUFKLYR $FWLRQ6FULSW
QXHYRVHOHQRPEUDFRPR*RGED\\VHJXDUGDHQODFDUSHWDPLV&ODVHVPLV&ODVHV(QHOSDQHO
PLV&ODVHV
GHDFFLRQHVVHHVFULEHHOVLJXLHQWHFyGLJR


package misClases {
public class Godbay extends Jelou{
public function adios() {
return “Adios desde Godbay”;
}

}
}

,JXDOTXHHQHOHMHPSORGH ORVJDWRVODFODYHHQHVWH HMHUFLFLRVHHQFXHQWUD HQ HO
H[WHQGV
H[WHQGV HO FXDO KDUi TXH OD SURSLHGDG KROD
KROD GH OD FODVH -HORX VHD KHUHGDGD D ORV
REMHWRVGHODFODVH*RGED\

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHPSORSUiFWLFR

2EVpUYHVH TXH DXQTXH ODV FODVHV UDGLFDQ HQ DUFKLYRV GLIHUHQWHV WLHQHQ HO
PLVPRQRPEUHGHSDTXHWHSHURGHEHQGHUDGLFDUHQODPLVPDFDUSHWD PLV&ODVHV 
 8Q SDTXHWH SXHGH WHQHU YDULRV DUFKLYRV SHUR XQD FODVH VyOR SXHGH WHQHU
XQR 7DPELpQ VH KDEUi QRWDGR TXH QR VH XWLOL]D QLQJXQD VHQWHQFLD LPSRUW
LPSRUW \D TXH
DPEDVFODVHVUHVLGHQHQHOPLVPRSDTXHWH

$KRUDGHVGHHODUFKLYRMHORXIOD
MHORXIODVHPRGLILFDHOFyGLJRSRUHOVLJXLHQWH
MHORXIOD

import misClases.*;
//
var saludo:Jelou = new Jelou();
trace(saludo.hola());
//
var despedida:Godbay = new Godbay();
trace("//");
trace(despedida.hola())
trace(despedida.adios());

2EVpUYHVH TXH HQ OD SULPHUD OtQHD VH XWLOL]D HO DVWHULVFR FRQ HO FXDO VH LPSRUWDQ
WRGDVODVFODVHVS~EOLFDVGHOSDTXHWHHQHVWHFDVRODVFODVHV-HORX -HORX\*RGED\
-HORX *RGED\TXHVH
*RGED\
HQFXHQWUDQHQPLV&ODVHV
3RVWHULRUPHQWHVHKDFHXQDLQVWDQFLDGHODFODVH-HORX
-HORX(QODVLJXLHQWHOtQHDVH
-HORX
OODPDDOPpWRGRKROD
KROD 1yWHVHTXHVHXWLOL]DODQRWDFLyQSXQWRSDUDHOOR GRWV\QWD[ 
KROD
HVGHFLUSULPHURHOQRPEUHGHOREMHWRRLQVWDQFLDSRVWHULRUPHQWHXQSXQWR\OXHJR
HOPpWRGR
(QODVVLJXLHQWHVOtQHDVVHFUHDXQDLQVWDQFLDGHODFODVH*RGED\
*RGED\1yWHVHTXH
*RGED\
VHHVWiOODPDQGRDOPLVPRPpWRGRKRODKRODTXHIXHFUHDGRHQODFODVH-HORX
KROD -HORXHVGHFLU
-HORX
IXHKHUHGDGRGHXQDFODVHDRWUD6LVHHMHFXWDHOGRFXPHQWRGH)ODVKMHORXIODVH
GHEHUiWHQHUHQHOSDQHOGHVDOLGDHOUHVXOWDGRTXHVHREVHUYDHQOD)LJ


)LJXUD+HUHQFLD
)LJXUD
2EYLDPHQWHHVWHHMHPSORHVPX\VHQFLOOR(QVHJXLGDVHYHUiFyPRKHUHGDUODV
SURSLHGDGHV\PpWRGRVGHXQDFODVH\DHVWDEOHFLGDGHQWURGH)ODVK 

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$FWLRQ6FULSW(YROXFLRQDURPRULU 

8QDVXEFODVHGH0RYLH&OLS6SULWH
(Q $6 VH WLHQH XQD QXHYD FODVH 6SULWH TXH HV XQ 0RYLH&OLS SHUR VLQ OtQHD GH
WLHPSRODFXDOWLHQHODPD\RUtDGHODVFDUDFWHUtVWLFDV\DFRQRFLGDVSHURPiVOLJHUD
1RWLHQHHTXLYDOHQWHHQHO,'(GH)ODVK
6L VH HVFULEH XQD FODVH \ VH OH ´H[WLHQGHµ D XQD FODVH 0RYLH&OLS R 6SULWH
KHUHGDUi WRGRV ORV PpWRGRV \ SURSLHGDGHV GH ODV PLVPDV (V GHFLU VL VH HVWi
GHVDUUROODQGR XQ MXHJR GH JDWRV VH SXHGH GHWHUPLQDU TXH ODV SURSLHGDGHV VRQ
YLGDVFRORU3HORYHORFLGDGVDOWR\YDORU/DVDFFLRQHVTXHSXHGHUHDOL]DUHQHOMXHJR
VRQVDOWDUFRUUHUDWUDSDU5DWRQPRULU/RVJDWLWRVWHQGUiQVXSDUWHYLVXDO \QRVH
QHFHVLWDUiOtQHDGHWLHPSRDVtTXHODFODVH6SULWHUHVXOWDH[FHOHQWH(OHVTXHOHWRGH
HVWDFODVHJDWRVSRGUtDVHU


package {
import flash.display.Sprite;

public class Gato extend Sprite{


private var vidas:Number = 8;
private var colorPelo:String = “Negro”;
private var velocidad:Number = 100;
private var salto:Number = 3;
private var valor:Number = 10;

public function saltar():void{


}

public function correr():void{


}

public function atraparRaton():void{


}

public function morir():void{


}
}
}

1yWHVHTXHHVQHFHVDULRLPSRUWDUODFODVHDQWHVGHODGHILQLFLyQGHODFODVHSURSLD
/RPLVPRSURFHGHUtDVLODFODVH*DWRVHH[WHQGLHUDDODFODVH0RYLH&OLS


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &ODVHGHGRFXPHQWRRGRFXPHQWFODVV

7,3'(&(57,),&$&,Ð1

3UHJXQWD¢$FXiOHVFODVHVVHGHEHH[WHQGHUXQ'RFXPHQW&ODVV"
5HVSXHVWD0RYLH&OLSR6SULWH

$KRUD VH H[SOLFDUi XQ QXHYR \ IXQGDPHQWDO FRQFHSWR HQ $6 OD FODVH GH
GRFXPHQWR

&ODVHGHGRFXPHQWRRGRFXPHQWFODVV
(Q HVWH SXQWR \D WHQHPRV OD LQIRUPDFLyQ QHFHVDULD SDUD LQFRUSRUDU HO'RFXPHQWR
GHFODVH HVWHWpUPLQRHVFRPRHVWiWUDGXFLGR HQHO,'(HQHVSDxRO  (VWHWLSRGH
GRFXPHQWRHVXQDFODVHTXHHVWiH[WHQGLGDDODFODVH6SULWHR0RYLH&OLS(VWDFODVH
GHEH VHU S~EOLFD /DV UHVWDQWHV SXHGHQ VHU S~EOLFDV SULYDGDV R LQWHUQDV $ HVWD
FODVH VH OH FRQRFHUi FRPR FODVH SULQFLSDO PDLQ FODVV  &XDQGR VH UHSURGXFH HO
6:) HO FRQVWUXFWRU GH OD FODVH SULQFLSDO VHUi HMHFXWDGR (V GHFLU VHUYLUi FRPR
SXQWRGHSDUWLGDSDUDQXHVWUDDSOLFDFLyQ

7,3'(&(57,),&$&,Ð1

(OFRQFHSWRGH'RFXPHQW&ODVVWLHQHPXFKRSHVRHQHOH[DPHQGHFHUWLILFDFLyQ
$&(+D\DOPHQRVWUHVSUHJXQWDVUHODFLRQDGDV(VLPSRUWDQWHTXHORGRPLQHV


(QHO,'(GH)ODVK&6HVWDFODVHHVRSFLRQDOGHKHFKR\DVH KDFRPSLODGR
6:)VLQGHILQLUODFODVHSULQFLSDO6LQHPEDUJRHVXQDEXHQDSUiFWLFDVLHPSUHSDUWLU
GHOFRQVWUXFWRUGHODFODVHSULQFLSDO9pDVHHOVLJXLHQWHHMHPSOR
6HDEUHXQQXHYRGRFXPHQWR)ODVK$6\VHOHQRPEUDMHORXIOD6HDEUHXQ
DUFKLYR GH $FWLRQ6FULSW \ VH JXDUGD FRQ HO QRPEUH GH -HORXDV HQ OD FDUSHWD
PLV&ODVHV ODOHWUDHQPD\~VFXODGHODUFKLYRHVQHFHVDULD (QHODUFKLYR-HORXDV
VHHVFULEHHOVLJXLHQWHFyGLJR


package misClases {
import flash.display.Sprite;

public class Jelou2 extends Sprite{


public function Jelou2 ():void {
inicio();
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$FWLRQ6FULSW(YROXFLRQDURPRULU 

private function inicio():void {
trace("Hello World");
}
}
}

3ULPHUR VH GHILQH HO SDTXHWH GHQWUR GH PLV&ODVHV HO DUFKLYR GHEH GH LU HQ HVD
FDUSHWD  (Q OD VLJXLHQWH OtQHD VH LPSRUWD D OD FODVH 6SULWH 2EVpUYHVH TXH HVWi
GHQWURGHOSDTXHWHSHURIXHUDGHODGHILQLFLyQGHODFODVH/DFODVH-HORXSRUVHU
OD FODVH SULQFLSDO GHEH VHU S~EOLFD \ H[WHQGLGD D 6SULWH R 0RYLH&OLS 'HVSXpV GH
HVWRVHHQFXHQWUDODIXQFLyQFRQVWUXFWRUD FRQHOPLVPRQRPEUHTXHODFODVH\FRQ
ODSULPHUDOHWUDHQPD\~VFXOD (VWDIXQFLyQVyOROODPDDODUXWLQDLQLFLR2EVpUYHVH
TXH ODUXWLQDLQLFLRVRODPHQWHWLHQHXQDOtQHD HQ HVWH HMHPSOR 1RHVXQDEXHQD
SUiFWLFDLQWURGXFLUPXFKRFyGLJRHQODIXQFLyQFRQVWUXFWRUD/DIXQFLyQLQLFLR LQLFLRFRPR
LQLFLR
VHSXHGHYHUHVWiPDUFDGDFRPRSULYDGD SULYDGDHVGHFLUHOXVXDULRQRSXHGHDFFHGHUD
SULYDGD
HOODPiVTXHSRUODIXQFLyQFRQVWUXFWRUD
$OHMHFXWDUHOGRFXPHQWR-HORXIODVHREVHUYDUiTXHHQODSDQWDOODGHVDOLGD
DSDUHFHUiHOOHJHQGDULR+HOOR:RUOG
&RQ HVWH HMHPSOR FRQFOX\H HO SULPHU DFHUFDPLHQWR D OD SURJUDPDFLyQ
RULHQWDGDDREMHWRVDXQTXHHOFDPLQRHVD~QODUJRYDOHODSHQDUHFRUUHUOR3RUHOOR
VH SURIXQGL]DUi PiV HQ OD SURJUDPDFLyQ RULHQWDGD D REMHWRV DQWHV GH DERUGDU HO
QXHYRPRGHORGHHYHQWRV\HO'LVSOD\/LVW

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 $PDQHUDGHFRQFOXVLyQ



$PDQHUDGHFRQFOXVLyQ

8QD FODVH HV XQD UHSUHVHQWDFLyQ DEVWUDFWD TXH FRQWLHQH SURSLHGDGHV PpWRGRV \
PDQHMDGRUHVGHHYHQWRV DOJXQRGHHVWRVWUHV SDUDFUHDUREMHWRVRLQVWDQFLDVORV
FXDOHVKHUHGDQODVSURSLHGDGHVPpWRGRV\PDQHMDGRUHVGHHYHQWRVGHODFODVH
(VIXQGDPHQWDOTXHVHDSUHQGDODHVWUXFWXUDEiVLFDGHODVFODVHV\DTXHHVR
QRV SHUPLWLUi DSURYHFKDU $FWLRQ6FULSW  D VX Pi[LPR (Q HO SUy[LPR FDStWXOR
DQDOL]DUHPRVXQSRFRPiVGH ODSURJUDPDFLyQRULHQWDGDDREMHWRV\ODVYDULDEOHV
XQFRQFHSWRIXQGDPHQWDOHQODSURJUDPDFLyQ
/DV FODVHV VH HVFULEHQ HQ DUFKLYRV GH WH[WR H[WHUQRV SRU OR TXH HV
UHFRPHQGDEOHHPSOHDUXQSURFHVDGRUGHWH[WRTXHQRGHMHFDUDFWHUHVHVSHFLDOHV
/DVFDUDFWHUtVWLFDVEiVLFDVGHODVLQWD[LVGHOOHQJXDMHVRQ
 $6GLVWLQJXHHQWUHPD\~VFXODV\PLQ~VFXODV
 (ORSHUDGRUSXQWR  SHUPLWHDFFHGHUDODVSURSLHGDGHV\PpWRGRVGHORV
REMHWRV
 (Q$6\DQRVHDFHSWDODVLQWD[LVGHGLDJRQDOHV
 8QDOLWHUDOHVXQYDORUTXHDSDUHFHHQHOFyGLJRSRUHMHPSOR´+RODµ
WUXH
 (OSXQWR\FRPD  LQGLFDTXHVHWHUPLQDXQDVHQWHQFLD
 /RVFRPHQWDULRVGHOtQHD GREOHGLDJRQDO \GHEORTXH    VH
PDQWLHQHQ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


Algo más sobre


programación orientada
a objetos
2



,QWURGXFFLyQ
'HELGR D TXH HO WHPD GH OD SURJUDPDFLyQ RULHQWDGD D REMHWRV HV PX\ H[WHQVR HQ
HVWHFDStWXORVHH[SOLFDFRQPiVGHWDOOHSDUDOXHJRSDVDUDOWHPDIXQGDPHQWDOGH
ODVYDULDEOHV\ORVRSHUDGRUHV

3DTXHWHV SDFNDJHV 

• 8QDUFKLYRSXHGHFRQWHQHUYDULDVFODVHVSHURVyORXQDHVS~EOLFD
• /DVGHPiVFODVHVGHQWURGHOSDTXHWHQRGHEHUiQVHUS~EOLFDVORTXHQRODV
KDFHDFFHVLEOHVSDUDFyGLJRIXHUDGHHVHDUFKLYR
• (OQRPEUHGHODFODVHS~EOLFDGHOSDTXHWHGHEHFRLQFLGLUFRQHOQRPEUHGHO
DUFKLYR/DVGHPiVFODVHVREYLDPHQWHQR
• /RV SDTXHWHV SXHGHQ FRQWHQHU DOJR PiV TXH FODVHV VH SXHGH GHFODUDU
YDULDEOHV IXQFLRQHV \ QDPHVSDFHV LQFOXVR VHQWHQFLDV HMHFXWDEOHV  HQ HO
´QLYHOVXSHULRUµGHOSDTXHWH
• 6LVHGHFODUDQIXQFLRQHVYDULDEOHVRQDPHVSDFHVORV~QLFRVPRGLILFDGRUHV
GHDFFHVRVRQSXEOLFHLQWHUQDO
• 6yOR XQR GH ORV HOHPHQWRV LQFOX\HQGR ODV FODVHV SXHGH WHQHU HO
PRGLILFDGRUSXEOLF
• /RVSDTXHWHVVHSXHGHQDQLGDU

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QWURGXFFLyQ

1RVHGHEHFRQIXQGLUHOWpUPLQRGHKHUHQFLD
KHUHQFLDFRQXQSDTXHWH$XQTXHH[LVWDQ
KHUHQFLD
YDULDVFODVHVHQXQPLVPRDUFKLYRItVLFRHVRQRLPSOLFDTXHVXVPpWRGRV
SURSLHGDGHV\PDQHMDGRUHVGHHYHQWRVVHFRPSDUWDQ KHUHGHQ /RPLVPR
DSOLFDDORVSDTXHWHVDQLGDGRVQRKD\QLQJXQDUHODFLyQGHKHUHQFLDHQWUHHOORV

,PSRUWDUSDTXHWHV

6L VH GHVHD XWLOL]DU XQD FODVH TXH QR VH HQFXHQWUH HQ HO PLVPR GLUHFWRULR TXH OD
SHOtFXODIODVHGHEHLPSRUWDU
(QODPHGLGDGHORSRVLEOHGHEHHYLWDUVHHOXVRGHODVWHULVFR SDUDLPSRUWDU
FODVHV\DTXHHVRVyORHOHYDODSRVLELOLGDGGHFRQIOLFWRVHQODVQRPHQFODWXUDV+D\
TXHVHUORPiVHVSHFtILFRSRVLEOH
(VXQDEXHQDSUiFWLFDLQFOXLUODUXWDGHORVSDTXHWHVHQHO&ODVV3DWKSDUDTXH
ODFRPSLODFLyQVHDPiVUiSLGD

7,3'(&(57,),&$&,Ð1

3UHJXQWD¢&XiOHVODIRUPDGHFRPSDUWLUGLIHUHQWHVSDTXHWHVHQGLIHUHQWHVSUR\HFWRV"
5HVSXHVWD&UHDQGRXQFODVVSDWKGHVGHORVSUR\HFWRVKDFLDORVSDTXHWHV

3RU GHIDXOW HO PRGLILFDGRU GH DFFHVR GH XQD FODVH GHQWUR GH XQ SDTXHWH HV
LQWHUQDO 3DUD KDFHUOD S~EOLFD KD\ TXH XWLOL]DU H[SOtFLWDPHQWH HO PRGLILFDGRU GH
DFFHVRSXEOLF1RVHSXHGHGHFODUDUXQSDTXHWHFRPRSXEOLF

7,3'(&(57,),&$&,Ð1

3UHJXQWD¢&XiOHVPRGLILFDGRUSRUGHIDXOWGHXQDFODVH"
5HVSXHVWD(VLQWHUQDO\QRSXEOLFFRPRHQRWURVOHQJXDMHV



/D GLUHFWLYD GHO FRPSLODGRU LQFOXGH D GLIHUHQFLD TXH HQ & QR IXQFLRQD
SDUDLPSRUWDUFODVHV(Q$6VyORODVHQWHQFLDLPSRUW
LPSRUWIXQFLRQDSDUDHVHSURSyVLWR
LPSRUW

1RPEUHVGHHVSDFLRVRQDPHVSDFHV

/RVQDPHVSDFHVFRQWURODQODYLVLELOLGDGGHODVFODVHVPpWRGRV\SURSLHGDGHV/RV
PRGLILFDGRUHV GH DFFHVR TXH VH KDQ UHYLVDGR KDVWD HO PRPHQWR SXEOLF LQWHUQDO
SULYDWH\SURWHFWHGVRQQDPHVSDFHV\DLQFRUSRUDGRVDOOHQJXDMH
6L HVWRV PRGLILFDGRUHV GH DFFHVR QR VH DGDSWDQ D ODV QHFHVLGDGHV GH
SURJUDPDFLyQVHSXHGHQFUHDUQDPHVSDFHVSURSLRV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV 

3RU HMHPSOR ODV SURSLHGDGHV \ ORV PpWRGRV VLHPSUH WLHQHQ XQ QDPHVSDFH
DXQTXHQRVHYHDQRQRVHKD\DQHVFULWR(Q$6GHQWURGHODVFODVHVVLQRHVWi
HVSHFLILFDGRHOQRPEUHGHHVSDFLRVHDGRSWDUiSRUGHIDXOWHOYDORULQWHUQDO
3DUD HO XVR GH ORV QRPEUHV GH HVSDFLRV VH GHEHQ VHJXLU ORV VLJXLHQWHV WUHV
SDVRV
 'HILQLUHOQDPHVSDFHFRQODSDODEUDUHVHUYDGDQDPHVSDFH3RUHMHPSORHO
VLJXLHQWHFyGLJRGHILQHXQQRPEUHGHHVSDFLRQRPEUH

QDPHVSDFHQRPEUH

 3XHGHXWLOL]DUVHHOQXHYRQDPHVSDFHHQOXJDUGHOPRGLILFDGRUGHDFFHVRHQ
XQDGHFODUDFLyQGHSURSLHGDGRGHPpWRGR3RUHMHPSOR

QRPEUHIXQFWLRQPL)XQFLRQ ^
`

 3RU ~OWLPR XQD YH] DSOLFDGR HO QDPHVSDFH VH SXHGH KDFHU UHIHUHQFLD DO
PLVPR FRQ OD SDODEUD UHVHUYDGD XVH R FDOLILFDQGR HO QRPEUH GH XQ
LGHQWLILFDGRUFRQXQQDPHVSDFH3RUHMHPSOR

XVHQDPHVSDFHQRPEUH
PL)XQFLRQ 

2WUDIRUPDGHOODPDUORHVSRUPHGLRGHOQRPEUHFRPSOHWRSRUHMHPSOR
QRPEUHPL)XQFLRQ 

0RGRHVWULFWR\PRGRHVWiQGDUGHFRPSLODFLyQ

(QORTXHD$6VHUHILHUHHQ)ODVK&6H[LVWHQGLIHUHQWHVPRGRVGHFRPSLODFLyQ
FRPRVHPXHVWUDDFRQWLQXDFLyQ
6HHQWUDD)LOH
)LOH
)LOH!3XEOLVK6HWWLQJV(QODSHVWDxDGH)ODVKVLHVWiVHOHFFLRQDGD
!3XEOLVK6HWWLQJV
OD RSFLyQ GH $FWLRQ6FULSW  VH SXOVD HO ERWyQ GHO ODGR GHUHFKR ´6HWWLQJV«µ \
HQVHJXLGDVHGHVSOLHJDODVLJXLHQWHYHQWDQDHPHUJHQWH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QWURGXFFLyQ

)LJXUD&RQILJXUDFLyQGHO$FWLRQ6FULSW
)LJXUD

/DSULPHUDRSFLyQHVHO 'RFXPHQWRGHFODVHHOFXDOHVLJXDODOGHO3DQHOGH
'RFXPHQWRGHFODVH
SURSLHGDGHV6LVHSXOVDHOVtPERORGHYHULILFDFLyQ ODSDORPLWD )ODVKYHULILFDUiOD
H[LVWHQFLD GH OD FODVH &RQ HO ERWyQ GH OiSL] )ODVK DEULUi VL HV TXH QR HVWi \D
DELHUWD ODFODVHGHOGRFXPHQWR
(O FDPSR GH ([SRUW FODVVHV LQ IUDPH WHQGUi FRPR SUHGHWHUPLQDGR HO SULPHU
IRWRJUDPDSHURSXHGHPRGLILFDUVH
'HQWUR GH OD FDWHJRUtD GH HUURUHV VH WLHQHQ HO PRGR GH FRPSLODFLyQ HVWULFWD
6WULFW0RGH \HOPRGRGHPHQVDMHVGHDOHUWD :DUQLQJV0RGH (QHOPRGRHVWULFWR
QR SHUPLWLUi JHQHUDU HO 6:) VL H[LVWH Q  DOJ~Q RV  PHQVDMH V  GH DOHUWD SXHV ORV
WRPDUiFRPRHUURUHV
(QPRGRGHDOHUWD :DUQLQJPRGH JHQHUDUiDOJXQRVPHQVDMHVGHDOHUWDVREUH
ODFRPSDWLELOLGDGHQWUH$6\$6
6LHPSUH HV UHFRPHQGDEOH WUDEDMDU HQ PRGR HVWULFWR \ FRQ ORV PHQVDMHV GH
DGYHUWHQFLD :DUQLQJV DFWLYRV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV 

9DULDEOHV
/DV YDULDEOHV VRQ FRQWHQHGRUHV GRQGH VH SXHGH DOPDFHQDU R UHFXSHUDU LQIRUPD
FLyQ(Q$6HOXVRGHODSDODEUDFODYHYDUHUDXQDEXHQDSUiFWLFD\RSFLRQDOSHUR
REOLJDWRULRVLTXLHUHWLSLILFDUDODYDULDEOH(QFDPELRHQ$6HVREOLJDWRULRXWLOL]DU
ODVHQWHQFLDYDU
6L VH RPLWH OD VHQWHQFLD YDU SDUD OD FUHDFLyQ GH XQD YDULDEOH HO FRPSLODGRU
HQYLDUi XQ PHQVDMH GH HUURU VL VH HQFXHQWUD HQ PRGR HVWULFWR  \ XQ HUURU FXDQGR
HMHFXWHVXSHOtFXOD
7DPELpQ VH GHEH LQGLFDU HO WLSR GH GDWRV TXH DOPDFHQDUi OD YDULDEOH DO
PRPHQWR GH GHFODUDUOD 6H SXHGH KDFHU OD GHFODUDFLyQ VLQ LQGLFDU HO WLSR GH GDWR
SHURHOFRPSLODGRUHQYLDUiXQHUURUVLVHHQFXHQWUDHQPRGRHVWULFWR
3DUD DVLJQDU HO WLSR GH YDULDEOH VRQ QHFHVDULRV ORV GRV SXQWRV GHVSXpV GHO
QRPEUHGHODPLVPDSRUHMHPSOR
YDUQRPEUH*DWR6WULQJ
YDUQXP9LGDV1XPEHU
YDUJDWR9RODGRU%ROHDQ

/DDVLJQDFLyQGHYDORUHVVHSXHGHKDFHUHQIRUPDVLPXOWiQHDDODGHFODUDFLyQFRQ
HORSHUDGRULJXDO´ µRKDFHUODDVLJQDFLyQSRVWHULRUPHQWHDODGHFODUDFLyQHVGHFLU

YDUQRPEUH*DWR6WULQJ ´%HQLWR%RGRTXHµ
YDUQXP9LGDV1XPEHU 
YDUJDWR9RODGRU%ROHDQ

JDWR9RODGRU IDOVH

2VHSXHGHGHFODUDUPiVGHXQDYDULDEOHDODYH]
YDU[1XPEHU\1XPEHUDOSKD1XPEHU
$VLPLVPRVHSXHGHDVLJQDUYDORUHVHQODPLVPDVHQWHQFLDYDUSRUHMHPSOR
YDU[1XPEHU \1XPEHU DOSKD1XPEHU 

3HUR QR VH SRGUiQ KDFHU DVLJQDFLRQHV VLPXOWiQHDV GH QLQJXQD GH ODV VLJXLHQWHV
IRUPDV
YDU[1XPEHU \1XPEHU 
YDU[ \ 

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 9DULDEOHV

$XQTXH DJUXSDU YDULDV GHFODUDFLRQHV QR PDUFD HUURU GH FRPSLODFLyQ QR HV
XQDSUiFWLFDUHFRPHQGDEOHSXHVKDFHHOFyGLJRPiVFRPSOHMR\GLItFLOGHPDQWHQHU

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6\VHJXDUGDHQODFDUSHWDGHWUDEDMRFRPR
YDULDEOHVIOD


• (QHOSDQHOGH3XEOLVK6HWWLQJVHQHOERWyQGH6HWWLQJVGH$6VHYHULILFD
TXHHVWpQVHOHFFLRQDGDVODVRSFLRQHVGHFRPSLODFLyQHQPRGRHVWULFWR\GH
PHQVDMHVGHDOHUWD


• 6HDEUHXQDUFKLYR$FWLRQ6FULSW\VHJXDUGDFRQHOQRPEUHGH9DULDEOHVDV
HQODFDUSHWDPLV&ODVHV


• (Q HO DUFKLYR GH $FWLRQ6FULSW VH HVFULEH HO VLJXLHQWH FyGLJR GH XQD FODVH
YDFtD VLQIXQFLyQFRQVWUXFWRUD 


SDFNDJHPLV&ODVHV^
SXEOLFFODVV9DULDEOHV^
`
`


'HQWURGHODFODVHVHHVFULEHQODVVLJXLHQWHVVHQWHQFLDV



QXP9LGDV 


• 6HJXDUGDHODUFKLYRDV\VHHMHFXWDODYHULILFDFLyQGHVLQWD[LV ODSDORPLWD
D]XO  eVWD GHEHUi LQGLFDU TXH QR KD\ HUURUHV /D DVLJQDFLyQ HV
VLQWiFWLFDPHQWHFRUUHFWDDXQTXHQRWHQJDODSDODEUDUHVHUYDGDYDU


• $KRUDVHFDPELDDODUFKLYRIOD(QHOSDQHOGHSURSLHGDGHVVHHVFULEHHQHO
FDPSR'RFXPHQW&ODVV
'RFXPHQW&ODVVODOLJDDODFODVHHVGHFLUPLV&ODVHV9DULDEOHV
'RFXPHQW&ODVV PLV&ODVHV9DULDEOHV
PLV&ODVHV9DULDEOHV


• 6H HMHFXWD OD SHOtFXOD FRQ >&WUO@  >(QWHU@ 6H REVHUYDUi TXH HO FRPSLODGRU
HQYtDXQPHQVDMHGHHUURU


• $KRUDVHGHVDFWLYDHOPRGRHVWULFWR\VHYXHOYHDFRPSLODU1yWHVHTXH HO
PHQVDMHGHHUURU\DQRDSDUHFH$XQTXHDSULPHUDYLVWDSXGLHUDSHQVDUVH
TXH HVR HV EXHQR HV PHMRU TXH HO FRPSLODGRU LQGLTXH ORV HUURUHV TXH VH
FRPHWHQ
• 6H YXHOYHQ D HQFHQGHU ORV SDUiPHWURV GH 0RGR HVWULFWR \ GH 0RGR GH
DOHUWD


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV 

• 6LVHHQFXHQWUDHQODYLVWDGHODUFKLYRIODVHSXHGHVDOWDUKDFLDHODUFKLYR
GHODFODVHFRQHOERWRQFLWRFRQHOOiSL]TXHVHHQFXHQWUDDODGHUHFKDGHO
FDPSR'RFXPHQW&ODVV VLpVWHQRVHHQFXHQWUDDELHUWR)ODVKORDEULUi 


• (QWRQFHVVHFDPELDODOtQHDGHDVLJQDFLyQSRUODVLJXLHQWH



YDUQXP9LGDV



• $XQTXH\DVHXWLOL]yODSDODEUDUHVHUYDGDYDUD~QQRVHKDGHILQLGRXQWLSR
GH GDWRV 6H JXDUGD HO DUFKLYR DV \ VH HMHFXWD OD SHOtFXOD IOD HQ 0RGR
HVWULFWR\VLQ0RGRHVWULFWR$HVWDYDULDEOHVHOHOODPD´VLQWLSRµ$XQTXHVH
SHUPLWHHQ$6QRHVXQDEXHQDSUiFWLFDKDFHUOR


• 6H UHJUHVD DO DUFKLYR DV \ VH VXVWLWX\H OD OtQHD GH OD YDULDEOH SRU OD
VLJXLHQWHHQGRQGHVHKDFHODGHFODUDFLyQGHYDULDVYDULDEOHVHQODPLVPD
OtQHD



YDU QXP9LGDV1XPEHU  FRORU3HOR6WULQJ  QHJUR JDWR9RODGRU%RROHDQ 


IDOVH




• 6H JXDUGD HO DUFKLYR \ VH UHJUHVD DO DUFKLYR IOD 6H FRPSLOD HO DUFKLYR HQ
PRGR HVWULFWR 1R GHEHUi DSDUHFHU PHQVDMH GH HUURU $XQTXH VH SHUPLWH
HVWDIRUPDGHFRGLILFDFLyQWDPSRFRHVUHFRPHQGDEOH


• )LQDOPHQWH VH UHJUHVD DO DUFKLYR GH OD FODVH \ VH FDPELD OD OtQHD DQWHULRU
SRUODVLJXLHQWH




YDUQXP9LGDV1XPEHU QXP*DWRV1XPEHU QXP3HUURV1XPEHU 





• 6HVDOYDHODUFKLYRDVVHUHJUHVDDODSHOtFXODIOD\VHHMHFXWD$XQTXHVH
SHUPLWH HVWD IRUPD GH FRGLILFDU HQ YHUVLRQHV DQWHULRUHV GH $6 HQ HVWD
YHUVLyQHOFRPSLODGRUHQYLDUiXQPHQVDMHGHHUURU
• 6HVDOYDQDPERVDUFKLYRVSDUDVHUXWLOL]DGRVHQHOVLJXLHQWHHMHUFLFLR

ÉPELWRRDOFDQFHGHODVYDULDEOHV

(OiPELWRRDOFDQFHGHODYDULDEOHHVOD]RQDHQODTXHDSDUHFH´YLVLEOHµHVGHFLUVH
OH SXHGH DVLJQDU R UHFXSHUDU OD LQIRUPDFLyQ GHQWUR GHO FyGLJR (Q $6 ODV
YDULDEOHV VLHPSUH WLHQHQ HO iPELWR GH OD IXQFLyQ R GH OD FODVH HQ ODV TXH IXHURQ
GHFODUDGDV6HSXHGHGHILQLUFRPRXQDYDULDEOHJOREDODDTXHOODTXHHVWiGHILQLGD
IXHUDGHXQDIXQFLyQ3RUORWDQWRXQDYDULDEOHORFDOHVDTXHOODTXHVHGHILQHGHQWUR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 9DULDEOHV

GH XQD IXQFLyQ $GHPiV XQD YDULDEOH ORFDO VyOR H[LVWLUi GHQWUR GH ODV OODYHV GH OD
PLVPD
6LH[LVWHXQDYDULDEOHJOREDO\VHGHILQHGHQWURGHXQDIXQFLyQDXQDYDULDEOH
ORFDO FRQ HO PLVPR QRPEUH OD SULPHUD QR VH PRGLILFDUi FXDQGR OD IXQFLyQ VHD
OODPDGD
'XUDQWHODHMHFXFLyQGHODIXQFLyQVHFUHDUiXQDFRSLDWHPSRUDOGHODYDULDEOH
ODFXDOVHGHVWUXLUiDOWHUPLQDUODPLVPDVLQDOWHUDUHOYDORUGHODYDULDEOHJOREDO
6LVHGHFODUDSHURQRVHOHDVLJQDQLQJ~QYDORUDODYDULDEOHHOYDORUSRUGHIDXOW
VHUiHOTXHVHPXHVWUDHQOD7DEOD
7DEOD9DORUHVSUHGHILQLGRV
7DEOD
7,32'('$72
,32'('$72 9$/2535('(),1,'2
9$/2535('(),1,'2
%ROHDQ IDOVH
,QW 
1XPEHU 1D1
2EMHFW 1XOO
6WULQJ 1XOO
8LQW 
6LQGHFODUDU XQGHILQHG
7RGDVODVGHPiVFODVHV QXOO
2EMHWRVFUHDGRVSRUHOXVXDULR QXOO

/DVYDULDEOHVTXHVRQGHILQLGDVGHQWURGHIXQFLRQHVIXQFLRQHVFRQVWUXFWRUDV
PpWRGRV GLQiPLFRV R HVWiWLFRV VH FRQVLGHUDUiQ YDULDEOHV ORFDOHV HV GHFLU VyOR
H[LVWLUiQPLHQWUDVODIXQFLyQVHHMHFXWH
/DVYDULDEOHVTXHVHDQGHILQLGDVIXHUDGHODVIXQFLRQHVGHQWURGHXQDFODVH
VHFRQVLGHUDUiQYDULDEOHVGHLQVWDQFLD\VHFRQYHUWLUiQHQSURSLHGDGHV

(MHUFLFLR

• 6H DEUHQ GRV DUFKLYRV HO DUFKLYR YDULDEOHVIOD \ HO DUFKLYR GH FODVH
9DULDEOHVDV


• 9HULItTXHVHTXHVHHQFXHQWUHHQPRGRHVWULFWRGHFRPSLODFLyQ


• (QHODUFKLYRGHODFODVHVHFDSWXUDHOVLJXLHQWHFyGLJR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV 



SDFNDJHPLV&ODVHV^
 LPSRUWIODVKGLVSOD\6SULWH

 SXEOLFFODVV9DULDEOHVH[WHQGV6SULWH^
  YDUWRWDO1XPEHU 

  SXEOLFIXQFWLRQ9DULDEOHV ^
   WUDFH WRWDO 
   VXPD  
   WUDFH WRWDO 
  `
  
  SXEOLFIXQFWLRQVXPD QXP1XPEHUQXP1XPEHU ^
   YDUWRWDO1XPEHU QXPQXP
   WUDFH WRWDO 
  `
 `
`


• 2EVpUYHVHTXHVHWUDWDGHXQDYDULDEOHGHILQLGDIXHUDGHODVIXQFLRQHVFRQ
XQYDORULQLFLDOGH/DIXQFLyQFRQVWUXFWRUDHQYtDDODSDQWDOODGHVDOLGD
HOYDORUGHHVWDYDULDEOH\GHEHUiPRVWUDUVHXQYDORUGH
• 6HJXLGRDODIXQFLyQFRQVWUXFWRUDVHHVFULEHXQPpWRGRTXHUHFLEHXQSDU
GH YDORUHV HQ XQD YDULDEOH WDPELpQ OODPDGD WRWDO 1yWHVH TXH VH HVWi
GHILQLHQGR FRQ OD SDODEUD UHVHUYDGD YDU SRU OR TXH VH FRQVLGHUD XQD
YDULDEOHORFDO
• /D IXQFLyQ FRQVWUXFWRUD OODPD DO PpWRGR \ SRVWHULRUPHQWH KDFH XQ QXHYR
WUDFH(QWRQFHVHOUHVXOWDGRGHEHUiVHUHOTXHPXHVWUDOD)LJ


)LJXUD8VRGHYDULDEOHVORFDOHV
)LJXUD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 9DULDEOHV

• /DYDULDEOHJOREDOFDQGLGDWDDVHUXQDSURSLHGDGQRIXHDOWHUDGDDXQTXH
KD\XQDYDULDEOHORFDOFRQHOPLVPRQRPEUH
• $KRUDPRGLItTXHVHODYDULDEOHORFDOGHODVLJXLHQWHIRUPD



WRWDO QXPQXP



• 6HHMHFXWDQXHYDPHQWHODSHOtFXOD\VHREVHUYDTXHHOYDORUGHODYDULDEOH
VHPRGLILFyFRPRVHDSUHFLDHQODILJXUD


)LJXUD6LQHOXVRGHYDULDEOHVORFDOHV
)LJXUD

9DULDEOHVSRUVXDOFDQFH

7DPELpQ VH SXHGH GLIHUHQFLDU D ODV YDULDEOHV GLQiPLFDV \ HVWiWLFDV ODV FXDOHV VH
YHUiQ PiV DGHODQWH $QWHV GH DQDOL]DU OD YLVLELOLGDG GH XQD YDULDEOH GH LQVWDQFLD
VHJ~QVXPRGLILFDGRUGHDFFHVRHV~WLODQDOL]DUHOFXDGURGHFODVHVGHOD)LJ


Paquete 1

Clase 1 Clase
extendida

Clase 2 dentro del mismo paquete




Paquete 2

Clase 3 fuera del paquete

)LJXUD
)LJXUD&XDGURGHFODVHV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV 

&RPRVHPXHVWUDHQOD)LJVHWLHQHQODVVLJXLHQWHVFODVHVODFODVHHQVt
PLVPD &ODVH  XQD FODVH GHQWUR GHO PLVPR SDTXHWH &ODVH  XQD IXHUD GHO
SDTXHWH &ODVH  \ XQD H[WHQGLGD D SDUWLU GH OD FODVH RULJLQDO +DFLHQGR XQ FUXFH
HQWUHHVWRVWLSRVGHYDULDEOHV\ORVPRGLILFDGRUHVGHDFFHVRUHVXOWDUtDFRPRVHYH
HQOD7DEOD
7DEOD5HVXOWDGRGHOFUXFHGHWLSRVGHYDULDEOHV\PRGLILFDGRUHVGHDFFHVR
7DEOD
 SXEOLF LQWHUQDO SURWHFWHG SULYDWH
&yGLJRGHQWURGHODFODVH 9LVLEOH 9LVLEOH 9LVLEOH 9LVLEOH
&ODVH 
&yGLJRGHXQDFODVH 9LVLEOH 9LVLEOH 9LVLEOH 1RYLVLEOH
GHVFHQGHQWH &ODVH 
&yGLJRHQRWUDFODVHGHQWUR 9LVLEOH 9LVLEOH 1RYLVLEOH 1RYLVLEOH
GHOPLVPRSDTXHWH &ODVH 
&yGLJRHQRWUDFODVHHQRWUR 9LVLEOH 1RYLVLEOH 1RYLVLEOH 1RYLVLEOH
SDTXHWH

3DUiPHWURVGHODIXQFLyQFRQVWUXFWRUD

/RV SDUiPHWURV VRQ XQD HVSHFLH GH YDULDEOHV ORFDOHV ODV FXDOHV QR QHFHVLWDQ OD
SDODEUDFRQVWUXFWRUDYDU/RVSDUiPHWURVSXHGHQUHFLELUYDORUHVSRURPLVLyQGHQWUR
GHODIXQFLyQFRQVWUXFWRUDSRUHMHPSOR

class Jelou{
function Jelou(arg1=valor1,
arg2=valor2,
arg3=valor3){
}
}

(VWD FDUDFWHUtVWLFD QXHYD HQ $6 VH H[SOLFDUi FRQ GHWDOOH HQ HO SUy[LPR
FDStWXORFXDQGRVHYHDHOWHPDGHODVIXQFLRQHV
&XDQGRVHOODPDDODIXQFLyQFRQVWUXFWRUDDOFUHDUHOREMHWRGHQXHVWUDFODVH
VH ´SDVDQµ ORV YDORUHV D ORV DUJXPHQWRV 3RU HMHPSOR DO FUHDU HO REMHWR VH SXHGH
SDVDUHOYDORUGHODUJXPHQWR
var saludo:Jelou = new Jelou(“Buenos dias”);

public function Jelou(arg1){
trace(arg1);
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 9DULDEOHV

6LVHFRPSLODHQHOPRGRHVWULFWR\QR´SDVDµXQRGHORVYDORUHV)ODVKHQYLDUiXQ
PHQVDMHGHHUURU

7,3'(&(57,),&$&,Ð1

3UHJXQWD¢&RQTXpRSHUDGRUSXHGHFUHDUXQDQXHYDLQVWDQFLDGHFODVH"
5HVSXHVWD&RQHORSHUDGRUQHZ

(MHUFLFLR

6HDEUHXQDUFKLYRQXHYRDV\VHJUDEDFRPR9DULDEOHVDVHQODFDUSHWDPLV&ODVHV
6REUHHVWHDUFKLYRVHHVFULEHODVLJXLHQWHFODVH
SDFNDJHPLV&ODVHV^
 
 SXEOLFFODVV9DULDEOHV^
  SXEOLFIXQFWLRQ9DULDEOHV DUJ6WULQJ +ROD ^
   WUDFH DUJ 
  `
 `
`

2EVpUYHVHTXHVHHVWiKDFLHQGRXQDIXQFLyQFRQVWUXFWRUDFRQXQDUJXPHQWR\
XQYDORUSRURPLVLyQ(QODFODVH9DULDEOHVDVVHVXVWLWX\HHOFyGLJRDQWHULRUSRUHO
VLJXLHQWH
SDFNDJHPLV&ODVHV^
 LPSRUWIODVKGLVSOD\6SULWH
 
 SXEOLFFODVV9DULDEOHVH[WHQGV6SULWH^
  
  SXEOLFIXQFWLRQ9DULDEOHV ^
   YDUVDOXGR9DULDEOHV QHZ9DULDEOHV 
  `
 `
`

1yWHVHTXHHQODIXQFLyQFRQVWUXFWRUDGHODFODVHSULQFLSDOVHHVWiFUHDQGRXQ
REMHWRGHODFODVH 9DULDEOHV\TXHQRVHHVWiSDVDQGRHOREMHWR6HJUDEDQWRGRV
9DULDEOHV
ORVDUFKLYRV\VHHMHFXWDQ(OUHVXOWDGRGHEHUiVHUHOTXHPXHVWUDOD)LJ


)LJXUD6DOLGDGHODIXQFLyQFRQVWUXFWRUD
)LJXUD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV 

$XQTXHQRVHSDVyXQSDUiPHWURHOFRPSLODGRUQRHQYLyXQPHQVDMHGHHUURU
SRUTXH VH WLHQH XQ YDORU SRU GHIDXOW $KRUD VH PRGLILFD OD OODPDGD D OD IXQFLyQ
FRQVWUXFWRUDGHODFODVH9DULDEOHVSRUODVLJXLHQWHOtQHD


YDUVDOXGR9DULDEOHV QHZ9DULDEOHV %XHQDVWDUGHV 





6H HMHFXWD OD SHOtFXOD \ VH REVHUYDUi HQ OD SDQWDOOD GH VDOLGD OD OH\HQGD
´%XHQDVWDUGHVµ(VGHFLUHOYDORUSRUGHIDXOWIXHVXVWLWXLGR
$KRUD VH TXLWD HO YDORU SRU GHIDXOW GH OD YDULDEOH FRQVWUXFWRUD GH OD FODVH
9DULDEOHVSDUDTXHTXHGHGHODVLJXLHQWHPDQHUD


SXEOLFIXQFWLRQ9DULDEOHV DUJ6WULQJ ^
 WUDFH DUJ 
`



'H HVWD IRUPD HO DUJXPHQWR SDVy D VHU REOLJDWRULR $KRUD VH PRGLILFD OD
FUHDFLyQGHOREMHWRHQODFODVHYDULDEOHVSDUDTXHPDQGHQLQJ~QSDUiPHWUR


SXEOLFIXQFWLRQ9DULDEOHV ^
YDUVDOXGR9DULDEOHV QHZ9DULDEOHV 
`



9HULItTXHVH TXH HO FRPSLODGRU HVWp HQ IRUPD HVWULFWD 6H JUDEDQ WRGRV ORV
DUFKLYRV\VHHMHFXWDODSHOtFXOD'HEHUiDSDUHFHUXQHUURU1~PHURLQFRUUHFWR
GHDUJXPHQWRV

7LSRGHGDWRV

8QWLSRGHGDWRVHVHOFRQMXQWRGHYDORUHVDGPLWLGRVSDUDODYDULDEOH(QOD7DEOD
VHH[SRQHQORVTXHVHFRQVLGHUDQYDORUHVVLPSOHVGHGDWRV
7DEOD9DORUHVVLPSOHVGHGDWRV
7DEOD
7LSRGHGDWRVLPSOH
7LSRGHGDWRVLPSOH 
%RROHDQ 6yOR DFHSWD ORV YDORUHV GH WUXH \
IDOVH6XYDORUSRUGHIDXOWHVIDOVH
6WULQJ 6HFXHQFLDGHFDUDFWHUHVFRQELWV
FDGDXQR$GPLWHHOIRUPDWR87)
 &RQWLQ~D 

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 9DULDEOHV

7DEOD &RQWLQXDFLyQ 
7DEOD
7LSRGHGDWRVLPSOH
7LSRGHGDWRVLPSOH 
1XPEHU 6RQQ~PHURVHQWHURV\GHFRPDIORWDQWH
GHELWV$GPLWHYDORUHVHQWUH
-9.007.199.254.740.992 (-253) y
9.007.199.254.740.992 (253).
LQW 1~PHURVHQWHURVGHELWVTXHYDQGH
-2.147.483.648 (-231) a 2.147.483,647
(231 - 1), ambos incluidos.
XLQLW 1~PHURVHQWHURVVLQVLJQRGHELWV6XV
YDORUHV RVFLODQ HQWUH  \ 4.294.967.295
(232- 1).

8QWLSRGHGDWRVFRPSOHMRVHVWiIRUPDGRSRUYDORUHVGHGDWRVVLPSOHVXRWURV
YDORUHVGHGDWRVFRPSOHMRVSRUHMHPSORFRPRVHDSUHFLDHQOD7DEOD

7DEOD7LSRVGHGDWRVFRPSOHMRV
7DEOD
7LSRGHGDWRFRPSOHMR
7LSRGHGDWRFRPSOHMR
$UUD\
2EMHFW
;0/
(UURU
;0//LVW

7DQWR ORV WLSRV GH GDWRV VLPSOHV FRPR ORV FRPSOHMRV VRQ REMHWRV SDUD HO
FRPSLODGRU DXQTXH ORV YDORUHV VLPSOHV WHQGUiQ XQ WUDWDPLHQWR HVSHFLDO 3RU
HMHPSOR SDUD GHFODUDU XQD YDULDEOH GH WLSR LQW VRQ YiOLGDV ODV VLJXLHQWHV GRV
VHQWHQFLDV


   YDUHGDG1XPEHU 
  YDUSHVR1XPEHU QHZ1XPEHU  



(Q $6 VH SHUPLWH OD YHULILFDFLyQ GHO WLSR HQ WLHPSR GH HMHFXFLyQ SHUR
WDPELpQSHUPLWHODYHULILFDFLyQHQWLHPSRVGHFRPSLODFLyQHQHOPRGRHVWULFWR6LQR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV 

VH HQFXHQWUD HQ PRGR HVWULFWR OD YHULILFDFLyQ ~QLFDPHQWH VH HIHFWXDUi HQ WLHPSR
GHHMHFXFLyQ
(Q PRGR HVWULFWR HO FRPSLODGRU HQYLDUi PHQVDMHV GH HUURU VL KD\ XQD
DVLJQDFLyQGLIHUHQWHDOWLSRGHGDWRV

(MHUFLFLR

• 6HDEUHXQDUFKLYRQXHYRGH)ODVK$6\VHJXDUGDFRPRWLSRVIODHQOD
FDUSHWD GH WUDEDMR $KRUD VH DEUH XQ DUFKLYR DV QXHYR \ VH JXDUGD FRPR
7LSRVDVHQODFDUSHWDPLV&ODVHV
• 9HULItTXHVH TXH VH HQFXHQWUH HQ PRGR HVWULFWR GH FRPSLODFLyQ (Q HO
'RFXPHQW&ODVVVHHVFULEHPLV&ODVHV7LSRV\VHSXOVD(17(5
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHHVTXHOHWRGHFODVH


SDFNDJHPLV&ODVHV^
 LPSRUWIODVKGLVSOD\6SULWH
 
 SXEOLFFODVV7LSRVH[WHQGV6SULWH^
  SXEOLFIXQFWLRQ7LSRV ^
  `
 `
`



• 'HEDMRGHODIXQFLyQFRQVWUXFWRUDVHHVFULEHODVLJXLHQWHIXQFLyQ



SXEOLFIXQFWLRQSUXHED DUJ ^
LI DUJLV6WULQJ ^
  YDUFDGHQD6WULQJ DUJ
  WUDFH &DGHQDDUJ 
 `HOVHLI DUJLV1XPEHU ^
  YDUQXPHUR1XPEHU DUJ
  WUDFH 1~PHURQXPHUR 
 `
`



/DIXQFLyQGHSUXHEDQRWLHQHGHILQLGRHOWLSRGHVXDUJXPHQWRSRUORTXHVH
SXHGH UHFLELU XQ YDORU FRQ FXDOTXLHU WLSR GH GDWR $KRUD HQ OD IXQFLyQ
FRQVWUXFWRUDVHHVFULEHQODVVLJXLHQWHVGRVOtQHDVHQQHJULWDV



public function Tipos(){


prueba(100);
prueba("Hola");
}


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 9DULDEOHV

• (MHF~WHVHODSHOtFXOD\VHGHEHUiWHQHUXQDVDOLGDFRPRODTXHPXHVWUDOD
)LJ


)LJXUD5HVXOWDGRGHORVGLIHUHQWHVWLSRVGHYDULDEOH
)LJXUD 

• $KRUD VH FDPELD HO WLSR GH GDWR HQ HO DUJXPHQWR GH OD IXQFLyQ SUXHED DO
VLJXLHQWH


public function prueba(arg1:String){




• (QWRQFHVHOFRPSLODGRUGHEHUiPDQGDUXQPHQVDMHGHHUURU3DUDHYLWDUOR
VHDSDJDHOPRGR HVWULFWR\VHYXHOYHDFRUUHUODSHOtFXOD. 0DQGDUiDKRUD
ORVPHQVDMHVFRUUHFWRVSHURSRGUtDWHQHUXQHUURUHQWLHPSRGHHMHFXFLyQ
3RU~OWLPRVHUHJUHVDDOPRGRGHFRPSLODFLyQHVWULFWD

• 6L HO FRPSLODGRU VH HQFXHQWUD HQ PRGR HVWiQGDU VH JHQHUDUi HO HUURU GH
WLSRV~QLFDPHQWHHQHOWLHPSRGHHMHFXFLyQ

6DEHUORVWLSRVGHYDULDEOHRSHUDGRUHVLV\DV

6L VH GHVHD VDEHU FXiO HV HO WLSR GH XQD YDULDEOH HQ $6 \D QR VH XWLOL]D HO
RSHUDGRULQVWDQFHRIHOFXDOVHVXVWLWX\HDKRUDFRQHORSHUDGRULV
(ORSHUDGRULVQRVyORGHWHUPLQDHOWLSRGHFODVHDODTXHSHUWHQHFHXQREMHWR
VLQRODMHUDUTXtDGHKHUHQFLDGHOPLVPRHVGHFLUFXiOHVFODVHVKHUHGDURQDODFODVH
GHOREMHWR3RUHMHPSORVLVHWLHQHXQDLQVWDQFLDGHODFODVH6SULWHODFXDOKHUHGD
GHODVFODVHV'LVSOD\2EMHFWH,(YHQW'LVSDWFKHUHOUHVXOWDGRVHUtDHOTXHPXHVWUDHO
VLJXLHQWHHMHPSOR

(MHPSOR

6H DEUHQ ORV DUFKLYRV WLSRVIOD \ 7LSRVDV (Q HO DUFKLYR GH OD FODVH VH VXVWLWX\H HO
FyGLJRH[LVWHQWHSRUHOVLJXLHQWH


SDFNDJHPLV&ODVHV^
 LPSRUWIODVKGLVSOD\ 
 

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV 

LPSRUWIODVKHYHQWV,(YHQW'LVSDWFKHU

 SXEOLFFODVV7LSRVH[WHQGV6SULWH^
  SXEOLFIXQFWLRQ7LSRV ^
   YDUPL6SULWH6SULWH QHZ6SULWH 
   WUDFH PL6SULWHLV6SULWH 
   WUDFH PL6SULWHLV'LVSOD\2EMHFW 
   
WUDFH PL6SULWHLV,(YHQW'LVSDWFKHU 
  `
 `

`



9HULItTXHVHTXHHOFRPSLODGRUHVWpHQPRGRHVWULFWR6HHMHFXWDODSHOtFXOD\VH
GHEHUiWHQHUXQDVDOLGDFRPRODGHOD)LJ


)LJXUD5HVXOWDGRGHORSHUDGRULV
)LJXUD


• 2WUD QRYHGDG HQ $6 HV HO RSHUDGRU DV HO FXDO UHJUHVD HO YDORU GH OD
H[SUHVLyQHQOXJDUGHWUXH\UHJUHVDXQYDORUQXOO HQOXJDUGHIDOVH$VtHQ
HOHMHUFLFLRVHVXVWLWX\HRFRORFDGHEDMRGHODVVHQWHQFLDVWUDFHHOVLJXLHQWH
FyGLJR



YDUPL6SULWH6SULWH QHZ6SULWH 
WUDFH PL6SULWHDV6SULWH 
WUDFH PL6SULWHDV'LVSOD\2EMHFW 
WUDFH PL6SULWHDV,(YHQW'LVSDWFKHU 
WUDFH PL6SULWHDV1XPEHU 



• /DVDOLGDGHEHUiVHUFRPRVHDSUHFLDHQOD)LJ


)LJXUD5HVXOWDGRGHORSHUDGRUDV
)LJXUD
$KRUDVHJXDUGDQORVDUFKLYRV\DTXHVHUHTXHULUiQHQODSUy[LPDVHFFLyQ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 9DULDEOHV

&RQYHUVLyQGHWLSRV

/DVFRQYHUVLRQHVGHWLSRVGHGDWRVVHGDQFXDQGRXQDYDULDEOHFDPELDGHXQWLSR
GHGDWRRULJLQDODRWUR+D\GRVIRUPDVGHFRQYHUVLyQGHWLSRVLPSOtFLWDFXDQGROD
KDFHHOFRPSLODGRUHQIRUPDDXWRPiWLFD\H[SOtFLWDFXDQGRHVHOFyGLJRHOTXHOH
LQGLFDDOFRPSLODGRUTXHFDPELHHOWLSRGHXQDYDULDEOH

/DVFRQYHUVLRQHVLPSOtFLWDVVHHIHFW~DQHQORVVLJXLHQWHVFDVRV

En sentencias de asignación
Cuando se pasan valores como argumentos de función
Cuando se devuelven valores desde funciones
En expresiones que utilizan determinados operadores, como el
operador suma (+)

/DVIXQFLRQHVSDUDFRQYHUWLUDYDORUQXPpULFRVRQ1XPEHU LQLW \XLQLW /D
IXQFLyQ SDUDFRQYHUWLUH[SOtFLWDPHQWHXQD YDULDEOHDYDORUERROHDQRHV %RROHDQ  \
SDUDODVFDGHQDVHV6WULQJ 

&RQVWDQWHV

(Q OD QXHYD YHUVLyQ GH $FWLRQ6FULSW VH SXHGH PDQHMDU FRQVWDQWHV FRQ OD SDODEUD
UHVHUYDGD FRQVW 6H SXHGH DVLJQDU YDORU VyOR XQD YH] D XQD FRQVWDQWH 3RU
FRQYHQFLyQ ODV FRQVWDQWHV VH HVFULEHQ FRQ WRGDV VXV OHWUDV HQ PD\~VFXOD \ VL
WLHQHQPiVGHXQDSDODEUDpVWDVVHVHSDUDQFRQJXLRQHVEDMRVFRPRVHPXHVWUD
HQHOVLJXLHQWHHMHPSOR

(MHUFLFLR

• 6HDEUHQORVDUFKLYRVGHWLSRVIOD\HOGHVXFODVH7LSRVDV
• (QHODUFKLYRIODYHULItTXHVHTXHHOPRGRGHOFRPSLODGRU12HVWpHQPRGR
HVWULFWR
• (QHODUFKLYRDVVHDxDGHHOFyGLJRTXHDSDUHFHHQQHJULWDV



SDFNDJHPLV&ODVHV^
 LPSRUWIODVKGLVSOD\ 
 

 SXEOLFFODVV7LSRVH[WHQGV6SULWH^
  SXEOLFFRQVW0$;,02B9,'$6LQW 


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV 

  SXEOLFFRQVW0$5*(1B0,1,02XLQW 



  SXEOLFIXQFWLRQ7LSRV ^
   WUDFH 0$;,02B9,'$6 
WUDFH 0$;,02B9,'$6 
   0$;,02B9,'$6 
   WUDFH 0$;,02B9,'$6 
WUDFH 0$;,02B9,'$6 
  `
 `

`




• 6H VDOYDQ ORV FDPELRV GHO DUFKLYR DV (MHF~WHVH OD SHOtFXOD \ REVpUYHVH HO
UHVXOWDGR6LQRHVWiDFWLYRHOPRGRHVWULFWRHOFRPSLODGRUQRQRWLILFDUiTXH
VHPRGLILFyXQDFRQVWDQWHWDOFRPRVHDSUHFLDHQOD)LJ


)LJXUD
)LJXUD5HVXOWDGRGHODVFRQVWDQWHVHQPRGRQRHVWULFWRGHOFRPSLODGRU

• $KRUD VH UHJUHVD DO PRGR HVWULFWR (Q OD )LJ  VH REVHUYD TXH HO
FRPSLODGRUHQYtDXQPHQVDMHGHHUURU


)LJXUD(UURUDOLQWHQWDUPRGLILFDUXQDFRQVWDQWHHQPRGRHVWULFWRGHO
)LJXUD
FRPSLODGRU

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 2SHUDGRUHV

2SHUDGRUHV
/RVRSHUDGRUHVVRQVtPERORVTXHVHDSOLFDQDXQRRPiVRSHUDQGRVSDUDJHQHUDU
XQ QXHYR UHVXOWDGR /RV RSHUDGRUHV SXHGHQ VHU OLWHUDOHV YDULDEOHV R H[SUHVLRQHV
UHJXODUHV
(QHVWHOLEURVHGHQRPLQDSUHFHGHQFLDDORUGHQHQTXHORVRSHUDGRUHVVHUiQ
SURFHVDGRVSRUHOFRPSLODGRU/DSUHFHGHQFLDVHSXHGHPRGLILFDUSRUPHGLRGHORV
SDUpQWHVLV3RUHMHPSORODPXOWLSOLFDFLyQWLHQHSUHFHGHQFLDVREUHODVXPD\SXHGH
FDPELDUVHHVWDSUHFHGHQFLDSRUPHGLRGHORVSDUpQWHVLVFRPRVHYHHQVHJXLGD


YDUVXPDLQLW  


YDUVXPDLQLW    



/D7DEODSUHVHQWDODOLVWDGHRSHUDGRUHVGHPD\RUDPHQRUSUHFHGHQFLD
7DEOD/LVWDGHRSHUDGRUHV
7DEOD
3ULPDULR
3ULPDULR >@^[\` I [ QHZ[\[>\@!!#
6XILMR
6XILMR [[
8QDULR
8QDULR [[aGHOHWHW\SHRIYRLG
0XOWLSOLFDWLYR
0XOWLSOLFDWLYR 
$GLWLYR
$GLWLYR 
'HVSOD]DPLHQWRHQPRGRGHELW
'HVSOD]DPLHQWRHQPRGRGHELW !!!!!
5HODFLRQDO
5HODFLRQDO ! ! DVLQLQVWDQFHRILV
,JXDOGDG
,JXDOGDG    
$1'HQPRGRELW
$1'HQPRGRELW 
;25HQPRGRELW
;25HQPRGRELW
PRGRELW A
25HQPRGRELW
25HQPRGRELW _
$1'OyJLFR
$1'OyJLFR 
25OyJLFR
25OyJLFR __
&RQGLFLRQDO
&RQGLFLRQDO "
$VLJQDFLyQ
$VLJQDFLyQ       !! !!!  A _ 
&RPD
&RPD 

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$PDQHUDGHFRQFOXVLyQ 

$KRUDVHUHYLVDUiQORV2SHUDGRUHVSULQFLSDOHV

2SHUDGRUHVSULQFLSDOHV

/RV RSHUDGRUHV SULQFLSDOHV 7DEOD   VRQ DTXHOORV TXH VH XWLOL]DQ SDUD FUHDU
DUUHJORVREMHWRVLQVWDQFLDVGHFODVHDFFHGHUDSURSLHGDGHVDJUXSDUH[SUHVLRQHV
OODPDUDIXQFLRQHV\DJUXSDPLHQWRGHH[SUHVLRQHV
7DEOD2SHUDGRUHVSULQFLSDOHV
7DEOD
2SHUDGRU
2SHUDGRU 2SHUDFLyQ
2SHUDFLyQ
>@
>@ ,QLFLDOL]DXQDPDWUL]
^[\`
^[\` ,QLFLDOL]DXQREMHWR

 $JUXSDH[SUHVLRQHV
I [ 
I [  /ODPDDXQDIXQFLyQ
1HZ
1HZ /ODPDDXQFRQVWUXFWRU
[\[>\@
[\[>\@ $FFHGHDXQDSURSLHGDG
!!
!! ,QLFLDOL]DXQREMHWR;0//LVW (; 
# $FFHGHDXQDWULEXWR (; 

 &DOLILFDXQQRPEUH (; 


 $FFHGHDXQHOHPHQWR;0/GHVFHQGLHQWH (; 

2SHUDGRUHVGHVXILMR

(VWRV RSHUDGRUHV VLUYHQ SDUD DXPHQWDU R GLVPLQXLU XQD YDULDEOH QXPpULFD HQ XQD
XQLGDG


QXP9LGDV
QXP9LGDV



$XQTXHVRQRSHUDGRUHVXQDULRVWLHQHQPD\RUSUHFHGHQFLDTXHORVGHHVWDHVSHFLH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 2SHUDGRUHV

2SHUDGRUHVSUHILMR

$ HVWRV RSHUDGRUHV VH OHV OODPD XQDULRV \D TXH VyOR DIHFWDQ D XQ RSHUDQGR 6H
HVFULEHQ DQWHV GHO RSHUDGRU \ SULPHUR VH KDFH OD RSHUDFLyQ GH LQFUHPHQWR R
GHFUHPHQWR8QHMHPSORGHHOORVHV


QXP9LGDV
QXP9LGDV


2SHUDGRUHVXQDULRV

7LHQHQODPLVPDSUHFHGHQFLDTXHORVRSHUDGRUHVSUHILMRV\SRUWDQWRVHDSOLFDQD
XQVRORRSHUDQGR/D7DEODPXHVWUDHVWRVRSHUDGRUHV

7DEOD2SHUDGRUHVXQDULRV
7DEOD
2SHUDGRU
2SHUDGRU 2SHUDFLyQ
2SHUDFLyQ

 ,QFUHPHQWR SUHILMR 

 'HFUHPHQWR SUHILMR 
 8QDULR
 8QDULR QHJDFLyQ 
 127OyJLFR
a 127HQPRGRELW
'HOHWH
'HOHWH (OLPLQDXQDSURSLHGDG
7\SHRI
7\SHRI 'HYXHOYHLQIRUPDFLyQGHWLSR
9RLG
9RLG
9 RLG 'HYXHOYHXQYDORUQRGHILQLGR

2SHUDGRUHVGHPXOWLSOLFDFLyQ

6RQ ORV RSHUDGRUHV ELQDULRV VH DSOLFDQ D GRV RSHUDQGRV  FRQ PD\RU SUHFHGHQFLD
eVWRVVRQODPXOWLSOLFDFLyQGLYLVLyQ\PyGXORWDOFRPRVHYHHQOD7DEOD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV  

7DEOD2SHUDGRUHVGHPXOWLSOLFDFLyQ
7DEOD
2SHUDGRU
2SHUDGRU 2SHUDFLyQ
2SHUDFLyQ
 0XOWLSOLFDFLyQ
 'LYLVLyQ
 0yGXOR

2SHUDGRUHVDGLWLYRV

&RPRVHDSUHFLDHQOD7DEODVRQRSHUDGRUHVELQDULRVTXHVXPDQRUHVWDQGRV
RSHUDQGRV

7DEOD2SHUDGRUHVDGLWLYRV
7DEOD
2SHUDGRU
2SHUDGRU 2SHUDFLyQ
2SHUDFLyQ
 6XPD
 5HVWD

2SHUDGRUHVUHODFLRQDOHV

&RPSDUDQ GRV RSHUDQGRV \ UHJUHVDQ XQ YDORU ERROHDQR YHUGDGHUR R IDOVR /RV
VLJXLHQWHVRSHUDGRUHVTXHPXHVWUDODWDEODWLHQHQODPLVPDSUHFHGHQFLD

7DEOD2SHUDGRUHVUHODFLRQDOHV
7DEOD
2SHUDGRU
2SHUDGRU 2SHUDFLyQ
2SHUDFLyQ
 0HQRUTXH
! 0D\RUTXH
  0HQRURLJXDOTXH
!  0D\RURLJXDOTXH
$V
$V &RPSUXHEDHOWLSRGHGDWRV
,Q
,Q &RPSUXHEDODVSURSLHGDGHVGHREMHWRV
,QVWDQFHRI
,QVWDQFHRI &RPSUXHEDXQDFDGHQDGHSURWRWLSRV
,V
,V &RPSUXHEDHOWLSRGHGDWRV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 2SHUDGRUHV

2SHUDGRUHVGHLJXDOGDG

6RQ RSHUDGRUHV ELQDULRV \ UHJUHVDQ XQ YDORU ERROHDQR 7LHQHQ PHQRU SUHFHGHQFLD
TXHORVRSHUDGRUHVUHODFLRQHV\VHPXHVWUDQHQOD7DEOD

7DEOD2SHUDGRUHVGHLJXDOGDG
7DEOD
2SHUDGRU
2SHUDGRU 2SHUDFLyQ
2SHUDFLyQ
 ,JXDOGDG
£  'HVLJXDOGDG
 ,JXDOGDGHVWULFWD
£  'HVLJXDOGDGHVWULFWD

2SHUDGRUHVOyJLFRV

6RQ RSHUDGRUHV ELQDULRV \ UHJUHVDQ XQ YDORU ERROHDQR (O RSHUDGRU $1' WLHQH
SUHFHGHQFLDVREUH25VHPXHVWUDQHQODWDEOD

7DEOD2SHUDGRUHVOyJLFRV
7DEOD
2SHUDGRU
SHUDGRU 2SHUDFLyQ
2SHUDFLyQ

 $1'OyJLFR
__
__ 25OyJLFR

2SHUDGRUFRQGLFLRQDO

(O RSHUDGRU FRQGLFLRQDO GH OD 7DEOD  DSOLFD D WUHV RSHUDQGRV 6RQ IRUPDV
DEUHYLDGDVGHOLI«HOVH«TXHVHYHUiHQHOVLJXLHQWHFDStWXOR

7DEOD2SHUDGRUFRQGLFLRQDO
7DEOD
2SHUDGRU
2SHUDGRU 2SHUDFLyQ
2SHUDFLyQ
HUDFLyQ
? : 2SHUDGRUFRQGLFLRQDO

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV  

2SHUDGRUHVGHDVLJQDFLyQ

/RVRSHUDGRUHVGHDVLJQDFLyQVLUYHQSDUDDOPDFHQDUXQRSHUDQGRHQRWUR6RQORV
TXH WLHQHQ PHQRU SUHFHGHQFLD HQWUH WRGRV ORV RSHUDGRUHV 7RGRV ORV VLJXLHQWHV
RSHUDGRUHVTXHPXHVWUDOD7DEODWLHQHQODPLVPDSUHFHGHQFLD

7DEOD2SHUDGRUHVGHDVLJQDFLyQ
7DEOD
2SHUDGRU
2SHUDGRU 2SHUDFLyQ
2SHUDFLyQ
 $VLJQDFLyQ
 $VLJQDFLyQGHPXOWLSOLFDFLyQ
  $VLJQDFLyQGHGLYLVLyQ
  $VLJQDFLyQGHPyGXOR
  $VLJQDFLyQGHVXPD
  $VLJQDFLyQGHUHVWD
  $VLJQDFLyQGHGHVSOD]DPLHQWRDODL]TXLHUGD
HQPRGRELW
!!  $VLJQDFLyQGHGHVSOD]DPLHQWRDODGHUHFKD
HQPRGRELW
!!!  $VLJQDFLyQGHGHVSOD]DPLHQWRDODGHUHFKD
HQPRGRELWVLQVLJQR
 $VLJQDFLyQGH$1'HQPRGRELW
A  $VLJQDFLyQGH;25HQPRGRELW
_  $VLJQDFLyQGH25HQPRGRELW

(MHPSOR

3DUDTXHQRVHDEXUUDFRQWDQWDWHRUtDKDUHPRVXQHMHPSORVHQFLOORGHPDQHMRGH
FDGHQDV DXQTXH XWLOL]DUHPRV DOJXQDV HVWUXFWXUDV TXH D~Q QR KHPRV H[SOLFDGR
FRPRVRQORVFLFORV\ODVFRQGLFLRQDOHV
'H DFXHUGR FRQ OD QXPHURORJtD HO FDUiFWHU GH XQD SHUVRQD SXHGH
GHWHUPLQDUVH VXPDQGR ODV OHWUDV VH OHV DVLJQD XQ YDORU $   %   HWF  (O
UHVXOWDGRHVXQQ~PHURGHPiVGHXQGtJLWRSRUHMHPSORVHVXPDQHQWUHHOORV
KDVWD TXH Gp XQ GtJLWR GHO  DO  /D VLJXLHQWH WDEOD QRV LQGLFD HO FDUiFWHU GH OD
SHUVRQDVHJ~QVXQ~PHUR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 2SHUDGRUHV

 9ROXQWDGILUPH]DFDSDFLGDG
 6RFLDELOLGDGFUHDWLYLGDGFDSDFLGDGLQHVWDELOLGDGHPRFLRQDO
 ,QWHOLJHQFLD FUHDWLYLGDG FDSDFLGDG LQWHUpV SRU HO DUWH 3RGHU HVSLULWXDO \
VH[XDO
 &DXWHODGHWDOOLVPRIDOWDGHDPELFLyQWHPRUDORGHVFRQRFLGRVH[XDOLGDG
 ,QFOLQDFLyQKDFLDODDYHQWXUDWHQGHQFLDDOFDPELR
 7ROHUDQFLDHVWDELOLGDGRUGHQRSWLPLVPR
 7HQGHQFLDDOHQLJPDFDUiFWHUSRpWLFRHUXGLFLyQVROHGDG
 1HJRFLDQWHUHDOL]DGRUGHHPSUHVDVp[LWRVPDWHULDOHV
 e[LWRVLQWHOHFWXDOHVSHUIHFFLyQSRGHUFDUiFWHULPSXOVLYR

3RUVHUpVWHXQHMHPSORIDOWDQDOJXQDVYDOLGDFLRQHVLPSRUWDQWHV
• 1R DFHSWD DFHQWRV 7HQGUtDPRV TXH KDFHU XQD SHTXHxD IXQFLyQ TXH ORV
UHHPSOD]DUD
• 1RDFHSWDEODQFRV+DEUtDTXHKDFHURWUDIXQFLyQSDUDHOLPLQDUORV
• 6L HO QRPEUH VXPD PiV GH  WHQGUtDPRV TXH YDOLGDU VHSDUD ORV WUHV
GtJLWRV
• 3RGHPRV RSWLPL]DU HO FyGLJR FRQ XQ DUUHJOR (VWRV SHQGLHQWHV ORV
HIHFWXDUHPRVHQVXPRPHQWR

 $EUD XQ DUFKLYR )ODVK $FWLRQ6FULSW  \ QyPEUHOR FRPR QXPHURORJtDIOD
QXPHURORJtDIOD
GHQWURGHVXFDUSHWDGHWUDEDMR
 $EUD XQ DUFKLYR $FWLRQ6FULSW  FODVV \ QyPEUHOR FRPR 1XPHURORJLD
1XPHURORJLD
*UDEHHVWHDUFKLYRFRPR1XPHURORJLDDV
1XPHURORJLDDVGHQWURGHODFDUSHWDPLV&ODVHV
1XPHURORJLDDV
 (VFULEDHOFDPLQRGHFODVH FODVVSDWK HQODFODVH(OFyGLJRHQHODUFKLYR
GHFODVHGHEHUiVHUHOVLJXLHQWH



SDFNDJHPLV&ODVHV^
 SXEOLFFODVV1XPHURORJLD^
  SXEOLFIXQFWLRQ1XPHURORJLD ^
   FRGLJRGHFODVH
  `
 `
`



 1RROYLGHHVFULELUHQHO'RFXPHQW&ODVVODFDUSHWD\HOQRPEUHGHODFODVH
YpDVHOD)LJ


)LJXUD
)LJXUD'RFXPHQW&ODVVFRQFDUSHWD\QRPEUHGHODFODVH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV  

 (Q HO DUFKLYR GH FODVH GHVSXpV GH OD GHILQLFLyQ GHO SDTXHWH LPSRUWH OD
FODVH6SULWH\H[WLHQGDDHOODODQXHYDFODVHVHJ~QVHPDUFDHQQHJULWDVHQ
HOVLJXLHQWHFyGLJR



SDFNDJHPLV&ODVHV^
 LPSRUWIODVKGLVSOD\6SULWH
LPSRUWIODVKGLVSOD\6SULWH
KGLVSOD\6SULWH
 
 SXEOLFFODVV1XPHURORJLDH[WHQGV6SULWH
H[WHQGV6SULWH^
H[WHQGV6SULWH



 1HFHVLWDPRVDKRUDXQDYDULDEOHSDUDDOPDFHQDUHOQRPEUHSRUDQDOL]DUFRQ
OD QXPHURORJtD 3DUD HOOR FUHDPRV XQD YDULDEOH SDUiPHWUR  IXHUD GH OD
GHILQLFLyQGHODVIXQFLRQHV\ODGHFODUDPRVFRPRS~EOLFD
 'HQWUR GH OD IXQFLyQ FRQVWUXFWRUD FDPELDPRV OD YDULDEOH D PD\~VFXODV H
LQLFLDPRVHOSURFHVRLQYRFDQGRDODIXQFLyQLQLFLR 
 &UHDPRV OD IXQFLyQ LQLFLR  TXH SRU HQFRQWUDUVH HQ XQD FODVH OD
OODPDUHPRVPpWRGR FRQHOPRGLILFDGRUGHDFFHVRSULYDWHFRQORTXHHVWH
PpWRGR ~QLFDPHQWH SRGUi VHU OODPDGR LQWHUQDPHQWH GHQWUR GH OD FODVH
1XPHURORJtD
 (OFyGLJRGHQWURGHODFODVHGHEHUiVHUHOVLJXLHQWH



SDFNDJHPLV&ODVHV^
 LPSRUWIODVKGLVSOD\6SULWH
 
 SXEOLFFODVV1XPHURORJLDH[WHQGV6SULWH^
  YDUQRPEUH3URSLR6WULQJ )UDQFLVFR

  SXEOLFIXQFWLRQ1XPHURORJLD ^
   WUDFH (OQRPEUHRULJLQDOHVQRPEUH3URSLR 
   QRPEUH3URSLR QRPEUH3URSLRWR8SSHU&DVH 
 WUDFH (OQRPEUHRULJLQDOHQPD\~VFXODVHV
  QRPEUH3URSLR 
   LQLFLR 
  `
  
  SULYDWHIXQFWLRQLQLFLR ^
  `
 `
`


 (MHFXWHODDSOLFDFLyQFRQ>&WUO@>(QWHU@ :LQGRZV R>&RPDQGR@>5HWXUQ@
0DF  (Q OD YHQWDQD GH VDOLGD WHQGUi HO QRPEUH HQ VX IRUPD RULJLQDO \
WDPELpQFRQYHUWLGDDPD\~VFXODVHQHOSDQHOGHVDOLGD



$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 2SHUDGRUHV

)LJXUD6DOLGDGHODHMHFXFLyQGHOVFULSW
)LJXUD 


 'HQWURGHOPpWRGRLQLFLR
LQLFLR HVFULEDHOVLJXLHQWHFyGLJRSDUDREWHQHUODVXPD
LQLFLR
GHODVOHWUDVGHOQRPEUH
 

SULYDWHIXQFWLRQLQLFLR ^
YDUORQJLWXGXLQW QRPEUH3URSLROHQJWK
 YDUVXPDXLQW
 YDUDVFLLXLQW
 YDUYDORUXLQW
 YDUOHWUD6WULQJ
 
 WUDFH (OQ~PHURGHFDUDFWHUHVHVORQJLWXG 
 IRU YDULLQW LORQJLWXGL ^
  OHWUD QRPEUH3URSLRFKDU$W L 
  DVFLL QRPEUH3URSLRFKDU&RGH$W L 
  YDORU DVFLL
  VXPD VXPDYDORU
  WUDFH /DOHWUDQ~PHURLHVOHWUD 
  WUDFH 6XYDORU$6&,,HVDVFLL 
  WUDFH 6XYDORUHQHODEHFHGDULRHVYDORU 
  WUDFH ´´ 
 `
 WUDFH /DVXPDGHODVOHWUDVHVVXPD 
 
` 


 +DVWDHVWHSXQWRSRGHPRVWHQHUXQQ~PHURFRQGRVFLIUDVSRUORTXHKD\
TXHVXPDUORVKDVWDWHQHUXQDVROD3DUDHOORQHFHVLWDPRVRWURFLFORHOFXDO
GHEHUiFRORFDUGHQWURGHODIXQFLyQSHURGHEDMRGHODHVWUXFWXUDIRU


YDUGLJLWRXLQW
YDUGLJLWRXLQW
ZKLOH VXPD! ^
GLJLWR 0DWKIORRU VXPD 
 GLJLWR VXPD
 VXPD GLJLWRGLJLWR
` 
WUDFH VXPD 

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$OJRPiVVREUHSURJUDPDFLyQRULHQWDGDDREMHWRV  

2EVHUYH TXH HVWDPRV XWLOL]DQGR HO RSHUDGRU PyGXOR   TXH OR TXH KDFH HV
UHJUHVDUQRV HO UHVLGXR HQWHUR GH XQD GLYLVLyQ (O UHVXOWDGR GH HVWH FLFOR VHUi XQ
Q~PHURHQWUH\SXHVVXPDFRQVHFXWLYDPHQWHODFLIUDKDVWDTXHODFDQWLGDGVHD
PHQRURLJXDOD

<DFRQHOQ~PHURGHVHDGRVLPSOHPHQWHOHLQGLFDUHPRVDOXVXDULRFXiOHV
VXFDUiFWHUGHSHQGLHQGRGHVXQRPEUH\GHODQXPHURORJtD(OVLJXLHQWH
FyGLJR GHEHUi VHU HVFULWR GHEDMR GHO FLFOR DQWHULRU \ GHQWUR GHO PpWRGR
LQLFLR 
LQLFLR


VZLWFK VXPD 
^
 FDVH
  WUDFH 9ROXQWDGILUPH]DFDSDFLGDG 
  EUHDN
 FDVH
  WUDFH 6RFLDELOLGDGFUHDWLYLGDGFDSDFLGDGLQHVWDELOLGDG
HPRFLRQDO 
  EUHDN
 FDVH
  WUDFH ,QWHOLJHQFLDFUHDWLYLGDGFDSDFLGDGLQWHUpVSRUHODUWH 
  EUHDN
 FDVH
  WUDFH &DXWHODGHWDOOLVPRIDOWDGHDPELFLyQWHPRUDOR
GHVFRQRFLGR 
  EUHDN
 FDVH
  WUDFH ,QFOLQDFLyQKDFLDODDYHQWXUDWHQGHQFLDDOFDPELR 
  EUHDN
 FDVH
  WUDFH 7ROHUDQFLDHVWDELOLGDGRUGHQRSWLPLVPR 
  EUHDN
 FDVH
  WUDFH 7HQGHQFLDDOHQLJPDFDUiFWHUSRpWLFRHUXGLFLyQVROHGDG 
  EUHDN
 FDVH
  WUDFH 1HJRFLDQWHUHDOL]DGRUGHHPSUHVDVp[LWRVPDWHULDOHV 
  EUHDN
FDVH
  WUDFH e[LWRVLQWHOHFWXDOHVSHUIHFFLyQSRGHUFDUiFWHULPSXOVLYR 
  EUHDN
`

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 $PDQHUDGHFRQFOXVLyQ

(VWDPRVXWLOL]DQGRDOJXQDVHVWUXFWXUDVTXHQRVHKDQ H[SOLFDGRSHURVLWLHQH
FRQRFLPLHQWRV GH SURJUDPDFLyQ HQ RWUR OHQJXDMH QR OH VHUiQ GHVFRQRFLGDV (VWDV
VHQWHQFLDVVRQ
• 6HQWHQFLD´IRUµ1RVSHUPLWHKDFHUFLFORVSRUPHGLRGHXQRRYDULRVtQGLFHV
• 6HQWHQFLD ´ZKLOHµ (IHFW~D LQWHUDFFLRQHV YDOLGDQGR XQD FRQGLFLyQ HQ OD
HQWUDGDGHOFLFOR
• 6HQWHQFLD´LIµ9HULILFDXQDFRQGLFLyQ
• 6HQWHQFLD´VZLWFKµ(YDO~DXQDFRQGLFLyQFRQYDULDVRSFLRQHV

(VWDVVHQWHQFLDVVHUiQDQDOL]DGDVHQHOVLJXLHQWHFDStWXOR
/R LPSRUWDQWH HV TXH REVHUYH FyPR VH HVWUXFWXUD XQ SURJUDPD HQ
$FWLRQ6FULSW (V XQ FRQMXQWR GH YDULDEOHV RSHUDFLRQHV \ HVWUXFWXUDV TXH QRV
SHUPLWLUiQ REWHQHU XQ UHVXOWDGR HQ HVWH FDVR VX FDUiFWHU VHJ~Q OD PLOHQDULD
QXPHURORJtD
$Vt TXH WHFOHH VX QRPEUH \ YHD FXiO HV VX FDUiFWHU VHJ~Q OD QXPHURORJtD
6XHUWH *UDEH HVWH HMHUFLFLR FRQ HO QRPEUH ´QXPHURORJtDIODµ OR XVDUHPRV PiV
DGHODQWH  HQ XQD FDUSHWD HVSHFtILFD SDUD OD OHFWXUD GH HVWH OLEUR (Q HOOD GHEHUi
DOPDFHQDUORVGHPiVHMHUFLFLRVTXHYD\DKDFLHQGR

$PDQHUDGHFRQFOXVLyQ

(OPDQHMRGHODVYDULDEOHVHVXQDSLHGUDDQJXODUHQFXDOTXLHUOHQJXDMH$VtFRPRODV
H[SUHVLRQHV UHJXODUHV VRQ  OR TXH QRV SHUPLWH PRGLILFDU OD LQIRUPDFLyQ UHFXHUGH
ORVWySLFRVUHYLVDGRVHQHVWHFDStWXOR
9DULDEOHV
9DULDEOHV 2SHUDGRUHV
2SHUDGRUHV

ÉPELWRGHODVYDULDEOHV 2SHUDGRUHVSULQFLSDOHV
$OFDQFHGHODVYDULDEOHV 2SHUDGRUHVSUHILMR
3DUiPHWURVGHODIXQFLyQFRQVWUXFWRUD 2SHUDGRUHVXQDULRV
7LSRGHGDWRV 2SHUDGRUHVGHPXOWLSOLFDFLyQ
7LSRVGHYDULDEOH 2SHUDGRUHVUHODFLRQDOHV
2SHUDGRUHVLV\DV 2SHUDGRUHVGHLJXDOGDG
&RQYHUVLyQGHWLSRV 2SHUDGRUFRQGLFLRQDO
2SHUDGRUHVGHDVLJQDFLyQ

(Q HO VLJXLHQWH FDStWXOR DQDOL]DUHPRV ODV HVWUXFWXUDV XWLOL]DGDV HQ HO
HMHUFLFLRORVFLFORV\ODVVHQWHQFLDVFRQGLFLRQDOHV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


Sentencias condicionales
y ciclos 3



6HQWHQFLDVFRQGLFLRQDOHV
$6 WLHQH WUHV VHQWHQFLDV FRQGLFLRQDOHV
FRQGLFLRQDOHV ODV FXDOHV QR VXIULHURQ FDPELRV GH ODV
YHUVLRQHVDQWHULRUHV

6HQWHQFLDLI

/DVHQWHQFLDLIHIHFWXDUiXQDYHULILFDFLyQGHXQDH[SUHVLyQFRQUHVXOWDGRERROHDQR
WUXHIDOVH  6L OD FRQGLFLyQ UHVXOWD YHUGDGHUD HIHFWXDUi XQ EORTXH GH VHQWHQFLDV
6XVLQWD[LVHV

if(condición){
sentencia1…
sentencia2…
etcétera…
}


2SFLRQDOPHQWH VH SXHGH WHQHU XQD VHQWHQFLD HOVH OD FXDO DJUXSD ODV VHQWHQFLDV
TXH VH HMHFXWDUiQ VL OD FRQGLFLyQ GD FRPR UHVXOWDGR XQ YDORU IDOVH /D VHQWHQFLD
HOVHVLHPSUHWLHQHTXHLUSUHFHGLGDGHXQLI6XVLQWD[LVHV


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 6HQWHQFLDVFRQGLFLRQDOHV

if(condición){
sentencia1…
sentencia2…
etcétera…
} else {
sentencia1…
sentencia2…
etcétera…
}

6HQWHQFLDLIHOVHLI

6LVHQHFHVLWDYHULILFDUYDULDVFRQGLFLRQDOHVVHSXHGHXWLOL]DUODVHQWHQFLD
LI«HOVHLI«
/D~OWLPDVHQWHQFLDLISXHGHOOHYDUVXFRQWUDSDUWHHOVHODFXDOVHHMHFXWDUiVL
QRVHFXPSOHQLQJXQDGHODVDQWHULRUHV3RUHMHPSORVLVHGHVHDWRPDUGLIHUHQWHV
GHFLVLRQHVGHSHQGLHQGRGHODHGDGGHOXVXDULRVXVLQWD[LVHV

if(edad<18){
trace(“Usted no puede acceder el portal”);
} else if(edad<25){
trace(“Sólo tiene acceso a ciertas páginas de nuestro
portal”);
} else if(edad<40){
trace(“Usted tiene acceso completo a nuestra
información”);
} else {

 

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

trace(“Lo sentimos, su edad rebasa el límite de nuestra


página”);
}

6HQWHQFLDVZLWFK 

8QDVHQWHQFLDVZLWFKSXHGHVXVWLWXLUDXQDHVWUXFWXUDLI«HOVHLI«FRQODGLIHUHQFLD
GHTXHHQOXJDUGHXQUHVXOWDGRERROHDQRUHJUHVDUiXQYDORUFRQHOFXDOWRPDUiODV
GHFLVLRQHVVLVHFXPSOHODFRQGLFLyQVHHMHFXWDUiQODVVHQWHQFLDVKDVWDHQFRQWUDU
ODVHQWHQFLDEUHDNLQFOXVRVLKD\RWUDVFRQGLFLRQHV6LQLQJXQDGHODVFRQGLFLRQHV
VHFXPSOHQVHHMHFXWDUiHOEORTXHGHVHQWHQFLDVGHVSXpVGHODVHQWHQFLDGHIDXOW
ODFXDOHVRSFLRQDO 6XVLQWD[LVHV

switch(numVidas){
case 8:
trace(“Felicidades, estás enterito”),
break;
case 7:
case 6:
case 5:
trace(“Vas muy bien, aún puedes superar la
prueba”);
break;
case 4:
case 3:
trace(“Ups, necesitas esforzarte más”);
break;
case 2:
case 1:

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 6HQWHQFLDVFRQGLFLRQDOHV

trace(“¡Vamos, estás a punto de perder el


juego!”);
break;
default:
trace(“Lo sentimos, vuelve a intentarlo”);
}

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6QXHYR\VHJXDUGDFRPR&RQGLFLRQDOHVIOD
HQHOGLUHFWRULRGHWUDEDMR
• $KRUD VH DEUH XQ DUFKLYR $FWLRQ6FULSW QXHYR \ VH JXDUGD HQ OD FDUSHWD
PLV&ODVHVFRPR&RQGLFLRQDOHVDV
• 6HHVFULEHHQHODUFKLYRGHFODVHVHOVLJXLHQWHFyGLJR


package misClases{
import flash.display.*;
public class Condicionales extends Sprite {
public function Condicionales() {
var fecha:Date=new Date ;
var dia:uint=fecha.getDay();
switch (día) {
case 0 :
trace("Domingo");
break;
case 1 :
trace("Lunes");
break;

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

case 2 :
trace("Martes");
break;
case 3 :
trace("Miércoles");
break;
case 4 :
trace("Jueves");
break;
case 5 :
trace("Viernes");
break;

case 6 :
trace("Sábado");
break;
default :
trace("Fuera de rango");
break;
}
}
}

• 2EVpUYHVHTXHVHHVWiFUHDQGRXQREMHWRWLSR'DWH(VWDFODVHGHREMHWRV
FRQWLHQHODIHFKDGHODFRPSXWDGRUDDOVHUFUHDGRV&RQHOPpWRGRJHW'D\ 
VHUHFXSHUDHOGtDGHODVHPDQDHQIRUPDQXPpULFDGRQGHHOGRPLQJRHV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH
 %XFOHVRFLFORV

FHUR\HOViEDGRHV3RUPHGLRGHXQDHVWUXFWXUDFDVHVHSXHGHFRQYHUWLU
HOQ~PHURDFDGHQD
• 9HULItTXHVHTXHVHHQFXHQWUHHQHOPRGRHVWULFWRGHOFRPSLODGRU
• (Q OD YHQWDQD GH VDOLGD GHEHUi DSDUHFHU HO GtD GHO FDOHQGDULR HQ TXH VH
HQFXHQWUHODFRPSXWDGRUD

%XFOHVRFLFORV
8QDVHQWHQFLDEXFOHRFLFOR HQDOJXQRVSDtVHVVHOHVFRQRFHFRPR´OD]RVµ SXHGH
UHSHWLU XQ JUXSR GH VHQWHQFLDV FRQWURODGDV FRQ XQD R PiV H[SUHVLRQHV /DV
LQVWUXFFLRQHV TXH VH HMHFXWDUiQ YDQ HQFHUUDGDV HQWUH OODYHV 2SFLRQDOPHQWH VH
SXHGHQRPLWLUODVOODYHVSHURHVXQDSUiFWLFDQRUHFRPHQGDGD/DVVHQWHQFLDVGH
EXFOHVLQFOXLGDVHQ$6VRQODVVLJXLHQWHV

6HQWHQFLDIRU

8QD VHQWHQFLD IRU VH XWLOL]D FXDQGR VH FRQRFH HO Q~PHUR GH LQWHUDFFLRQHV TXH VH
EXVFD&XHQWDFRQWUHVHOHPHQWRVXQDDVLJQDFLyQLQLFLDO6HOHFRQRFHFRPRYDORU
LQLFLDO'HVSXpVXQDFRQGLFLyQGHFRQWUROODFXDOVHHMHFXWDUiPLHQWUDVVXUHVXOWDGR
VHDYHUGDGHUR&XDQGRHVWDFRQGLFLyQVHDIDOVDHOEXFOHWHUPLQDUi3RU~OWLPRXQD
RSHUDFLyQTXHFDPELDGHYDORUDODYDULDEOHGHFRQWURORtQGLFH JHQHUDOPHQWHHVXQ
LQFUHPHQWR SHUR SXHGH VHU XQ GHFUHPHQWR  /RV HOHPHQWRV GHO EXFOH VH VHSDUDQ
FRQSXQWR\FRPD6XVLQWD[LVHV

for(var i:int =0; i<10; i++){


trace(i);
}

6HQWHQFLDIRULQ

(VWHEXFOHVLUYHSDUD UHFRUUHUREMHWRV \DUUHJORV7LHQH GRVSDUiPHWURVHOSULPHUR


WUDHHOQRPEUHGHODSURSLHGDGHOVHJXQGRHVHOQRPEUHGHOREMHWRRDUUHJORTXHVH
TXLHUDDQDOL]DU6XVLQWD[LVHV

for(param in objeto){
trace(param+”-> “+objeto[param]);
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

6LVHTXLHUHDQDOL]DUXQDUUHJORVXVLQWD[LVHV

for(param in arreglo){
trace(arreglo[param]);
}

2EVpUYHVHTXHHQPHGLRGHORVSDUiPHWURVYDODSDODEUDUHVHUYDGDLQ/RVREMHWRV
JXDUGDQVXVSDUiPHWURVVLQXQRUGHQSUHGHWHUPLQDGR

6HQWHQFLDIRUHDFKLQ

(VWDVHQWHQFLD QXHYDHQ$FWLRQ6FULSW UHFRUUHORVHOHPHQWRVGHXQDFROHFFLyQ


TXHSXHGHHVWDUIRUPDGDSRUODVHWLTXHWDVGHXQREMHWR;0/R;0//LVWORVYDORUHV
GHODVSURSLHGDGHVGHXQREMHWRRORVHOHPHQWRVGHXQDUUHJOR3RUHMHPSORFRPR
VHLQGLFDHQHOVLJXLHQWHIUDJPHQWRVHSXHGHXWLOL]DUXQDVHQWHQFLDIRUHDFKLQSDUD
UHFRUUHU XQ REMHWR JHQpULFR SHUR D GLIHUHQFLD GHO EXFOH IRULQ OD YDULDEOH GH
LWHUDFLyQFRQWLHQHHOYDORUGHODSURSLHGDGHQOXJDUGHOYDORUGHODPLVPD

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$FWLRQ6FULSW\VHJXDUGDFRPREXFOHVIODHQOD
FDUSHWDGHWUDEDMR
• $KRUD VH DEUH XQ DUFKLYR $FWLRQ6FULSW \ VH JXDUGD FRPR %XFOHVDV HQ OD
FDUSHWDPLV&ODVHV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.*;

public class Bucles extends Sprite {

public function Bucles() {


var miObjeto:Object = {titulo:"Quijote",
autor:"Cervantes"};

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 %XFOHVRFLFORV

for each (var i in miObjeto) {


trace(i);
}
}
}
}

• 6HJXDUGDHODUFKLYRDQWHVGHSURFHGHUFRQHOVLJXLHQWHSXQWR
• (QHODUFKLYREXFOHVIODVHHVFULEHPLV&ODVHV%XFOHVHQHOFDPSR'RFXPHQW
&ODVV GHO ,QVSHFWRU GH SURSLHGDGHV 9HULItTXHVH TXH HO FRPSLODGRU VH
HQFXHQWUHHQPRGRHVWULFWR
• (MHF~WHVHODSiJLQD'HEHUiWHQHUODVDOLGDTXHPXHVWUDOD)LJ


)LJXUD
)LJXUD5HVXOWDGRGHYHUXQREMHWRFRQHOFLFORIRUHDFK



• $KRUD VH HVFULEH HO VLJXLHQWH FyGLJR GHQWUR GH OD IXQFLyQ FRQVWUXFWRUD
GHEDMRGHOEXFOHDQWHULRUHOFXDOVHSXHGHFRPHQWDUVLDVtVHGHVHD


var miXML:XML = <nombres>


<nombre>Juan</nombre>
<nombre>Pedro</nombre>
<nombre>Pablo</nombre>
</nombres>;
for each (var item in miXML.nombre){
trace(item);
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

• (MHF~WHVHHOGRFXPHQWR)ODVK'HEHUiWHQHUODVDOLGDTXHVHYHHQOD)LJ


)LJXUD
)LJXUD5HVXOWDGRGHYHUXQREMHWR;0/FRQODVHQWHQFLDIRUHDFK



• $KRUDVHFDSWXUDGHEDMRGHOFyGLJRDQWHULRUODVVLJXLHQWHVVHQWHQFLDVTXH
DQDOL]DQXQDUUHJOR


var miArreglo:Array = [“lunes”, “martes”, “miércoles”,


“jueves”, “viernes”];
for each (var item in miArreglo){
trace(item);
}

• /DVDOLGDGHEHUiVHUODTXHVHDSUHFLDHQOD)LJ


)LJXUD
)LJXUD5HVXOWDGRGHYHUXQDUUHJORFRQODVHQWHQFLDIRUHDFK


1RWD

1RVHSXHGHUHFRUUHUODVSURSLHGDGHVGHXQREMHWRVLHOREMHWRHVXQDLQVWDQFLDGHXQD
FODVHFHUUDGD7DPSRFRVHSXHGHUHFRUUHUODVSURSLHGDGHVILMDV SURSLHGDGHVGHILQLGDV
FRPR SDUWH GH XQD GHILQLFLyQ GH FODVH  QL VLTXLHUD SDUD ODV LQVWDQFLDV GH FODVHV
GLQiPLFDV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 %XFOHVRFLFORV

6HQWHQFLDZKLOH

/DVHQWHQFLDZKLOHVHXWLOL]DFXDQGRQRVHVDEHHOQ~PHURGHLQWHUDFFLRQHVTXHVH
QHFHVLWDQ +D\ TXH WHQHU FXLGDGR HQ QR FDHU HQ XQ EXFOH LQILQLWR TXH QR WLHQH
VDOLGD\VHUHSLWHLQGHILQLGDPHQWH 3DUDHOORVHWLHQHODVHQWHQFLDEUHDNTXHFRUWD
HOFLFOR7DPELpQSXHGHXWLOL]DUVHHQIRUPDFRQWURODGDFRPRXQIRUSRUHMHPSOR

var i:int = 0;
while(i<5){
trace(i);
i++;
}

3DUD H[SHULPHQWDU OR TXH HV XQ EXFOH LQILQLWR EyUUHVH OD VHQWHQFLD L (O
FRPSLODGRU HQYLDUi XQ PHQVDMH FRQ HO FXDO VH SRGUi VXVSHQGHU HO PLVPR HQ
DSUR[LPDGDPHQWHVHJXQGRV

6HQWHQFLDGRZKLOH

/D VHQWHQFLD GRZKLOH HV PX\ VLPLODU D OD DQWHULRU FRQ OD GLIHUHQFLD GH TXH HO
EORTXH GH LQVWUXFFLRQHV VH HMHFXWDUi DO PHQRV XQD YH] 3RU OR JHQHUDO VH XWLOL]D
FXDQGR QR VH VDEH HO Q~PHUR GH LQWHUDFFLRQHV TXH VH GHVHD $O LJXDO TXH OD
VHQWHQFLD DQWHULRU KD\ TXH WHQHU FXLGDGR SDUD QR FDHU HQ EXFOHV LQILQLWRV 8Q
HMHPSORFRQWURODGRGHODVHQWHQFLDGRZKLOHTXHVLPXODDXQDVHQWHQFLDIRUHVOD
VLJXLHQWH

var i:int = 0;
do{
trace(i);
i++;
} while (i<5);

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

)XQFLRQHV
/DV IXQFLRQHV HQ $6 WLHQHQ QXHYDV FDUDFWHUtVWLFDV LPSRUWDQWHV SDUD OD
SURJUDPDFLyQ RULHQWDGD D REMHWRV (Q JHQHUDO HQ $FWLRQ6FULSW KD\ WUHV WLSRV GH
IXQFLRQHVJOREDOHVPpWRGRV RIXQFLRQHVUHODFLRQDGDV FRQXQREMHWR \IXQFLRQHV
KHFKDVSRUHOXVXDULR
6HSRGUtDGHILQLUDODVIXQFLRQHVFRPRJUXSRVGHVHQWHQFLDVTXHWLHQHQXQILQ
HVSHFtILFR3XHGHQRQRUHJUHVDUXQYDORU7DPELpQVHOHVSXHGHDVLJQDUYDORUHVD
ODV PLVPDV OODPDGRV DUJXPHQWRV R SDUiPHWURV  SHUR WDPELpQ VH WHQGUiQ
IXQFLRQHVVLQSDUiPHWURV

)XQFLRQHVJOREDOHV

/DV IXQFLRQHV JOREDOHV HVWiQ LQFRUSRUDGDV D )ODVK \ SXHGHQ VHU OODPDGDV HQ
FXDOTXLHUSDUWHGHOSURJUDPD3RUHMHPSORHQFXDOTXLHUSDUWHGHOSURJUDPDVHSXHGH
XWLOL]DU OD IXQFLyQ WUDFH  VLQ GHILQLU XQ REMHWR \ HQ FXDOTXLHU PRPHQWR 2WUDV
IXQFLRQHVJOREDOHVVHSXHGHQFRQVXOWDUHQODD\XGDGHOSDTXHWH

0pWRGRV

/RVPpWRGRVVRQIXQFLRQHVTXHHVWiQDVRFLDGDVFRQXQDFODVH([LVWHQPpWRGRVGH
ODVFODVHVSUHGHILQLGDVTXHVHXWLOL]DQSRUPHGLRGHODQRWDFLyQSXQWRSRUHMHPSOR

Math.random()

(QODSURJUDPDFLyQRULHQWDGDDREMHWRV\SRUORWDQWRHQ$6HVPX\FRP~QTXH
HO SURJUDPDGRU JHQHUH VXV SURSLRV PpWRGRV DxDGLHQGR IXQFLRQHV D ODV FODVHV
KHFKDV SRU HO XVXDULR 'H KHFKR DO KDFHU XQ FRQVWUXFWRU VH HVWi HVFULELHQGR XQD
IXQFLyQ

)XQFLRQHVSHUVRQDOL]DGDV

$XQTXH HQ $6 ORV XVXDULRV WDPELpQ KDFHQ IXQFLRQHV GHQWUR GH FODVHV VH OHV
OODPDUi IXQFLRQHV SHUVRQDOL]DGDV D DTXHOODV TXH VH GHILQHQ IXHUD GH OD FODVH
'HQWURGHOSDTXHWHVHOHVOODPDIXQFWLRQFODXVXUHVRFLHUUHGHIXQFLyQ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )XQFLRQHV

/ODPDGRRLQYRFDFLyQGHXQDIXQFLyQ

3DUDOODPDUDXQDIXQFLyQVHXWLOL]DVXLGHQWLILFDGRUVHJXLGRGHORVSDUpQWHVLV6LOD
IXQFLyQ UHTXLHUH GH SDUiPHWURV R GH DUJXPHQWRV pVWRV YDQ GHQWUR GH ORV
SDUpQWHVLV GLYLGLGRV SRU FRPDV 3RU HMHPSOR OD \D FRQRFLGD IXQFLyQ JOREDOWUDFH 
UHTXLHUHGHXQSDUiPHWUR

trace(“Hola Mundo”);

([LVWHQSDUiPHWURVTXHVRQUHTXHULGRV\RWURVTXHVRQRSFLRQDOHV3RUHMHPSORVL
VHHVFULEHXQDIXQFLyQWUDFH VLQDUJXPHQWRVHOFRPSLODGRUHQYLDUiXQPHQVDMHGH
HUURU
6L OD IXQFLyQ QR UHTXLHUH SDUiPHWURV FRQ HVFULELU ORV SDUpQWHVLV YDFtRV HV
VXILFLHQWH 'H KHFKR VL XQD IXQFLyQ JOREDO QR UHTXLHUH DUJXPHQWRV VH SXHGH
HVFULELUVLQSDUpQWHVLVSHURHVWRVHFRQVLGHUDXQDPDODSUiFWLFDGHSURJUDPDFLyQ

)XQFLRQHVGHXVXDULR

([LVWHQGRVIRUPDVGHGHILQLUXQDIXQFLyQHQ$FWLRQ6FULSWSRUXQDVHQWHQFLDGH
IXQFLyQ R SRU XQD H[SUHVLyQ GH IXQFLyQ 6XV FDUDFWHUtVWLFDV VH SUHVHQWDQ D
FRQWLQXDFLyQ

)XQFLyQWLSRVHQWHQFLD

(VWH HVWLOR GH FRGLILFDU IXQFLRQHV WDPELpQ FRQRFLGR H[WUDRILFLDOPHQWH FRPR


´FRGLILFDFLyQHVWLOR)ODVKµSRUTXHHQDTXHOORVOHMDQRVWLHPSRVHUDOD~QLFDIRUPD 
HV OD PDQHUD PiV DGHFXDGD GH GHILQLU YDULDEOHV FXDQGR VH WUDEDMD FRQ HO
FRPSLODGRUHQPRGRHVWULFWR
(VWHPRGRWLHQHODVLJXLHQWHVLQWD[LV

function nombreFuncion(arg1, arg2,…){

3ULPHUR YD OD SDODEUD UHVHUYDGD IXQFWLRQ VHJXLGD GHO LGHQWLILFDGRU GH OD IXQFLyQ
(QWUHSDUpQWHVLVYDQORVDUJXPHQWRV VLH[LVWHQ \GHVSXpVODVOODYHVTXHIRUPDQHO
FXHUSRGHODIXQFLyQ


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

)XQFLRQHVWLSRH[SUHVLRQHV

7DPELpQ FRQRFLGD FRPR IXQFLyQ OLWHUDO R DQyQLPD ([WUDRILFLDOPHQWH VH OH FRQRFH
FRPR´WLSRGHFRGLILFDFLyQ)ODVK0;µSRUTXHIXHHQHVWDYHUVLyQFXDQGRDSDUHFLy
6XVLQWD[LVHV

var nombreFuncion:Function = function (arg1, arg2,…){


}

1RWD

(QJHQHUDOGHEHFRQVLGHUDUVHXVDUODVIXQFLRQHVGHVHQWHQFLDSXHVVRQPiVIiFLOHVGH
OHHU\HOFRPSLODGRUGHWHFWDGHPHMRUPDQHUDFXDOTXLHUSUREOHPDTXHVHHQFXHQWUHHQ
HOODV/DVIXQFLRQHVGHVHQWHQFLD WLSR)ODVK H[LVWHQHQWRGRHOiPELWRHQTXHHVWiQ
GHILQLGDV/DVIXQFLRQHVGHH[SUHVLyQGHEHQVHUGHILQLGDVDQWHVGHVHUXWLOL]DGDV

)XQFLRQHVTXHUHJUHVDQYDORUHV

3DUDUHJUHVDUXQYDORUGHXQDIXQFLyQDOLJXDOTXHODVYHUVLRQHVDQWHULRUHVGH$6
VH XWLOL]D OD SDODEUD UHVHUYDGD UHWXUQ 7RGDV ODV VHQWHQFLDV TXH VH HQFXHQWUHQ
GHEDMRGHOUHWXUQ\DQRVRQSURFHVDGDVSXHVFRQHVWDVHQWHQFLDWHUPLQDODIXQFLyQ
(Q HO PRGR HVWULFWR GHO FRPSLODGRU OD IXQFLyQ GHEH GH UHJUHVDU HO PLVPR WLSR GH
GDWRFRQHOFXDOIXHGHILQLGDSRUHMHPSOR

function cuadrado(num:int):int {
return num*num;
}

3DUDLQGLFDUOHDOFRPSLODGRUHOWLSRGHGDWRGHUHJUHVRVHGHEHHVFULELUHOVLJQRGH
GRV SXQWRV   HQWUH HO SDUpQWHVLV TXH FLHUUD ORV DUJXPHQWRV \ OD OODYH TXH DEUH HO
FXHUSRGHODIXQFLyQ/RVWLSRVGHEHQGHVHUORVPLVPRVTXHORVWLSRVGHGDWRV\D
UHYLVDGRV 6L OD IXQFLyQ QR UHJUHVD QLQJ~Q YDORU \ VH TXLHUH TXH HO FRPSLODGRU HQ
PRGRHVWULFWRORGHWHFWHVHGHEHXWLOL]DUODSDODEUDUHVHUYDGDYRLG$GLIHUHQFLDGH
ODVYHUVLRQHVDQWHULRUHVODSDODEUDYRLGVHHVFULEHHQPLQ~VFXODV


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )XQFLRQHV

)XQFLRQHVDQLGDGDV

(VSRVLEOHDQLGDUIXQFLRQHVHVGHFLUSRQHUXQDRPiVIXQFLRQHVGHQWURGHRWUD/DV
IXQFLRQHV DQLGDGDV QR YDQ D SRGHU VHU DFFHVDGDV IXHUD GH OD IXQFLyQ TXH ODV
FRQWLHQH D PHQRV TXH VHDQ OODPDGDV SRU ´UHIHUHQFLDµ WpUPLQR TXH VH DQDOL]DUi
PiVDGHODQWH

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$FWLRQ6FULSW\VHJXDUGDFRPRIXQFLRQHVIODHQ
ODFDUSHWDGHWUDEDMR
• $KRUDVHDEUHXQDUFKLYR$FWLRQ6FULSW\VHJXDUGDFRPR)XQFLRQHVDVHQOD
FDUSHWDPLV&ODVHV
• /tJXHVHDDPERVDUFKLYRVHQHOFDPSR'RFXPHQW&ODVV
• $VHJ~UHVHGHTXHVHHQFXHQWUDHQPRGRHVWULFWRGHOFRPSLODGRU
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;

public class Funciones extends Sprite {

public function Funciones() {


trace(junta("tuNombre","tuApellido"));
}
public function
junta(arg1:String,arg2:String):String {
function nombre(arg3:String):String {
return arg3;
}
return nombre(arg1) +" "+apellido(arg2);
}
}
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

(MHF~WHVHODSHOtFXOD'HEHUiWHQHUXQUHVXOWDGRVLPLODUDOGHOD)LJ


)LJXUD
)LJXUD3URSLHGDGHVRDUJXPHQWRVGHXQDIXQFLyQ

• $KRUDLQWpQWHVHOODPDUDODIXQFLyQDSHOOLGR GHVGHODIXQFLyQFRQVWUXFWRUD
(OFRPSLODGRUGHEHUiHQYLDUXQPHQVDMHGHHUURU

3DVDUSDUiPHWURVSRUYDORURSRUUHIHUHQFLD

/DVYDULDEOHVSULPLWLYDV 1XPEHU6WULQJLQWXLQW\%RROHDQ SDVDQVXFRQWHQLGRSRU


YDORUHVGHFLUODYDULDEOHQRHVPRGLILFDGDVyOR´FRSLDQµVXYDORUSDUDGiUVHORDOD
IXQFLyQ SHUR VX FRQWHQLGR QR VH DOWHUD (O YDORU SDVDGR VH FRSLD HQ XQD YDULDEOH
WHPSRUDO\GHVDSDUHFHFXDQGRODIXQFLyQWHUPLQD
(Q FDPELR ODV YDULDEOHV DJUHJDGDV ȤFRPR REMHWRV DUUHJORV ;0/ ;0//LVW
HWFȤ  SDVDQ VX YDORU SRU UHIHUHQFLD 6H SRGUtD GHFLU TXH SDVD OD ´GLUHFFLyQµ GHO
REMHWR\WRGRVORVFDPELRVTXHVXIUDHODUJXPHQWRVHUHIOHMDUiQHQHOREMHWRLQLFLDO
$XQTXHHQ$6WRGRVORVWLSRVGHGDWRVRQREMHWRVDODVYDULDEOHVSULPLWLYDV
ODVWUDWDHQIRUPDHVSHFLDOSDUDQRSDVDUVXUHIHUHQFLDDODIXQFLyQ(VWRHVYiOLGR
LQFOXVRVLORVQRPEUHVGHODVYDULDEOHVRULJLQDOHV\ORVQRPEUHVGHORVSDUiPHWURV
HQODIXQFLyQWLHQHQHOPLVPRQRPEUH(QUHDOLGDGVRQYDULDEOHVGLVWLQWDV

(MHUFLFLR

• 6HDEUHQORVDUFKLYRV)XQFLRQHVDV\IXQFLRQHVIOD
• 6H GHEH WHQHU OD VHJXULGDG GH TXH VH HQFXHQWUD HQ PRGR HVWULFWR GHO
FRPSLODGRU
• (QHODUFKLYRGHFODVHVHVXVWLWX\HHOFyGLJRDQWHULRUSRUHOVLJXLHQWH


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )XQFLRQHV

package misClases{
import flash.display.Sprite;

public class Funciones extends Sprite {


public var nombre:String = "tuNombre";
public var apellido:String = "tuApellido";

public function Funciones() {


trace(nombre+" "+apellido);
trace(junta(nombre,apellido));
trace(nombre+" "+apellido);
}
public function
junta(nombre:String,apellido:String):String {
nombre = "miNombre";
apellido = "miApellido";
return (nombre+" "+apellido);
}
}
}

(MHF~WHVH OD SHOtFXOD $SDUHQWHPHQWH HQ OD IXQFLyQ VH HVWiQ PRGLILFDQGR ODV
IXQFLRQHV JOREDOHV SHUR FRPR HO QRPEUH GH ORV SDUiPHWURV HV H[DFWDPHQWH HO
PLVPRHQUHDOLGDGVyORVHDIHFWDQORVYDORUHV\QRODVYDULDEOHV YpDVHOD)LJ 


)LJXUD
)LJXUD3DVDUSDUiPHWURVSRUYDORU


• 6HVDOYDQORVDUFKLYRV&RPR\DVHKDEtDFRPHQWDGRODVYDULDEOHVTXHQR
VRQSULPLWLYDVVtPRGLILFDQVXFRQWHQLGRSXHVVHSDVDQSRUUHIHUHQFLD
• 'HVSXpV GH ODV YDULDEOHV WLSR FDGHQD VH HVFULEH OD VLJXLHQWH VHQWHQFLD
SDUDFUHDUXQREMHWRJHQpULFR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

public var objeto:Object = {nombre:"tuNombre",


apellido:"tuApellido"};


• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHFyGLJRGHEDMRGHODIXQFLyQ
MXQWD


public function referencia(pObjeto:Object):String{


pObjeto.nombre = "miNombre";
pObjeto.apellido = "miApellido";
return pObjeto.nombre+" "+pObjeto.apellido;
}

• (QODIXQFLyQFRQVWUXFWRUDVHDJUHJDHOVLJXLHQWHFyGLJRSDUDYLVXDOL]DUODV
YDULDEOHV


trace("//");
trace(objeto.nombre+" "+objeto.apellido);
trace(referencia(objeto));
trace(objeto.nombre+" "+objeto.apellido);


• (MHF~WHVHODSHOtFXOD'HEHUiQREWHQHUVHORVUHVXOWDGRVGHOD)LJ


)LJXUD
)LJXUD3DVDUSDUiPHWURVSRUUHIHUHQFLD

• 2EVpUYHVHTXHORVYDORUHVGHODVSURSLHGDGHVVtIXHURQFDPELDGRVDXQTXH
HOREMHWRWHQtDGLIHUHQWHQRPEUHTXHHOSDUiPHWUR


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )XQFLRQHV

9DORUHVSUHGHWHUPLQDGRVHQODVIXQFLRQHV

&RPR \D VH KDEtD YLVWR HQ ODV IXQFLRQHV FRQVWUXFWRUDV HQ $6 VH SHUPLWHQ ORV
YDORUHV SUHGHWHUPLQDGRV $TXHOORV SDUiPHWURV TXH VHDQ SUHGHWHUPLQDGRV HO
FRPSLODGRU ORV FRQVLGHUDUi FRPR ´RSFLRQDOHVµ HV GHFLU VL QR H[LVWHQ ORV YDORUHV
pVWRV VH WRPDUiQ SRU GHIDXOW \ HO FRPSLODGRU HQ PRGR HVWULFWR QR HPLWLUi QLQJ~Q
HUURU(QFDPELRWRGRVDTXHOORVDUJXPHQWRVTXHQRWHQJDQYDORUSUHGHWHUPLQDGR
HOFRPSLODGRUORVWRPDUiFRPR´REOLJDWRULRVµR ´UHTXHULGRVµSRUOR TXHVLHVWiHQ
PRGRHVWULFWRHOFRPSLODGRUPDUFDUiXQPHQVDMHGHHUURUVLVHRPLWHQ
/RV DUJXPHQWRV RSFLRQDOHV GHEHUiQ LU DO ILQDO GH OD OLVWD GH DUJXPHQWR HQ OD
GHILQLFLyQGHODIXQFLyQ

(OREMHWRDUJXPHQWV

$XQTXH HVWH REMHWR \D H[LVWtD HQ YHUVLRQHV DQWHULRUHV HQ $6 HV XQ SRFR
GLIHUHQWH(OREMHWRDUJXPHQWVHVXQDUUHJORFRQORVDUJXPHQWRVRSDUiPHWURVTXH
VH SDVDQ D OD IXQFLyQ \ HV PX\ ~WLO SDUD KDFHU IXQFLRQHV FRQ XQ Q~PHUR
LQGHWHUPLQDGRGHDUJXPHQWRV$OLJXDOTXHORVDUUHJORVWLHQHXQDSURSLHGDGOHQJWK
TXHLQGLFDHOQ~PHURGHDUJXPHQWRVTXHIXHURQSDVDGRV7DPELpQFXHQWDFRQXQD
SURSLHGDG FDOOHH TXH FRQWLHQH OD UHIHUHQFLD GH OD IXQFLyQ \ TXH VH XWLOL]D SDUD
IXQFLRQHV UHFXUVLYDV (Q ODV YHUVLRQHV DQWHULRUHV HO REMHWR WHQtD XQ SDUiPHWUR
FDOOHUHOFXDOFRQWHQtDODUHIHUHQFLDGHODIXQFLyQSHURpVWH\DQRVHXWLOL]D

(MHUFLFLR

• 6HDEUHQORVDUFKLYRV)XQFLRQHVDV\IXQFLRQHVIOD
• $VHJ~UHVHGHTXHVHHQFXHQWUDHQPRGRHVWULFWRGHOFRPSLODGRU
• 6HERUUDRFRPHQWDHOFRQWHQLGRGHODIXQFLyQFRQVWUXFWRUDHQHODUFKLYRGH
FODVH
• 6HHVFULEHXQDQXHYDIXQFLyQGHQWURGHODFODVHOODPDGDVXPD


public function suma(x:int):int {


var total:int = 0;
trace(arguments.length);
for (var i:int = 0; i < arguments.length;
i++) {
total +=arguments[i];

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

}
return total;
}


(QODIXQFLyQFRQVWUXFWRUDVHHVFULEHODOODPDGDDODIXQFLyQ

trace(suma(1,2));

$OHMHFXWDUODIXQFLyQHOFRPSLODGRUGHEHUiHQWUHJDUHOQ~PHUR

(OSDUiPHWUR« UHVW 

(Q$6VHLQWURGXFHHOSDUiPHWURUHVWTXHSXHGHWRPDUFXDOTXLHUQRPEUHTXHQR
HVWp UHVHUYDGR SRU HO FRPSLODGRU 7LHQH ODV PLVPDV FDUDFWHUtVWLFDV TXH HO REMHWR
DUJXPHQWV SHUR QR SRVHH OD SURSLHGDG FDOOHH (VWH WLSR GH DUJXPHQWR GHEH LU
IRU]RVDPHQWHDOILQDOGHODOLVWDGHDUJXPHQWRV

(MHUFLFLR

• 6HDEUHQORVDUFKLYRV)XQFLRQHVDV\IXQFLRQHVIOD
• $VHJ~UHVHGHTXHVHHQFXHQWUDHQPRGRHVWULFWRGHOFRPSLODGRU
• 6HERUUDRFRPHQWDHOFRQWHQLGRGHODIXQFLyQFRQVWUXFWRUDHQHODUFKLYRGH
FODVH
• 6H HVFULEH XQD QXHYD IXQFLyQ GHQWUR GH OD FODVH OODPDGD ]XPD TXH HV
SUiFWLFDPHQWHLJXDODODDQWHULRUSHURFRQ´]µ


public function zuma(...argumentos):int {


var total:int = 0;
for (var i:int = 0; i < argumentos.length;
i++) {
total +=argumentos[i];
}
return total;
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHPSORSUiFWLFRXVRGHFRQGLFLRQDOHV

1RWD

(VWHHMHUFLFLRQRIXQFLRQDHQPRGRHVWULFWRGHFRPSLODFLyQ

(MHPSORSUiFWLFRXVRGHFRQGLFLRQDOHV
3DUD HMHPSOLILFDU HO XVR GH FRQGLFLRQDOHV KDUHPRV XQD FODVH GH DSR\R FRQ ODV
YDOLGDFLRQHV GH XQ IRUPDWR GH HQWUDGD (VWD FODVH QR OD OODPDUHPRV GHVGH HO
'RFXPHQW&ODVVSRUTXHSRUORJHQHUDOHVOODPDGDSRURWUDVFODVHV(QHVWHHMHPSOR
YDOLGDUHPRV XQ FRUUHR HOHFWUyQLFR &RPR YHUi HVWDPRV FUHDQGR PpWRGR HVWiWLFR
VWDWLF HOFXDOQRVSHUPLWLUiXVDUHOPpWRGRVLQFUHDUXQDLQVWDQFLDGHFODVHFRQOD
VHQWHQFLDQHZ
• 6HDEUHXQDUFKLYR)ODVK$FWLRQ6FULSW\VHJXDUGDFRPRYDOLGDFLRQHVIOD
HQODFDUSHWDGHWUDEDMR
• $KRUDVHDEUHXQDUFKLYR$FWLRQ6FULSW\VHJXDUGDFRPR9DOLGDFLRQHVDVHQ
ODFDUSHWDPLV&ODVHV
• $VHJ~UHVHGHTXHVHHQFXHQWUDHQPRGRHVWULFWRGHOFRPSLODGRU
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{

public class Validaciones {

public function Validaciones() {


}

public static function


validaMail(email:String):Boolean {
var bandera:Boolean=true;
//
if (email.length<7) {
bandera=false;
trace("Demasiado

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

pequeño",email.length, email)
} else if (email.indexOf("@") == -1) {
bandera=false;
trace("No tiene arroba")
//
} else if (email.indexOf(".") == -1) {
bandera=false;
trace("No tiene punto")
//
} else if
(email.indexOf("@")>email.indexOf(".")) {
bandera=false;
trace("El punto se encuentra antes
que la arroba");
//
} else if
(email.lastIndexOf(".")>email.length-2) {
bandera=false;
trace("No tiene extension .com ");
}
return bandera;
}
}
}


&RPRKDEUiREVHUYDGRHVWDFODVHQRVHH[WLHQGHDODVFODVHV0RYLH&OLSQLD6SULWH
\D TXH QR OD OODPDUHPRV GHVGH HO'RFXPHQW &ODVV (O ~QLFR PpWRGR UHJUHVDUi XQ
YDORUGHYHUGDGHURHQFDVRGHTXHQRVHKD\DGHWHFWDGRQLQJ~QHUURU\IDOVRHQHO
FDVRGHKDEHUORHQFRQWUDGRSHURQRLQGLFDFXiOHUURUIXHHQFRQWUDGR


• $EUDHODUFKLYRYDOLGDFLRQHVIOD6HOHFFLRQHHOSULPHUIRWRJUDPDFODYHGHOD
FDSD\DEUDHOSDQHOGHDFFLRQHV
• $KtHVFULELUiHOVLJXLHQWHFyGLJR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHPSORSUiFWLFRXVRGHORVFLFORV

import misClases.*;

var mail:String = "fj_arce@yahoo.com.mx";

if(Validaciones.validaMail(mail)){
trace("El mail es correcto")
} else {
trace("El mail es incorrecto");
}


• (MHF~WHVHODSHOtFXOD'HEHUiWHQHUXQUHVXOWDGRVLPLODUDOGHOD)LJ


)LJXUD6DOLGDGHODYHULILFDFLyQGHOFRUUHRHOHFWUyQLFR
)LJXUD

• 0RGLILTXH HO PDLO TXtWHOH OD DUURED R HO SXQWR \ FRUUD QXHYDPHQWH OD
SHOtFXOD
• ¢&yPR OR PRGLILFDUtD HO PpWRGR SDUD TXH  OH LQGLTXH SRU TXp HVWi PDO HO
FRUUHR"

(MHPSORSUiFWLFRXVRGHORVFLFORV
3DUDHMHPSOLILFDUHOXVRGHORVFLFORVYDPRVDKDFHUXQDFODVHGHDSR\RTXHJHQHUH
FODYHV GH DFFHVR HQ IRUPD DOHDWRULD (VWD FODVH QR UHTXLHUH VHU H[WHQGLGD D ODV
FODVHV0RYLH&OLSQL6SULWHSRUODVPLVPDVUD]RQHVTXHVHH[SOLFDURQHQHOHMHUFLFLR
DQWHULRU
• 6HDEUHXQDUFKLYR)ODVK$FWLRQ6FULSW\VHJXDUGDFRPRJHQHUDFODYHVIOD
HQODFDUSHWDGHWUDEDMR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$PDQHUDGHFRQFOXVLyQ 

• $KRUDVHDEUHXQDUFKLYR$FWLRQ6FULSW\VHJXDUGDFRPR*HQHUD&ODYHVDV
HQODFDUSHWDPLV&ODVHV
• $VHJ~UHVHGHTXHVHHQFXHQWUDHQPRGRHVWULFWRGHOFRPSLODGRU
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
public class GeneraClave {
public function GeneraClave() {
}
//
public static function
generaClaveAcceso(lon:uint):String {
var str:String =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567
890";
var cad:String = "";
var min:int = 0;
var max:int = str.length;
for (var i:int=0; i<10; i++) {
var randomNum:int =
Math.floor(Math.random()*(max-min));
cad += str.substr(randomNum, 1);
}
return cad;
}
}
}

(QHVWHHMHUFLFLRHVWDPRVXWLOL]DQGRGRVPpWRGRVGHODFODVH0DWK TXHWDPELpQHV
XQDFODVH HVWiWLFD HOPpWRGRUDQGRP JHQHUDQ~PHURVDOHDWRULRVHQWUH HO \ HO
 \ HO PpWRGR IORRU  TXH UHGRQGHD KDFLD DEDMR R WUXQFD FXDOTXLHU
Q~PHURFRQGHFLPDOHV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHPSORSUiFWLFRXVRGHORVFLFORV

• $EUDHODUFKLYRYDOLGDFLRQHVIOD6HOHFFLRQHHOSULPHUIRWRJUDPDFODYHGHOD
FDSD\DEUDHOSDQHOGHDFFLRQHV
• $KtHVFULELUiHOVLJXLHQWHFyGLJR


import misClases.*;

for (var i:int =0; i<10; i++) {


trace(GeneraClave.generaClaveAcceso(8));
}

• (MHF~WHVHODSHOtFXOD'HEHUiWHQHUXQUHVXOWDGRVLPLODUDOGHOD)LJ


)LJXUD*HQHUDFLyQGHFODYHVDOHDWRULDV
)LJXUD

• 0RGLILTXHORVSDUiPHWURVSDUDJHQHUDUFODYHVGHRFDUDFWHUHV
• ¢&yPRPRGLILFDUtDHOPpWRGRSDUDTXHWDPELpQVHJHQHUDUDQODVFODYHVFRQ
FDUDFWHUHVHVSHFLDOHV"

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

6HQWHQFLDVFRQGLFLRQDOHV\FLFORV 

$PDQHUDGHFRQFOXVLyQ

/DVHVWUXFWXUDVFRQGLFLRQDOHVGDQLQWHOLJHQFLDDOSURJUDPD\ORVFLFORVGDQSRWHQFLD
DQXHVWUDSURJUDPDFLyQHQHVWHFDStWXORVHHVWXGLDURQODVVHQWHQFLDVFRQGLFLRQDOHV
\ORVEXFOHVRFLFORV
‡ 6HQWHQFLDLI
‡ 6HQWHQFLDLIHOVHLI
%XFOHVRFLFORV
%XFOHVRFLFORV
‡ 6HQWHQFLDIRU
‡ 6HQWHQFLDIRULQ
‡ 6HQWHQFLDIRUHDFKLQ
‡ 6HQWHQFLDZKLOH
‡ 6HQWHQFLDGRZKLOH
)XQFLRQHV
)XQFLRQHV
‡ )XQFLRQHVJOREDOHV
‡ 0pWRGRV
‡ )XQFLRQHVSHUVRQDOL]DGDV
‡ /ODPDGRRLQYRFDFLyQGHXQDIXQFLyQ
‡ )XQFLRQHVGHXVXDULR
‡ )XQFLyQWLSRVHQWHQFLD
‡ )XQFLRQHVWLSRH[SUHVLRQHV
‡ )XQFLRQHVTXHUHJUHVDQYDORUHV
‡ )XQFLRQHVDQLGDGDV
‡ 3DVDUSDUiPHWURVSRUYDORURSRUUHIHUHQFLD
‡ 9DORUHVSUHGHWHUPLQDGRVHQODVIXQFLRQHV
‡ (OREMHWRDUJXPHQWV
‡ (OSDUiPHWUR« UHVW 


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH
 $PDQHUDGHFRQFOXVLyQ


&RQHVWRVHOHPHQWRVVHSXHGHQGHVDUUROODUSURJUDPDVVHQFLOORVFRPR
‡ (MHPSORSUiFWLFRXVRGHFRQGLFLRQDOHV
‡ (MHPSORSUiFWLFRXVRGHORVFLFORV
3DUD UHDOL]DU SURJUDPDV FODURV PiV DPLJDEOHV SDUD HO XVXDULR QHFHVLWDPRV
DSUHQGHUDPDQHMDUXQFRQFHSWRIXQGDPHQWDOORVHOHPHQWRVYLVXDOHV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


La lista de visualización 4



,QWURGXFFLyQ
(Q HVWH FDStWXOR UHYLVDUHPRV XQR GH ORV FDPELRV PiV VLJQLILFDWLYRV \ SRGHURVRV
GH $FWLRQ6FULSW  OD OLVWD GH YLVXDOL]DFLyQ R 'LVSOD\ /LVW (VWH QXHYR PRGHOR GH
$FWLRQ6FULSWFRUUHGHVGHODYHUVLyQGHO)ODVK3OD\HU/DHVWUXFWXUDGHYLVXDOL]DFLyQ
HQ ODV YHUVLRQHV  \  VH SXHGHQ FRPSDUDU FRQ XQ HQRUPH UDVFDFLHORV GH
SLVRVGHDOWR\SLVRVVXEWHUUiQHRVSRUFDGDOtQHDGHWLHPSR/D
PDQHUDGHPDQLSXODUHVWDSLODHUDSRUPHGLRGHODV´SURIXQGLGDGHVµR´GHSWKVµ
3DUDFUHDUXQFOLSGHSHOtFXODRXQWH[WRTXHHVWDEDUHODFLRQDGRFRQORVFOLSV
GHSHOtFXODVGHEtDPRVLQGLFDUOHODSURIXQGLGDG\FRQWiEDPRVFRQXQPpWRGRSDUD
HQFRQWUDU OD VLJXLHQWH SURIXQGLGDG GLVSRQLEOH JHW1H[W+LJKHVW'HSWK  6yOR SRGtD
KDELWDU XQ REMHWR FDGD XQR GH ORV SLVRV \ VL OOHJDED RWUR ´LQTXLOLQRµ  HO DQWHULRU
GHVDSDUHFtD¢UHFXHUGD"
(O QXHYR PRGHOR GH REMHWRV HV PXFKR PiV IOH[LEOH SXHV HV PHQRV
´MHUiUTXLFRµ /R SRGUtDPRV FRPSDUDU FRQ XQ FRQGRPLQLR KRUL]RQWDO FRQ HGLILFLRV
PiVSHTXHxRV\PXFKRPiVPDQHMDEOHVFRPRYHUHPRVDFRQWLQXDFLyQ
8QSXQWRPX\LPSRUWDQWHHVTXHHOPRGHORDQWHULRUHVWDEDEDVDGRHQODFODVH
0RYLH&OLS 'H KHFKR HO HVFHQDULR VH SRGUtD FRQVLGHUDU FRPR XQ HQRUPH FOLS GH
SHOtFXOD (Q HO QXHYR PRGHOR HO 'LVSOD\ /LVW OD FODVH 0RYLH&OLS HV OD PiV EDMD \
SHVDGD 6H FUHDURQ QXHYDV FODVHV PXFKR PiV HVSHFLDOL]DGDV \ OLJHUDV 7RGDV ODV
FDUDFWHUtVWLFDV DQWHULRUHV KDFHQ D OD YHUVLyQ  GH $FWLRQ6FULSW DO PHQRV  YHFHV
PiVUiSLGD


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QWURGXFFLyQ

7,3'(&(57,),&$&,Ð
7,3'(&(57,),&$&,Ð1
/DOLVWDGH YLVXDOL]DFLyQR 'LVSOD\/LVWHV XQFRQFHSWRIXQGDPHQWDOHQHOH[DPHQGH
FHUWLILFDFLyQ$&(&RQVWDQWHPHQWHOHSUHJXQWDUiQFRQFHSWRVUHODFLRQDGRVSRUHMHPSOR
FyPRDxDGLURPRYHUORVREMHWRVYLVXDOHV

8QDFDUDFWHUtVWLFDGHODOLVWDGHYLVXDOL]DFLyQHVTXHVLXQREMHWRQRVHYHHQ
HOHVFHQDULRKDVWDTXHOR´LQVFULELPRVµDODOLVWDRHQRWUDVSDODEUDVORKDFHPRVVX
´KLMLWRµ'HKHFKRGHEHPRVDSUHQGHUDOJXQRVQXHYRVWpUPLQRVFRPR´UHSDUHQWDUµR
FDPELDU GH SDULHQWH \ RWURV LJXDO GH GLYHUWLGRV TXH LUHPRV DSUHQGLHQGR D OR ODUJR
GHOFDStWXOR7RGDSHOtFXODVZIWLHQHXQDOLVWDGHYLVXDOL]DFLyQFRQWUHVHOHPHQWRV
8Q HVFHQDULR
HVFHQDULR (V OD SDUWH VXSHULRU GH OD MHUDUTXtD GH OD OLVWD GH YLVXDOL]DFLyQ
&DGD XQR GH ORV HOHPHQWRV WHQGUi XQD QXHYD SURSLHGDG OODPDGD VWDJH FRQ
PLQ~VFXODQRWLHQHQDGDTXHYHUFRQODFODVH6WDJH 
&RQWHQHGRUHV GH REMHWRV
REMHWRV 3HUPLWH UHXQLU D RWURV REMHWRV GH YLVXDOL]DFLyQ 'H
KHFKRHO HVFHQDULRVH SXGLHUDFRQVLGHUDUFRPRHOFRQWHQHGRU SULQFLSDO &XDQGR HO
FRQWHQHGRUGHVDSDUHFHVXVKLMLWRVWDPELpQGHVDSDUHFHQ
2EMHWRV GH YLVXDOL]DFLyQ
YLVXDOL]DFLyQ 6RQ ORV REMHWRV TXH ILQDOPHQWH VH GLEXMDQ HQ HO
HVFHQDULR $OJXQDV FODVHV SHUPLWHQ FRQWHQHU RWURV REMHWRV GH YLVXDOL]DFLyQ FRPR
ORVREMHWRVGHODVFODVHV0RYLH&OLS6SULWHR6WDJH2WURVREMHWRVVRQVyORYLVXDOHV
FRPRODFODVH7H[W)LHOG

)LJXUD-HUDUTXtDGHOLVWDGHYLVXDOL]DFLyQ
)LJXUD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

&RPRSXHGHYHUHQOD)LJXQDOLVWDGHYLVXDOL]DFLyQVHDVHPHMDDXQiUERO
JHQHDOyJLFR TXH YD D VHU PXFKR PiV VHQFLOOR GH PDQLSXODU TXH OD DQWLJXD 2WUR
SXQWR PX\ LPSRUWDQWH HV TXH OD EDVH GH OD MHUDUTXtD \D QR HV OD FODVH 0RYLH&OLS
VLQRODQXHYD'LVSOD\2EMHWF/DPD\RUtDGHORVQXHYRVREMHWRVYLVXDOHVGHSHQGHQGH
HVWDFODVH

)LJXUD-HUDUTXtDGHFODVHVYLVXDOHV
)LJXUD
&RPRSXHGHYHUODFODVH0RYLH&OLSTXHGyKDVWDODSDUWHEDMDGHODMHUDUTXtD
SRU OR TXH SDUD DSURYHFKDU OD YHORFLGDG GH $FWLRQ6FULSW  GHEHPRV XWLOL]DU ORV
REMHWRV PiV OLJHURV TXH QXHVWUD YLHMD \ SHVDGD FODVH 0RYLH&OLS $ FRQWLQXDFLyQ OH
PRVWUDPRVXQDOLVWDGHODVSULQFLSDOHVFODVHVYLVXDOHV
7DEOD&ODVHVGHYLVXDOL]DFLyQFRP~QPHQWHXWLOL]DGDV
7DEOD
Clase de Descripción
visualización
'LVSOD\2EMHFW /D FODVH EDVH GH WRGDV ODV FODVHV GH OLVWD GH
YLVXDOL]DFLyQ 'LVSOD\2EMHFW GHILQH ODV SURSLHGDGHV \
PpWRGRV FRPXQHV D WRGDV ODV FODVHV GH YLVXDOL]DFLyQ
/D FODVH 'LVSOD\2EMHFW QR HVWi SHQVDGD SDUD
LQVWDQFLDUVHGLUHFWDPHQWH
%LWPDS /DFODVH%LWPDSSHUPLWHODFUHDFLyQ\PDQLSXODFLyQGH
LPiJHQHVSRUPHGLRGHORVPpWRGRV%LWPDS'DWD
6KDSH /D FODVH 6KDSH FRQWLHQH OD SURSLHGDG JUiILFD TXH
SHUPLWH GLEXMDU XWLOL]DQGR OtQHDV UHOOHQRV FtUFXORV
UHFWiQJXORVHWFpWHUD
 &RQWLQ~D 

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 $xDGLUXQHOHPHQWRDODOLVWDGHYLVXDOL]DFLyQ

7DEOD &RQWLQXDFLyQ 
7DEOD
Clase de Descripción
visualización
6SULWH 6SULWH HV VLPLODU D VRPEUDV SHUR SXHGH FRQWHQHU
REMHWRVGHYLVXDOL]DFLyQKLMRVWDOHVFRPRWH[WR\YLGHR
6HSXHGHSHQVDUHQXQD6SULWHFRPRXQD0RYLH&OLSVLQ
XQDOtQHDGHWLHPSR
0RYLH&OLS 0RYLH&OLSHVODFODVHIDPLOLDUFRQXQDOtQHDGHWLHPSR\
PpWRGRV SDUD FRQWURODU OD FDEH]D OHFWRUD 3XHVWR TXH
0RYLH&OLSHVXQDVXEFODVHGH6SULWHSXHGHGLEXMDUHQ
VX LQWHULRU \ SXHGH FRQWHQHU WDPELpQ REMHWRV GH
YLVXDOL]DFLyQKLMRV
9LGHR /DFODVH9LGHRVHHQFXHQWUDHQHOSDTXHWHIODVKPHGLD
SHUR WDPELpQ HV XQD VXEFODVH GH 'LVSOD\ 2EMHFW /DV
LQVWDQFLDVGHYLGHRVHXWLOL]DQSDUDUHSURGXFLUYLGHR
7H[W)LHOG /D FODVH 7H[W)LHOG TXH VH HQFXHQWUD HQ HO SDTXHWH
IODVK WH[W SHUPLWH OD FUHDFLyQ GH FDPSRV GH WH[WR
GLQiPLFRV\GHHQWUDGDGHWH[WR
/RDGHU /DV LQVWDQFLDV /RDGHU VH XWLOL]DQ SDUD FDUJDU DFWLYRV
YLVXDOHV H[WHUQRV FRPR RWURV DUFKLYRV GH LPDJHQ R
SHOtFXODVVZI

1RWD

2WUD GH ODV SDODEUDV ´GLYHUWLGDVµ HV LQVWDQFLDUVH 3URYLHQH GH OD SDODEUD H LQJOpV
LQVWDQFH LQVWDQFLD HQHVSDxROGHEHUtDGHFLUVH´FUHDUODLQVWDQFLDµSHURFRPRHVXQ
WpUPLQRFRP~QHQWUHORVIODVKHURVORXWLOL]DPRVGHYH]HQFXDQGR

%XHQRGHVSXpVGHODWHRUtDXVWHGVHSUHJXQWDUi¢FyPRFUHRXQREMHWR"

$xDGLUXQHOHPHQWRDODOLVWDGHYLVXDOL]DFLyQ
8QD GH ODV WDUHDV TXH D YHFHV HV PiV IUXVWUDQWH FXDQGR HPSH]DPRV D DSUHQGHU
$6HVTXHFUHDPRVREMHWRVFRQ$FWLRQ6FULSW\pVWHQRDSDUHFHHQHOHVFHQDULR
&ODUR VL FUHDPRV REMHWRV FRQ HO ,'( QR WHQHPRV HVWH SUREOHPD 3RU HMHPSOR
VXSRQJDPRV TXH GHVHD FUHDU XQ WH[WR HQ WLHPSR GH HMHFXFLyQ FRQ HO VLJXLHQWH
FyGLJR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 


var saludo:TextField = new TextField();

/DOtQHDDQWHULRUGHFyGLJRFUHDXQREMHWRGHYLVXDOL]DFLyQ7H[W)LHOGHQHO$90SHUR
HOREMHWRQRVHGLEXMDWRGDYtDHQODSDQWDOODSRUTXHHOREMHWRQRH[LVWHHQHOPRWRU
GHUHQGHUHVGHFLUHQODOLVWDGHYLVXDOL]DFLyQ3DUDFUHDUHOREMHWRHQHOPRWRUGH
UHQGHUHOREMHWRVHWLHQHTXHDxDGLUDODMHUDUTXtDGHOLVWDGHYLVXDOL]DFLyQ

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
8Q WLSR GH SUHJXQWDV IUHFXHQWHV HQ HO H[DPHQ GH FHUWLILFDFLyQ $&( HV PRVWUDU XQ
SHGD]RGHFyGLJR\QRVSUHJXQWDQTXHHQFRQWUHPRVHOHUURU$OPHQRVKD\GRVGHHVWDV
SUHJXQWDVUHODFLRQDGDVFRQORV7H[W)LHOGV

3DUDTXHHOREMHWR´DSDUH]FDµHVQHFHVDULRDxDGLUORDODOLVWDGHYLVXDOL]DFLyQ
FRQ ORV PpWRGRV DGG&KLOG  \ DGG&KLOG$W  D XQ FRQWHQHGRU HO FXDO SXHGH VHU HO
PLVPR HVFHQDULR  3RGUtDPRV GHFLU TXH HO REMHWR FRQWHQHGRU ´DGRSWDµ DO REMHWR
YLVXDOKDFLpQGRORVXKLMR
+DJDPRVHOVLJXLHQWHHMHUFLFLR

(MHUFLFLR

• 6H DEUH XQ DUFKLYR )ODVK $6 QXHYR \ VH JXDUGD FRPR OLVWDIOD HQ HO
GLUHFWRULRGHWUDEDMR
• $KRUD VH DEUH XQ DUFKLYR $FWLRQ6FULSW QXHYR \ VH JXDUGD HQ OD FDUSHWD
PLV&ODVHVFRQHOQRPEUH/LVWDDV
• 6H UHODFLRQDQ DPERV DUFKLYRV HQ HO FDPSR 'RFXPHQW FODVV GHO ,QVSHFWRU
GH SURSLHGDGHV \ VH YHULILFD TXH HO FRPSLODGRU VH HQFXHQWUH HQ PRGR
HVWULFWR
• (QHODUFKLYRGHFODVHVVHHVFULEHHOVLJXLHQWHFyGLJR


package misClases
{
import flash.display.DisplayObjectContainer;
import flash.display.Sprite;
import flash.text.TextField;
public function Lista()

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 $xDGLUXQHOHPHQWRDODOLVWDGHYLVXDOL]DFLyQ

{
// Crear un objeto de visualización en el motor
// de actionscript
var hello:TextField = new TextField();
hello.text = "Hola Mundo";
}
}
}

• (MHF~WHVHODSHOtFXOD1LHQHOHVFHQDULRQLHQODSDQWDOODGHVDOLGDGHEHUi
DSDUHFHUQLQJ~QOHWUHUR
• $KRUD VH FDSWXUD HQ OD IXQFLyQ FRQVWUXFWRUD GHEDMR GH OD DVLJQDFLyQ GHO
WH[WRHOVLJXLHQWHFyGLJR

// Crear el objeto de visualización en el motor de render


// al añadirlo a la lista de visualización para que
// el campo de texto se dibuje en la pantalla
addChild( hello );

• (MHF~WHVHQXHYDPHQWHODSHOtFXOD'HEHUiDSDUHFHUHQODHVTXLQDVXSHULRU
L]TXLHUGD >ODV FRRUGHQDGDV  @ HO OHWUHUR ´+ROD 0XQGRµ WDO FRPR VH
DSUHFLDHQOD)LJ


)LJXUD/LVWDGHYLVXDOL]DFLyQFRQFDPSRGHWH[WR
)LJXUD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

$TXtODFODVH/LVWDHVODFODVHSULQFLSDOSDUDODSHOtFXODVZI\DPSOtDODFODVH
6SULWH'HELGRDODMHUDUTXtDGHFODVHGHVFULWDHQOD)LJ/LVWDHVXQDVXEFODVH
LQGLUHFWD GH 'LVSOD\2EMHFW&RQWDLQHU \ HV FDSD] GH WHQHU P~OWLSOHV LQVWDQFLDV
'LVSOD\2EMHFW 6SULWH0RYLH&OLS7H[)LHOGHWF FRPRKLMRV

(VWR SHUPLWH HO XVR GHO PpWRGR DGG&KLOG  SDUD DxDGLU XQ REMHWR GH
YLVXDOL]DFLyQFRPRXQKLMRHQHOFRQWHQHGRU

&XDQGRFUHDPRVHOREMHWR7H[)LHOGQRVHYLVXDOL]yKDVWDTXHORDxDGLPRVDOD
OLVWDGHYLVXDOL]DFLyQFRQHOPpWRGRDGG&KLOG 

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
/DVVHQWHQFLDVDGG&KLOG\UHPRYH&KLOGVRQODVSUHIHULGDVHQHOH[DPHQGHFHUWLILFD
FLyQDVtTXHSRQJDPXFKDDWHQFLyQDWRGRVORVGHWDOOHV

(MHUFLFLR

• 6HDEUHQORVDUFKLYRV)ODVK$6OLVWDIOD\/LVWDDV
• 6HERUUDHOFRQWHQLGRGHODIXQFLyQFRQVWUXFWRUD\VHVXVWLWX\HSRUHO
VLJXLHQWH

// Crear un campo de texto para mostrar algo de texto


var hello:TextField = new TextField();
hello.text = "Hola Mundo";

// Crear un contenedor para albergar el TextField


var contenedor:Sprite = new Sprite();

// Añadir el TextField como un hijo del contenedor


contenedor.addChild( hello ) ;

Como puede observar, estamos agregando un objeto visual (una caja de texto) a un
contenedor (un Sprite). Si ejecuta la película, no observará el texto hasta el
siguiente paso.

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 /LVWDGHYLVXDOL]DFLyQGHQWURGHXQFRQWHQHGRU

// Utilizar la referencia root especial como


// un contenedor y añadir el
// contenedor que alberga el texto para que
// aparezca en pantalla
// DisplayObjectContainer( root ) .
addChild( contenedor ) ;

/LVWDGHYLVXDOL]DFLyQGHQWURGHXQFRQWHQHGRU
&RPR VH KDEtD FRPHQWDGR ORV FRQWHQHGRUHV SXHGHQ DOEHUJDU D YDULRV REMHWRV
YLVXDOHV \ D RWURV FRQWHQHGRUHV ORV FXDOHV VRQ FRQVLGHUDGRV VXV KLMRV (O
FRQWHQHGRU ´SDGUHµ PDQWLHQH XQD OLVWD GH KLMRV LQWHUQDPHQWH (O RUGHQ GH HVWRV
KLMRV HQ OD OLVWD GHWHUPLQD HO RUGHQ HQ OD SDQWDOOD &DGD KLMR WLHQH XQD SRVLFLyQ
FRQVHFXWLYD HQ OD OLVWD VHJ~Q VH HVSHFLILFD SRU HO YDORU tQGLFH GH XQ HQWHUR FRPR
XQDWDEOD

,QWHUQDPHQWHGHQWURGHOFRQWHQHGRUVHWLHQHXQDSLODGHSURIXQGLGDGHVGRQGH
ODV SURIXQGLGDGHV PD\RUHV VH YHQ HQFLPD GH ODV LQIHULRUHV SRU HMHPSOR  VH YH
´HQFLPDµGHHQFLPDGHHWFSHURFRQODVDOYHGDGGHTXHQRKD\KXHFRVHQ
ODSLODFRPRHQHOPRGHORGHYLVXDOL]DFLyQGH$FWLRQ6FULSW)LJ

)LJXUD0RGHORGHYLVXDOL]DFLyQGH$FWLRQ6FULSW
)LJXUD


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

6L DxDGLPRV XQ QXHYR REMHWR GH YLVXDOL]DFLyQ DO REMHWR FRQWHQHGRU pVWH
RFXSDUiHO~OWLPROXJDUHQODSLOD VHGLEXMDYLVXDOPHQWHVREUHORVRWURVKLMRVHQHO
FRQWHQHGRU  \D TXH DGG&KLOG VLW~D HO KLMR GHODQWH GH OD OLVWD GH KLMRV RWRUJiQGROH
HO VLJXLHQWH tQGLFH GH SRVLFLyQ PiV DOWR 3DUD DxDGLU XQ KLMR \ HVSHFLILFDU D GyQGH
SHUWHQHFHHQ HORUGHQGHDSLODPLHQWR YLVXDODOPLVPRWLHPSRVHXWLOL]DHOPpWRGR
DGG&KLOG$W )LJ

)LJXUD1XHYRREMHWRGHYLVXDOL]DFLyQDOREMHWRFRQWHQHGRU
)LJXUD 

(OPpWRGRDGG&KLOG$W DGRSWDGRVSDUiPHWURVHOREMHWRGHYLVXDOL]DFLyQKLMRD
DxDGLU \ OD SRVLFLyQ HQ HO RUGHQ GH DSLODPLHQWR TXH GHEHUtD XWLOL]DU HO KLMR
(VSHFLILFDUXQDSRVLFLyQGHKDFHTXHHOKLMRVHDxDGDDOILQDOGHODOLVWD\KDFHTXH
HOKLMRDSDUH]FD YLVXDOPHQWH GHEDMRGHORVRWURVREMHWRV

/R PDUDYLOORVR GH HVWD IRUPD GH LQVHUWDU REMHWRV HV TXH SXHGH KDFHUOR HQ
FXDOTXLHU OXJDU TXH GHVHH \ VXV ´KHUPDQLWRVµ VH UHDFRPRGDUiQ SDUD QR GHMDU
KXHFRV DGHPiV GH TXH QLQJXQR HV GHVWUXLGR FRPR HQ OD YHUVLyQ  $KRUD TXH VL
GDPRV XQ UDQJR PD\RU TXH ORV HOHPHQWRV GH OD SLOD VH JHQHUD XQ 5DQJH(UURU \
KDFHTXHHOKLMRQRVHDxDGD

1RWD

6L OD HVWUXFWXUD HQ $FWLRQ6FULSW  GH REMHWRV VH DVHPHMDED D XQ HQRUPH HGLILFLR HO
QXHYR PRGHOR GH REMHWRV YLVXDOHV GLVSOD\ OLVW  VH SRGUtD DVHPHMDU D XQ FRQGRPLQLR
KRUL]RQWDOFRQSHTXHxDVFRQVWUXFFLRQHVTXHVRQPiVIiFLOHVGHPDQLSXODU


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 /LVWDGHYLVXDOL]DFLyQGHQWURGHXQFRQWHQHGRU

(OVLJXLHQWHHMHUFLFLRFUHDWUHVFtUFXORVGHFRORUHVGLIHUHQWHV/RVFtUFXORVURMR\D]XOVH
DxDGHQFRQHOPpWRGRDGG&KLOG KDFLHQGRTXHHOFtUFXORD]XODSDUH]FDHQFLPDSRUTXH
VHDxDGLyGHVSXpVGHOFtUFXORURMR'HVSXpVGHGRVOODPDGDVDDGG&KLOG HOFtUFXORURMR
HVWiHQODSRVLFLyQ\HOFtUFXORD]XOHQODSRVLFLyQ(OFtUFXORYHUGHVHLQVHUWDOXHJR
HQWUHORVGRVFRQHOPpWRGRDGG&KLOG$W HVSHFLILFDQGRODSRVLFLyQFRPRHOOXJDUHQOD
OLVWD(OFtUFXORD]XOSUHYLDPHQWHHQODSRVLFLyQVHPXHYHDODSRVLFLyQ\HOFtUFXOR
YHUGHVHLQVHUWDHQODSRVLFLyQHQVXOXJDU
(OUHVXOWDGRILQDOHVTXHHOFtUFXORURMRHQODSRVLFLyQVHGLEXMDSRUGHEDMRGHO
FtUFXORYHUGHHQODSRVLFLyQ\HOFtUFXORYHUGHVHGLEXMDSRUGHEDMRGHOFtUFXORD]XOHQ
ODSRVLFLyQ

(MHUFLFLR

• 6H DEUH XQ DUFKLYR )ODVK $6 QXHYR \ VH JXDUGD FRPR FLUFXORIOD HQ HO
GLUHFWRULRGHWUDEDMR
• $KRUD VH DEUH XQ DUFKLYR $FWLRQ6FULSW QXHYR \ VH JXDUGD HQ OD FDUSHWD
PLV&ODVHVFRQHOQRPEUH&LUFXORDV
• 6H UHODFLRQDQ DPERV DUFKLYRV HQ HO FDPSR 'RFXPHQW FODVV GHO ,QVSHFWRU
GH SURSLHGDGHV \ VH YHULILFD TXH HO FRPSLODGRU VH HQFXHQWUH HQ PRGR
HVWULFWR
• (QHODUFKLYRGHFODVHVVHHVFULEHHOVLJXLHQWHFyGLJR


package misClases{
import flash.display.*;
public class Circulo extends Sprite {
public function Circulo( ) {
// Crear tres círculos de
// colores diferentes y
// cambiar sus coordenadas para
// que estén escalonados y
//no estén todos situados en (0,0).
var rojo:Shape = crearCirculo( 0xFF0000, 10
);

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

rojo.x = 10;
rojo.y = 20;
var verde:Shape = crearCirculo ( 0x00FF00,
10 );
verde.x = 15;
verde.y = 25;
var azul:Shape = crearCirculo ( 0x0000FF,
10 );
azul.x = 20;
azul.y = 20;
// Primero añada el círculo rojo,
// luego añada el círculo azul
// (de modo que se dibuje sobre el rojo)
addChild( rojo );
addChild( azul );
// Sitúe el círculo verde entre
// los círculos rojo y azul
addChildAt(verde, 1 );
}

// Función de ayuda para crear una


// forma de círculo con un
// color dado y radio
public function crearCirculo ( color:uint,
radius:Number ):Shape {
var shape: Shape = new Shape ( );
shape.graphics.beginFill( color );
shape.graphics.drawCircle( 0, 0, radius );

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &yPRUHSDUHQWDU UHSDUHQW REMHWRVHQODOLVWDGHYLVXDOL]DFLyQ

shape.graphics.endFill( );
return shape;
}
}
}

1RWD

&XDQGRVHUHSDUHQWD XQQXHYDSDODEUDPiVDODFROHFFLyQTXHSURYLHQHGHOWpUPLQR
UHSDUHQWRFDPELDUGHSDULHQWHHVGHFLUGHFRQWHQHGRU XQREMHWRGHYLVXDOL]DFLyQQR
HVQHFHVDULRHOLPLQDUORSULPHUR\DTXHHOPpWRGRDGG&KLOG VHRFXSDGHHOOR

&yPR UHSDUHQWDU UHSDUHQW  REMHWRV HQ OD OLVWD


GHYLVXDOL]DFLyQ
+DVWD HO PRPHQWR VyOR VH KD KDEODGR GH DxDGLU QXHYRV HOHPHQWRV D OD OLVWD GH
YLVXDOL]DFLyQ SHUR ¢TXp VXFHGH FXDQGR HO PpWRGR DGG&KLOG  VH XWLOL]D HQ XQ KLMR
TXH\DHVWiHQODOLVWDGH YLVXDOL]DFLyQFRPRXQKLMRGHRWURFRQWHQHGRU" eVWHHV
SUHFLVDPHQWHHOFRQFHSWRGHUHSDUHQWDU(OKLMRVHHOLPLQDGHOFRQWHQHGRUHQHOTXH
UHVLGHDFWXDOPHQWH VXSDSi \VHVLW~DHQHOFRQWHQHGRUDOTXHVHDxDGH VXQXHYR
SDSi 

(O VLJXLHQWH HMHPSOR PXHVWUD OD UHSDUHQWDUL]DFLyQ HQ DFFLyQ 6H FUHD XQ
FRQWHQHGRU SDUD PRVWUDU QXHVWURV DPLJRV ORV FtUFXORV URMR YHUGH \ D]XO TXH VH
DxDGHQ FRPR KLMRV \ HO FRQWHQHGRU VH DxDGH D OD OLVWD GH YLVXDOL]DFLyQ 2WUR
FRQWHQHGRUVHFUHD\DxDGHDODOLVWDGHYLVXDOL]DFLyQWDPELpQ\OXHJRHOFtUFXORURMR
VHPXHYHGHVGHHOSULPHUFRQWHQHGRUDOVHJXQGR

3XHVWR TXH HO VHJXQGR FRQWHQHGRU HVWi YLVXDOPHQWH VREUH HO SULPHU
FRQWHQHGRU HQ OD OLVWD GH YLVXDOL]DFLyQ WRGRV ORV KLMRV HQ HO VHJXQGR FRQWHQHGRU
DSDUHFHQVREUHORVKLMRVHQHOSULPHUFRQWHQHGRU(OFtUFXORURMRVHUHSDUHQWDGHVGH
HO SULPHU FRQWHQHGRU DO VHJXQGR VLPSOHPHQWH DO LQYRFDU HO PpWRGR DGG&KLOG 

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

(MHUFLFLR

• 6HDEUHQORVDUFKLYRVFLUFXORIOD\&LUFXORDV
• 9HULItTXHVHTXHHOFRPSLODGRUVHHQFXHQWUHHQPRGRHVWULFWR
• 6HERUUDRFRPHQWDODVOtQHDVTXHDJUHJDQHOHPHQWRVYLVXDOHVDODOLVWD\
VHHVFULEHQORVVLJXLHQWHVFRPDQGRV


// Crear un contenedor para albergar los tres círculos y


añadir los
// círculos al contenedor
var contenedor1:Sprite = new Sprite( );
contenedor1.addChild( rojo );
contenedor1.addChild( verde );
contenedor1.addChild( azul );

// Añadir el contenedor a la lista de visualización


addChild( contenedor1 );

• (MHFXWHODSHOtFXOD\REVHUYDUiTXHHORUGHQGHORVREMHWRVGHEHUiVHUURMR
YHUGH\KDVWDDUULEDHOD]XO'HVSXpVGHHVWDVOtQHDVSHURDQWHVGHODOODYH
GH FLHUUH GH OD IXQFLyQ FRQVWUXFWRUD VH HVFULEH HO VLJXLHQWH FyGLJR SDUD
PRYHUHOREMHWRGHOFRQWHQHGRUDOFRQWHQHGRU


// Crear un segundo contenedor y añadirle la lista de


visualización
var contenedor2:Sprite = new Sprite( );
addChild( contenedor2 );

// Reparentar el círculo rojo desde el contenedor 1 a


contenedor
//2, que tiene el efecto de dibujar el círculo rojo sobre el
verde y

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (OLPLQDUXQREMHWRGHODOLVWDGHYLVXDOL]DFLyQ

//azul
contenedor2.addChild( rojo );


• &RPR HO FRQWHQHGRU HVWi SRU HQFLPD GHO FRQWHQHGRU HQ OD OLVWD GH
GHVSOHJDGRHOFtUFXORURMRVHPRYHUiSRUDUULEDGHORVRWURVFtUFXORV

$KRUDTXH\DVDEHPRVFyPRDxDGLUREMHWRVGHEHPRVDSUHQGHUDHOLPLQDUORV

(OLPLQDUXQREMHWRGHODOLVWDGHYLVXDOL]DFLyQ
3DUDHOLPLQDUXQREMHWRGHODOLVWDGHYLVXDOL]DFLyQQHFHVLWDPRVXWLOL]DUORVPpWRGRV
UHPRYH&KLOG RUHPRYH&KLOG$W 
(OPpWRGRUHPRYH&KLOG DGRSWDXQVRORSDUiPHWURTXHHVXQDUHIHUHQFLDDO
REMHWR GH YLVXDOL]DFLyQ TXH VH GHEHUtD HOLPLQDU GHO FRQWHQHGRU 6L VH VXSRQH TXH
XQ REMHWR VH WLHQH TXH HOLPLQDU \ QR HV XQ KLMR GHO FRQWHQHGRU VH HQYtD XQ
$UJXPHQW(UURU

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
(VFDVLVHJXURTXHHQHOH[DPHQGHFHUWLILFDFLyQ$&(OHSUHJXQWDUiQ
¢&yPRVHHOLPLQDXQHOHPHQWRYLVXDO"

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6QXHYR\VHJXDUGDFRPRUHPRYHUIODHQHO
GLUHFWRULRGHWUDEDMR
• 6HDEUHXQDUFKLYR$FWLRQ6FULSWQXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHV
FRQHOQRPEUH5HPRYHUDV
• $PERVDUFKLYRVVHUHODFLRQDQHQHOFDPSR'RFXPHQWFODVVGHO,QVSHFWRUGH
SURSLHGDGHV\VHYHULILFDTXHHOFRPSLODGRUVHHQFXHQWUHHQPRGRHVWULFWR

(QHODUFKLYRGHFODVHVVHHVFULEHHOVLJXLHQWHFyGLJR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

package misClases{
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.MouseEvent;

public class Remover extends Sprite {


// Crear una variable local para
// almacenar una referencia al
// TextField de modo que podamos eliminarlo
// más adelante
private var _cadena:TextField;

public function Remover() {


_cadena = new TextField();
_cadena.text = "Hola Mundo";

// Añadir el TextField hello a la


// lista de visualización
addChild( _cadena );

// Eliminar la etiqueta de la lista


// de visualización de este contenedor
public function
eliminaTexto(event:MouseEvent):void {
removeChild( _cadena );
}
}
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &yPRERUUDUXQHOHPHQWRVLQODUHIHUHQFLD

(O HMHPSOR GH FyGLJR DQWHULRU FUHD XQD YDULDEOH ORFDO BFDGHQD TXH DOPDFHQD XQD
UHIHUHQFLDDO7H[W)LHOGGHQWURGHODSURSLDFODVHeVWHHVXQSDVRQHFHVDULRSRUTXH
DO PpWRGR UHPRYH&KLOG  VH OH WLHQH TXH SDVDU XQD UHIHUHQFLD GHO REMHWR GH
YLVXDOL]DFLyQDHOLPLQDUSRUORTXHVHXWLOL]DBFDGHQDSDUDDOPDFHQDUODUHIHUHQFLD
SDUDPiVDGHODQWH
6L BFDGHQD QR HVWXYLHUD GLVSRQLEOH VH QHFHVLWDUtD WUDEDMR DGLFLRQDO SDUD
FRQVHJXLUXQDUHIHUHQFLDSDUDTXHHO7H[W)LHOGORHOLPLQHRVHSRGUtDXWLOL]DUHQVX
OXJDUHOPpWRGRUHPRYH&KLOG$W 

&yPRERUUDUXQHOHPHQWRVLQODUHIHUHQFLD
(Q FDVR GH TXH QR VH WHQJD XQD UHIHUHQFLD SDUD HO REMHWR GH YLVXDOL]DFLyQ TXH VH
GHVHD HOLPLQDU SXHGH XWLOL]DUVH HO PpWRGR UHPRYH&KLOG$W  6LPLODU DO PpWRGR
DGG&KLOG$W  HO PpWRGR UHPRYH&KLOG$W  DGRSWD XQ VROR SDUiPHWUR HO tQGLFH HQ OD
OLVWD GHO FRQWHQHGRU GH ORV REMHWRV GH YLVXDOL]DFLyQ KLMR D HOLPLQDU /RV YDORUHV
SRVLEOHVSDUDHOtQGLFHRVFLODQGHVGHDQXP&KLOGUHQ6LVHHVSHFLILFDXQtQGLFH
QR YiOLGR FRPR XQ YDORU QHJDWLYR R XQ YDORU PD\RU TXH HO Q~PHUR GH KLMRV HQ HO
FRQWHQHGRUVHODQ]DXQ5DQJH(UURU\QRVHHOLPLQDQLQJ~QKLMR

(MHUFLFLR

• $GRSWDU HO IUDJPHQWR GH FyGLJR DQWHULRU SDUD XWLOL]DU UHPRYH&KLOG$W 


PXHVWUDORVLJXLHQWH

package misClases{
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.MouseEvent;

public class Remover1 extends Sprite {


public function Remover1() {
var cadena:TextField =new TextField ();
cadena.text ="Hola Mundo";

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

//Añadir el TextField hello a la
//lista de visualización
addChild(cadena);

//Cuando se hace clic con el mouse en


//cualquier parte del escenario,
//eliminar la etiqueta

stage.addEventListener(MouseEvent.CLICK,removerTexto);
}
//Eliminar la etiqueta de la lista
//de visualización del contenedor
public function removerTexto(event:MouseEvent
):void {
//Solamente eliminar la etiqueta si existe
if (numChildren >0 ) {
removeChildAt(0 );
}
}
}
}


(O FDPELR PiV JUDQGH DO FDPELDU D UHPRYH&KLOG$W  HV TXH \D QR VH QHFHVLWD
GHFODUDU FDGHQD SDUD DOPDFHQDU XQD UHIHUHQFLD DO 7H[W)LHOG SRU OR TXH VH SXHGH
HOLPLQDU PiV DGHODQWH (Q VX OXJDU FXDQGR ODEHO VH DxDGH DO FRQWHQHGRU
5HPRYH&KLOG([DPSOH VH DxDGH HQ OD SRVLFLyQ  3DUD HOLPLQDU HO REMHWR GH
YLVXDOL]DFLyQGHHWLTXHWDVLPSOHPHQWHVHHOLPLQDHOKLMRHQODSRVLFLyQ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &yPRHOLPLQDUDWRGRVORVKLMRVGHXQFRQWHQHGRU

1RWD

(OLPLQDU XQ REMHWR GH YLVXDOL]DFLyQ KLMR QR OR HOLPLQD SRU FRPSOHWR (Q VX OXJDU
VLPSOHPHQWHORHOLPLQDGHOFRQWHQHGRUHLPSLGHTXHVHGLEXMHHOREMHWR3DUDHOLPLQDU
SRU FRPSOHWR HO REMHWR GH YLVXDOL]DFLyQ HV QHFHVDULR TXH VH HVWDEOH]FDQ WRGDV ODV
UHIHUHQFLDVDOREMHWRHQQXOO

&yPRHOLPLQDUDWRGRVORVKLMRVGHXQFRQWHQHGRU
6LVHGHVHDHOLPLQDUWRGRVORVKLMRVGHXQFRQWHQHGRUVHFRPELQDUHPRYH&KLOG$W 
FRQ XQ EXFOH IRU 7RGR FRQWHQHGRU WLHQH XQD SURSLHGDG QXP&KLOGUHQ TXH LQGLFD
FXiQWRV REMHWRV GH YLVXDOL]DFLyQ VH HQFXHQWUDQ HQ OD OLVWD GH YLVXDOL]DFLyQ GHO
FRQWHQHGRU
$O SDVDU HQ EXFOH XQD YH] SRU FDGD KLMR VH SXHGH HOLPLQDU FDGD KLMR
EDViQGRVH HQ VX SRVLFLyQ HQ OD OLVWD KLMR GHO FRQWHQHGRU (VWR HV XQ SURFHVR DOJR
FRPSOLFDGRGHELGRDFyPRIXQFLRQDHOYDORUGHODSRVLFLyQ
6LHPSUH TXH VH HOLPLQD XQ KLMR GH XQD SRVLFLyQ WRGRV ORV RWURV KLMRV FRQ
SRVLFLRQHV PD\RUHV GLVPLQX\HQ HQ XQR VXV YDORUHV GH SRVLFLyQ SDUD HOLPLQDU HO
KXHFR3RUHMHPSORSLpQVHVHHQXQFRQWHQHGRUFRQWUHVKLMRVHQODVSRVLFLRQHV
\  &XDQGR HO KLMR HQ OD SRVLFLyQ  VH HOLPLQD HO KLMR HQ OD SRVLFLyQ  SDVD D OD
SRVLFLyQ\HOKLMRHQODSRVLFLyQFDPELDDODSRVLFLyQ3XHVWRTXHORVYDORUHV
GHSRVLFLyQFDPELDQFDGDYH]TXHVHHOLPLQDXQKLMRH[LVWHQGRVIRUPDVHQODVTXH
VHSXHGHJHVWLRQDUODHOLPLQDFLyQGHWRGRVORVKLMRV
6LHPSUHHOLPtQHVHHOKLMRHQODSRVLFLyQ
 (OLPtQHVHHOKLMRKDFLDDWUiVHPSH]DQGRGHVGHHOILQDO
(QHOSULPHUFDVRSXHVWRTXHVLHPSUHKDEUiXQKLMRHQODSRVLFLyQVLHPSUH\
FXDQGRHOREMHWRGHYLVXDOL]DFLyQWHQJDKLMRVVHSXHGHFRQWLQXDUHOLPLQDQGRORTXH
VH HQFXHQWUH HQ OD SRVLFLyQ  SRUTXH HV XQ QXHYR REMHWR KLMR GH YLVXDOL]DFLyQ
GXUDQWHFDGDLWHUDFLyQGHEXFOH

(QHOVHJXQGRFDVRHOLPLQDUHO~OWLPRKLMRGHOFRQWHQHGRUQRKDFHTXHORVKLMRVVH
DMXVWHQDVXVSRVLFLRQHV6RODPHQWHORVKLMRVFRQXQYDORUGHSRVLFLyQPD\RUTXHOR
TXHVHHOLPLQDGLVPLQX\HQHQXQR(O~OWLPRKLMRWLHQHHOYDORUGHSRVLFLyQPiVDOWR
GHQWUR GHO FRQWHQHGRU SRU OR WDQWR QLQJ~Q RWUR KLMR QHFHVLWD TXH VH OH DMXVWH VX
SRVLFLyQ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

(MHUFLFLR

• ÉEUDQVHORVDUFKLYRVUHPRYHUIOD\5HPRYHUDV
• 6HJUDED5HPRYHUDVFRPR5HPRYHUDV
• 6HUHODFLRQDHODUFKLYRUHPRYHUIODFRQ5HPRYHUDVHQHOFDPSR
'RFXPHQWFODVV
• 6XVWLW~\DVHHOFRQWHQLGRGHODUFKLYRGHFODVHVSRUHOVLJXLHQWH


package misClases{
import flash.display.*;

public class Remover2 extends Sprite {


public function Remover2() {
//Añadir algunas representaciones
//visuales vacías
addChild(new Sprite ());
addChild(new Sprite ());
trace(numChildren);

//Eliminar todos los hijos de


//este contenedor
removerTodo(this );

//Demostrar que todos los hijos


//se han eliminado -muestra: 0
trace(numChildren);
}
public function removerTodo(
container:DisplayObjectContainer ):void {
//Puesto que el valor numChildren

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &yPRPRYHUDORVKLMRVGHSURIXQGLGDGVHW&KLOG,QGH[ 

//cambia después de cada vez


//que elimina un hijo, guarde el
//valor original
//de modo que pueda contar correctamente
var count:int =container.numChildren;

//Pasar en bucle sobre los hijos


//en el contenedor y eliminarlos
for (var i:int =0; i <count; i++) {
container.removeChildAt(0 );
}
}
}
}


• (MHF~WHVHHOSURJUDPD6HREVHUYDUiTXHWRGRVORVKLMRVIXHURQHOLPLQDGRV

&yPRPRYHUDORVKLMRVGHSURIXQGLGDG
VHW&KLOG,QGH[ 
$QWHULRUPHQWHVHKDYLVWRFyPRHOPRGHORGHOLVWDGHYLVXDOL]DFLyQWUDWDHORUGHQGH
DSLODPLHQWR YLVXDO SURIXQGLGDG  (VHQFLDOPHQWH WRGD LQVWDQFLD 'LVSOD\
2EMHFW&RQWDLQHU WLHQH XQD OLVWD GH KLMRV \ HO RUGHQ GH ORV KLMRV HQ HVWD OLVWD
GHWHUPLQDHORUGHQHQHOTXHORVREMHWRVGHYLVXDOL]DFLyQGHOKLMRVHGLEXMDQGHQWUR
GHO FRQWHQHGRU /RV KLMRV WLHQHQ DVLJQDGR XQ tQGLFH GH SRVLFLyQ GHVGH  D
QXP&KLOGUHQ  FRPR XQD WDEOD (O KLMR HQ OD SRVLFLyQ  VH GLEXMD HQ OD SDUWH
LQIHULRUGHEDMRGHOKLMRHQODSRVLFLyQHWF1RH[LVWHQYDORUHVGHSRVLFLyQYDFtRV
HQODOLVWDVLH[LVWHQWUHVKLMRVORVKLMRVVLHPSUHWHQGUiQYDORUHVGHtQGLFHGH\
 \QR\SRUHMHPSOR 
(O PpWRGR VHW&KLOGOQGH[  OR SURSRUFLRQD 'LVSOD\2EMHFW&RQWDLQHU SDUD
UHRUGHQDUORVKLMRVGHQWURGHOFRQWHQHGRU$GRSWDGRVSDUiPHWURVXQDUHIHUHQFLDDO
KLMR D PRYHU \ OD QXHYD SRVLFLyQ GHO KLMR HQ HO FRQWHQHGRU /D SRVLFLyQ GH tQGLFH
HVSHFLILFDGR GHEH VHU XQ YDORU YiOLGR /RV YDORUHV QHJDWLYRV R YDORUHV GHPDVLDGR
H[WHQVRVJHQHUDUiQXQ5DQJH(UURU\ODIXQFLyQQRVHHMHFXWDUiFRUUHFWDPHQWH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

(OVLJXLHQWHHMHPSORFUHDWUHVFtUFXORVGHFRORUHVGLEXMiQGRVHHOD]XOHQFLPD
(O PpWRGR VHW&KLOG,QGH[  VH XWLOL]D SDUD PRYHU HO FtUFXOR D]XO SRU GHEDMR GH ORV
RWURVGRVFtUFXORVFDPELDQGRVXSRVLFLyQGHDHQHOFRQWHQHGRU/DVSRVLFLRQHV
GHORVRWURVKLMRVVHDMXVWDQHQFRQVHFXHQFLDURMRVHPXHYHD\YHUGHVHPXHYHD

(MHPSOR

• 6HDEUHXQDUFKLYR)ODVK$6QXHYR\VHJXDUGDFRPRUHPRYHUIODHQHO
GLUHFWRULRGHWUDEDMR
• $KRUDVHDEUHXQDUFKLYR$FWLRQ6FULSWQXHYR\VHJXDUGDHQODFDUSHWD
PLV&ODVHVFRQHOQRPEUH5HPRYHUDV
• 5HODFLyQHVHDPERVDUFKLYRVHQHOFDPSR'RFXPHQWFODVVGHO,QVSHFWRUGH
SURSLHGDGHV\YHULItTXHVHTXHHOFRPSLODGRUVHHQFXHQWUHHQPRGRHVWULFWR
• (QHODUFKLYRGHFODVHVVHHVFULEHHOVLJXLHQWHFyGLJR


package misClases{
import flash.display.*;
public class Mover extends Sprite {
public function Mover() {
//Crear tres círculos de colores
//diferentes y
//cambiar sus coordenadas para
//que se escalonen
//y no estén todos en (0,0).
var rojo:Shape =crearCirculo(0xFF0000,10 );
rojo.x = 10;
rojo.y = 20;
var verde:Shape =crearCirculo(0x00FF00,10
);

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &yPRPRYHUDORVKLMRVGHSURIXQGLGDGVHW&KLOG,QGH[ 

verde.x = 15;
verde.y = 25;
var azul:Shape =crearCirculo(0x0000FF,10 );
azul.x = 20;
azul.y = 20;

//Añadir los círculos, rojo tiene


//un índice 0, verde 1 y azul 2
addChild(rojo );
addChild(verde );
addChild(azul );

//Función de ayuda para crear una


//forma de círculo con un color
//dado y radio
public function
crearCirculo(color:uint,radius:Number ):Shape {
var shape:Shape =new Shape();
shape.graphics.beginFill(color );
shape.graphics.drawCircle(0,0, radius );
shape.graphics.endFill();
return shape;
}
}
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

• (MHFXWHODSHOtFXOD6HREVHUYDUiQORVWUHVFtUFXORVVHJ~QIXHURQDxDGLGRVD
ODOLVWDGHYLVXDOL]DFLyQ$KRUDVHDxDGHHOVLJXLHQWHFyGLJRGHVSXpVGHOD
DGLFLyQGHORVHOHPHQWRVDODOLVWD

//Mover el círculo azul debajo de los otros al


//situarlo al final de la
//lista, en el índice 0
setChildIndex(azul,0 );

• (MHF~WHVHQXHYDPHQWHODSHOtFXOD6HYHUiTXHDKRUDDSDUHFHHOFtUFXORD]XO
KDVWDDWUiVGHORVGHPiVFtUFXORV

8QR GH ORV UHTXLVLWRV SDUD VHW&KLOG,QGH[  HV VDEHU HO YDORU GH tQGLFH TXH VH
GHVHDDVLJQDUDXQKLMRHVSHFtILFR&XDQGRVHHQYtDXQKLMRDOILQDOVHXWLOL]DFRPR
HOtQGLFH&XDQGRVHGHVHDWUDHUXQKLMRKDFLDGHODQWHVHHVSHFLILFDQXP&KLOGUHQ
FRPRHOtQGLFH3HUR¢TXpVXFHGHVLGHVHDPRYHUXQKLMRGHEDMRGHRWURKLMR"
3RUHMHPSORVXSyQJDVHTXHVHWLHQHQGRVFtUFXORVXQRYHUGH\RWURD]XO\QR
VHVDEHVXSRVLFLyQFRQWLHPSRVXILFLHQWH6HGHVHDPRYHUHOFtUFXORD]XOGHWUiVGHO
YHUGH SHUR VHW&KLOG,QGH[  UHTXLHUH XQ YDORU HQWHUR SDUD OD QXHYD SRVLFLyQ 1R
H[LVWHQPpWRGRVVHW&KLOG$ERYHRVHW&KLOG%HORZSRUORTXHODVROXFLyQHVXWLOL]DUHO
PpWRGRJHW&KLOG,QGH[ SDUDUHFXSHUDUHOtQGLFHGHXQKLMR\OXHJRXWLOL]DUHVHtQGLFH
SDUDFDPELDUODSRVLFLyQGHORWURKLMR
(O PpWRGR JHW&KLOG,QGH[  DGRSWD XQ REMHWR GH YLVXDOL]DFLyQ FRPR XQ
SDUiPHWUR \ GHYXHOYH HO tQGLFH GHO REMHWR GH YLVXDOL]DFLyQ HQ HO FRQWHQHGRU 6L HO
REMHWR GH YLVXDOL]DFLyQ SDVDGR QR HV XQ KLMR GHO FRQWHQHGRU VH PDQGD XQ
$UJXPHQW(UURU
(O VLJXLHQWH HMHPSOR FUHD GRV FtUFXORV XQR YHUGH \ RWUR D]XO \ XWLOL]D
JHW&KLOGOQGH[ HQHOFtUFXORYHUGHGHPRGRTXHHOFtUFXORD]XOVHSXHGHPRYHUSRU
GHEDMRGHpVWH$OHVWDEOHFHUHOFtUFXORD]XOHQHOtQGLFHTXHWLHQHHOFtUFXORYHUGHHO
FtUFXOR D]XO DVXPH OD SRVLFLyQ \ HO FtUFXOR YHUGH VH PXHYH D OD VLJXLHQWH SRVLFLyQ
PiVDOWDSRUTXHHOD]XOWHQtDXQDSRVLFLyQPiVDOWDLQLFLDOPHQWH

(MHPSOR

• ÉEUDQVHORVDUFKLYRVPRYHUIOD\0RYHUDV
• 6HJUDED0RYHUDVFRPR0RYHUDV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &yPRPRYHUDORVKLMRVGHSURIXQGLGDGVHW&KLOG,QGH[ 

• 5HODFLyQHVHHODUFKLYRPRYHUIODFRQ0RYHUDVHQHOFDPSR'RFXPHQWFODVV
• (OFRQWHQLGRGHODUFKLYRGHFODVHVVHVXVWLWX\HSRUHOVLJXLHQWH


//Función de ayuda para crear una forma


//de círculo con un color
//dado y radio
package misClases{
import flash.display.*;
public class Mover1 extends Sprite {
public function Mover1() {
//Crear dos círculos de tamaños diferentes
var verde:Shape =crearCirculo(0x00FF00, 10
);
verde.x = 25;
verde.y = 25;
var azul:Shape =crearCirculo(0x0000FF, 20
);
azul.x = 25;
azul.y = 25;

//Añadir los círculos a este contenedor


addChild(verde );
addChild(azul );
}
public function
crearCirculo(color:uint,radius:Number ):Shape {
}
}
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 


• (MHF~WHVHODSHOtFXOD6HREVHUYDUiTXHHOFtUFXORD]XOQRSHUPLWHYLVXDOL]DU
DOFtUFXORYHUGH$KRUDVHHVFULEHHOVLJXLHQWHFyGLJRGHEDMRGHODDGLFLyQGH
ORVREMHWRVDODOLVWDGHYLVXDOL]DFLyQ

//Mover el círculo azul por debajo del círculo verde.


//Primero se recupera el índice del círculo verde y
//luego el círculo azul se establece en ese índice.
setChildIndex(azul, getChildIndex (verde ) );


• (MHF~WHVH QXHYDPHQWH OD SHOtFXOD $KRUD VH YH TXH HO FtUFXOR YHUGH
DSDUHFHUiVREUHHOFtUFXORD]XO

&XDQGRXQKLMRVHPXHYHDXQtQGLFHLQIHULRUGHOTXHVHKDOODWRGRVORVKLMRV
GHOtQGLFHREMHWLYRKDVWDHOTXHVHHQFXHQWUDGHODQWHGHOtQGLFHKLMRDXPHQWDUiQVXV
tQGLFHV HQ  \ HO KLMR VH DVLJQD DO tQGLFH GHVWLQR &XDQGR XQ KLMR VH PXHYH D XQ
tQGLFHPD\RUWRGRVORVKLMRVGHVGHHOTXHVHHQFXHQWUDSRUHQFLPDGHOtQGLFHKLMR
KDVWD H LQFOX\HQGR HO tQGLFH GHVWLQR VH PXHYHQ KDFLD DEDMR HQ  \ HO KLMR WLHQH
DVLJQDGRHOYDORUtQGLFHGHGHVWLQR
(Q JHQHUDO VL HO REMHWR D VH HQFXHQWUD VREUH HO REMHWR E HO VLJXLHQWH FyGLJR
PXHYHDGLUHFWDPHQWHGHEDMRGHE

setChildIndex(a,getChildIndex(b )) ;

3RUHOFRQWUDULRVLXQREMHWRDHVWiGHEDMRGHXQREMHWREHOFyGLJRDQWHULRUPXHYH
DGLUHFWDPHQWHHQFLPDGHE
+DVWD HO PRPHQWR VLHPSUH VH KD HVWDGR PRYLHQGR KLMRV SDUD ORV TXH VH KD
WHQLGR XQD UHIHUHQFLD 3RU HMHPSOR OD YDULDEOH D]XO UHIHUHQFLDED HO REMHWR GH
YLVXDOL]DFLyQ SDUD HO FtUFXOR D]XO \ VH SXGR XWLOL]DU HVWD YDULDEOH SDUD FDPELDU HO
tQGLFH GHO FtUFXOR D]XO ¢4Xp VXFHGH FXDQGR QR VH WLHQH XQD UHIHUHQFLD DO REMHWR
TXHVHGHVHDPRYHU\QRH[LVWHODYDULDEOHD]XO"(OPpWRGRVHW&KLOGOQGH[ UHTXLHUH
XQDUHIHUHQFLDDOREMHWRFRPRVXSULPHUSDUiPHWURSRUORTXHQHFHVLWDFRQVHJXLUOD
UHIHUHQFLD GH DOJXQD PDQHUD VL QR HVWi GLVSRQLEOH FRQ XQD YDULDEOH UHJXODU /D
VROXFLyQHVXWLOL]DUHOPpWRGRJHW&KLOG$W 
(OPpWRGRJHW&KLOG$W WRPDXQVRORDUJXPHQWRXQtQGLFHHQODOLVWDGHKLMRV
GHO FRQWHQHGRU \ GHYXHOYH XQD UHIHUHQFLD DO REMHWR GH YLVXDOL]DFLyQ ORFDOL]DGR HQ
HVH tQGLFH 6L HO tQGLFH HVSHFLILFDGR QR HV XQ tQGLFH YiOLGR HQ OD OLVWD VH ODQ]D XQ
5DQJH(UURU

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QGH[ 
&yPRPRYHUDORVKLMRVGHSURIXQGLGDGVHW&KLOG,QGH[ 


(OVLJXLHQWHHMHPSORFUHDYDULRVFtUFXORVGHYDULRVFRORUHV\WDPDxRV\ORVVLW~D
HQYDULRVOXJDUHVHQODSDQWDOOD&DGDYH]TXHVHSXOVDHOPRXVHHOKLMRHQODSDUWH
LQIHULRUVHVLW~DSRUHQFLPDGHWRGRVORVGHPiV

(MHPSOR

• ÉEUDQVHORVDUFKLYRVPRYHUIOD\0RYHUDV
• 6HJUDED0RYHUDVFRPR0RYHUDV
• 5HODFLyQHVHHODUFKLYRPRYHUIODFRQ0RYHUDVHQHOFDPSR'RFXPHQW
FODVV
• (OFRQWHQLGRGHODUFKLYRGHFODVHVVHVXVWLWX\HSRUHOVLJXLHQWH


package misClases{
import flash.display.*;
import flash.events.*;

public class Mover2 extends Sprite {


public function Mover2() {
//Definir una lista de colores a utilizar
var color:Array
=[0xFF0000,,0x99cc33,0xFFFF00,0x00FF00,

0x009900,0x006600,0x0000FF,0x000099,0x000066,0xCCCCCC
];
//Crear 10 círculos y
//alinearlos diagonalmente
for (var i:int =0; i <10; i++) {
var circle:Shape =crearCirculo(color
[i ] ,20 );




$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 



circle.x = 100+i;
circle.y = i +110;
addChild(circle );
}

stage.addEventListener(MouseEvent.CLICK,updateDisplay
);
}
//Mover el círculo en la parte inferior
//hasta el principio
public function updateDisplay(e:MouseEvent ):void
{
//getChildAt(0) devuelve el objeto de
//visualización en la parte
//inferior, que luego se mueve hasta
//el principio al especificar el
//índice numChildren -1 en setChildIndex
setChildIndex(getChildAt(0),numChildren -1
);
}

//Función de ayuda para crear una forma


//de círculo con un color
//dado y radio
public function
crearCirculo(color:uint,radius:Number ):Shape {
var shape:Shape =new Shape();
shape.graphics.beginFill(color );

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &yPRPDQLSXODUXQREMHWRTXH\DH[LVWHHQHOHVFHQDULR

shape.graphics.drawCircle(0,0,radius );
shape.graphics.endFill();
return shape;
}
}
}

• (MHF~WHVHODSHOtFXOD6HQRWDUiTXHFDGDYH]TXHVHSXOVHFRQHODSXQWDGRU
GHOPRXVHVREUHHOHVFHQDULRXQRGHORVFtUFXORVFDPELDUiVXSRVLFLyQFRQ
UHVSHFWRDORVGHPiV

&yPRPDQLSXODUXQREMHWRTXH\DH[LVWH
HQHOHVFHQDULR
$O SULQFLSLRHOPDQHMRGHOQXHYRPRGHORGHGDWRVYLVXDOHVSXHGH SDUHFHUXQ SRFR
FRPSOLFDGR <D HQ OD SUiFWLFD OR PDQHMDUHPRV GH IRUPD PiV QDWXUDO \ UDUD YH]
WHQGUHPRV TXH ´UHSDUHQWDUµ R KDFHU FRVDV H[WUDxDV 3RU HMHPSOR SDUD PDQLSXODU
XQREMHWRTXH\DH[LVWHHQHOHVFHQDULREDVWDFRQXWLOL]DUVXQRPEUHGHLQVWDQFLD

(MHPSOR

• $EUDXQDUFKLYRQXHYRGH)ODVK $FWLRQ6FULSW \QyPEUHORFRPRERODIOD


HQVXFDUSHWDGHWUDEDMR
• $EUDXQDUFKLYRQXHYR$FWLRQ6FULSW\QyPEUHORFRPR%RODDVHQVXFDUSHWD
GHWUDEDMR
• 5HODFLyQHVHHODUFKLYRERODIODFRQ%RODDVHQHOFDPSR'RFXPHQWFODVV
• (Q HO DUFKLYR ERODIOD GLEXMH XQ SHTXHxR FtUFXOR GH DSUR[LPDGDPHQWH 
SL[HOHVHQHOFHQWURGHOHVFHQDULR
• &RQYLHUWDHOFtUFXORHQXQ0RYLH&OLS1RPEUHDOVtPERORFRPR&LUFXOR
• (QHOHVFHQDULRQRPEUHODLQVWDQFLDFRPRERODBPF
• (QHODUFKLYR%RODDVFDSWXUHHOVLJXLHQWHWH[WR




$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 


package misClases{
import flash.display.Sprite;
import flash.events.Event;

public class Bola extends Sprite {


var dx:int = 10;

public function Bola(){


addEventListener(Event.ENTER_FRAME,
onMueveBola);
}
private function onMueveBola (e:Event) {
bola_mc.x += dx;
if (bola_mc.x >400 || bola_mc.x < 100) {
dx *= -1;
}
}

}
}

• &RPRSXHGHREVHUYDUHOSHTXHxRFtUFXORVHPRYHUiGHGHUHFKDDL]TXLHUGD
\ YLFHYHUVD HQ HO HVFHQDULR \ QR IXH QHFHVDULR FUHDUOR GHVGH $FWLRQ6FULSW
SHURVHSXHGHPDQLSXODUVLQSUREOHPDFRQpO

&yPROODPDUDXQREMHWRJUiILFRGHODOLEUHUtD

(Q YHUVLRQHVDQWHULRUHVVL XVWHGODVOOHJyDXWLOL]DUOODPiEDPRVDXQREMHWRGHOD


OLEUHUtD FRQ DWWDFK0RYLH (Q OD QXHYD  OLVWD GH YLVXDOL]DFLyQ GHEHPRV GH JHQHUDU
XQDGHILQLFLyQGHFODVHHQHOFDPSR&ODVVFRPRVHDSUHFLDHQOD)LJ$FWLYHOD
FDVLOODGHH[SRUWDFLyQD$FWLRQ6FULSW ([SRUWIRU$FWLRQ6FULSW \ODFDVLOODGH&ODVHVH
DFWLYDUi

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &yPRPDQLSXODUXQREMHWRTXH\DH[LVWHHQHOHVFHQDULR

)LJXUD'HILQLFLyQGHFODVHHQHOFDPSR&ODVV
)LJXUD

1RWD

(Q $FWLRQ6FULSW  OD IRUPD GH QRPEUDU ORV VtPERORV FDPELD 3RU OR JHQHUDO
XWLOL]iEDPRVXQSUHILMRFRPRPFSDUD0RYLH&OLSJUSDUDXQ*UiILFREWQSDUDXQERWyQ
&RPRDKRUDVHUHODFLRQDHOREMHWRFRQXQDFODVHHVSUHIHULEOH\DQRXVDUHOSUHILMR\
OODPDUOR GLUHFWDPHQWH &XDGUR &tUFXOR HWF 2EVHUYH TXH VH HVFULEH FRQ PD\~VFXOD
LQLFLDOSDUDUHODFLRQDUORFRQVXFODVH
3DUDOODPDUDOREMHWRGHODOLEUHUtDDOHVFHQDULRORFUHDUHPRVFRPRXQDLQVWDQFLD
GHFODVH2EVHUYHTXHVHFRORFDHQHOFXDGURGHFODVHHOQRPEUHGHOLGHQWLILFDGRU

(MHPSOR

• $EUD XQ DUFKLYR QXHYR GH )ODVK $FWLRQ6FULSW   \ QyPEUHOR FRPR
FXDGURIODHQVXFDUSHWDGHWUDEDMR
• (Q HO DUFKLYR FXDGURIOD GLEXMH XQ UHFWiQJXOR GH DSUR[LPDGDPHQWH 
SRUFRQODKHUUDPLHQWDFRUUHVSRQGLHQWH
• &RQYLHUWDHOUHFWiQJXORHQXQ0RYLH&OLS1RPEUHDOVtPERORFRPR&XDGUR
• $FWLYHODFDVLOOD([SRUWIRU$FWLRQ6FULSW
• (VFULEDHQHOFDPSR&ODVVODSDODEUD&XDGUR
• )ODVKOHLQGLFDUiTXHQRH[LVWHQLQJXQDFODVHHVGHFLUXQDUFKLYRGHFODVH
SHURQRLPSRUWDVyORQHFHVLWDPRVGHPRPHQWRHOLGHQWLILFDGRU&XDGUR
• %RUUHODLQVWDQFLDGHOHVFHQDULR\DVHJ~UHVHTXHHOVtPERORVHHQFXHQWUH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

HQODOLEUHUtD6LPXHYHXQSRFRODEDUUDLQIHULRUGHOSDQHOREVHUYDUiTXH
HOVtPEROR&XDGURWLHQHXQLGHQWLILFDGRUGHH[SRUWDFLyQTXHHVORTXHVH
QHFHVLWD


)LJXUD&XDGURTXHWLHQHXQLGHQWLILFDGRUGHH[SRUWDFLyQ
)LJXUD

• $KRUDDEUDXQDUFKLYR$FWLRQ6FULSW\QyPEUHORFRPR&XDGUR'RFXPHQWDV\
JXiUGHORGHQWURGHODFDUSHWDPLV&ODVHV

1RWD

6L OR QRPEUiUDPRV &XDGUR )ODVK SHQVDUtD TXH HV HO FRQWHQLGR GH OD FODVH TXH OR
YHUHPRVHQHOVLJXLHQWHLQFLVR&RQHOQRPEUHGH'RFXPHQWTXHUHPRVGHFLUTXHHVOD
FODVHGHOGRFXPHQWR(VWRSXHGHFDPELDUVHJ~QHODXWRUGHOFyGLJR

• (QHODUFKLYRGHFODVHHVFULEDHOVLJXLHQWHFyGLJR

package misClases{
import flash.display.Sprite;

public class CuadroDocument extends Sprite{

  

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV


public function CuadroDocument() {


inicio()
}

private function inicio () {


var cuadro1:Cuadro = new Cuadro();
var cuadro2:Cuadro = new Cuadro();
cuadro1.x = 100;
cuadro1.y = 100;
cuadro2.x = 300;
cuadro2.y = 300;
//
addChild(cuadro1)
addChild(cuadro2)
}
}
}


• &RPRSXHGHDSUHFLDUHQHVWHFDVRWDPELpQHVQHFHVDULRHODGG&KLOGSDUD
YLVXDOL]DUREMHWRVWUDtGRVGHODOLEUHUtD
• 6DOYHVXVDUFKLYRVSDUDXWLOL]DUORVHQHOSUy[LPRHMHUFLFLR

&yPRHVFULELUFyGLJRGHQWURGHOREMHWR
&RQ $FWLRQ6FULSW  DXQ VH SXHGH HVFULELU FyGLJR GHQWUR GH XQ REMHWR GHQWUR GHO
HVFHQDULRHVGHFLUGHQWURGHO0RYLH&OLSSHURHVPXFKRPHMRUFUHDUXQDFODVH
• $EUDXQQXHYRDUFKLYR$FWLRQ6FULSWDV\QyPEUHOR DKRUDVt &XDGURDVHQOD
FDUSHWDPLV&ODVHV
• (VFULEDHOVLJXLHQWHFyGLJR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

/DOLVWDGHYLVXDOL]DFLyQ 

package misClases{
import flash.display.Sprite;
import flash.events.Event;

public class Cuadro extends Sprite{


public function Cuadro () {
inicio()
}

private function inicio() {


addEventListener(Event.ENTER_FRAME, onGira);
}

private function onGira(e:Event) {


this.rotation += 5;
}
}
}


• 6LHMHFXWDODSHOtFXODFXDGURIODORVFXDGURVQRJLUDUiQKDVWDTXHORVOLJXH
FRQ OD FODVH 3DUD HOOR HQWUH D OD OLEUHUtD GH OD SHOtFXOD IOD VHOHFFLRQH HO
VtPEROR FXDGUR GHVSXpV VREUH pO Gp XQ FOLF FRQ HO ERWyQ GHUHFKR \
VHOHFFLRQHSURSLHGDGHV
• 6LQRHVWiDELHUWDODRSFLyQGHDYDQ]DGRVSXOVHHOERWyQFRUUHVSRQGLHQWH
(QODFDVLOOD&ODVVHVFULEDPLV&ODVHV&XDGUR
• $KRUDHMHFXWHODSHOtFXOD\YHUiJLUDUDORVFXDGURV


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &yPRPDQLSXODUXQREMHWRTXH\DH[LVWHHQHOHVFHQDULR

$PDQHUDGHFRQFOXVLyQ

8QSDVRPX\LPSRUWDQWHSDUDGRPLQDUODSURJUDPDFLyQYLVXDOHQ$FWLRQ6FULSWHV
FRQRFHUELHQHOXVRGHODOLVWDGHYLVXDOL]DFLyQ(QHVWHFDStWXORDSUHQGLy
• &yPRDxDGLUXQHOHPHQWRDODOLVWDGHYLVXDOL]DFLyQ
• /LVWDGHYLVXDOL]DFLyQGHQWURGHXQFRQWHQHGRU
• &yPRUHSDUHQWDUREMHWRVHQODOLVWDGHYLVXDOL]DFLyQ
• &yPRHOLPLQDUXQREMHWRGHODOLVWDGHYLVXDOL]DFLyQ
• &yPRERUUDUXQHOHPHQWRVLQODUHIHUHQFLD
• &yPRHOLPLQDUDWRGRVORVKLMRVGHXQFRQWHQHGRU
• &yPRPRYHUDORVKLMRVGHSURIXQGLGDGVHW&KLOG,QGH[ 
• &yPRPDQLSXODUXQREMHWRTXH\DH[LVWHHQHOHVFHQDULR
• &yPROODPDUDXQREMHWRJUiILFRGHODOLEUHUtD
• (QHVWHQXHYRPRGHORHO'LVSOD\/LVWODFODVH0RYLH&OLSHVODPiVEDMD\
SHVDGD
• /DVFDUDFWHUtVWLFDVGHODVQXHYDVFODVHVPXFKRPiVHVSHFLDOL]DGDV\
OLJHUDVTXHKDFHQGHODYHUVLyQGH$FWLRQ6FULSWDOPHQRVYHFHVPiV
UiSLGD
 
(Q HO SUy[LPR FDStWXOR HVWXGLDUHPRV HO QXHYR PRGHOR GH PDQHMR GH HYHQWRV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


Manejo de eventos 5


0DQHMRGHHYHQWRV
&RPR VH PHQFLRQy HQ OD LQWURGXFFLyQ KD\ WUHV SXQWRV PX\ LPSRUWDQWHV TXH
FDPELDQHQ$FWLRQ6FULSW(OPDQHMRGH$FWLRQ6FULSWFRPRXQSURJUDPDRULHQWDGR
DREMHWRV 223 HOQXHYRPRGHORGHODOLVWDGHYLVXDOL]DFLyQ\HOQXHYRPRGHORGH
PDQHMRGHHYHQWRV(QHVWHFDStWXORYHUHPRVHOWHUFHURGHORVSXQWRVORVHYHQWRV

¢4XpVRQORVHYHQWRV"

/RVHYHQWRVSXHGHQFRQVLGHUDUVHVXFHVRVTXHRFXUUHQHQHOHQWRUQRGHOSURJUDPD\
TXHVRQGHOLQWHUpVGHOGHVDUUROODGRU/RVHYHQWRVSRUORJHQHUDOQRVRQSUHYLVLEOHV
HV GHFLU HO SURJUDPDGRU QR VDEH FXiQGR HO XVXDULR SXOVDUi XQD WHFOD QL FXiO GH
HOODVRKDFLDDGyQGHPRYHUiHODSXQWDGRUGHOPRXVH UDWyQ \GyQGHSXOVDUiHQOD
SDQWDOOD

6L XVWHG PDQHMy ODV YHUVLRQHV DQWHULRUHV GH $FWLRQ6FULSW UHFRUGDUi TXH
WHQtDPRVPXFKDVPDQHUDVGH´DWUDSDUµR´HVFXFKDUµORVHYHQWRV
• &RQWURODGRUHV GH HYHQWRV RQ  TXH VH SXHGHQ FRORFDU GLUHFWDPHQWH HQ
LQVWDQFLDVGH%XWWRQ\0RYLH&OLS
• &RQWURODGRUHV RQ&OLS(YHQW  TXH VH SXHGHQ FRORFDU GLUHFWDPHQWH HQ
LQVWDQFLDVGH0RYLH&OLS
• 3URSLHGDGHVGHIXQFLRQHVFDOOEDFNFRPR;0/RQORDG\&DPHUDRQ$FWLYLW\
• 'HWHFWRUHVGHHYHQWRVTXHSXHGHQUHJLVWUDUVHFRQHOPpWRGRDGG/LVWHQHU 
• /DFODVH8,(YHQW'LVSDWFKHUTXHLPSOHPHQWDEDSDUFLDOPHQWHHOPRGHORGH
HYHQWRV'20

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

(Q$6VyORVHWLHQHXQPRGHORGH0DQHMRGHHYHQWRV
0DQHMRGHHYHQWRVHOFXDOVHEDVDHQODV
0DQHMRGHHYHQWRV
HVSHFLILFDFLRQHV GHO PRGHOR '20 'RFXPHQW 2EMHFW 0RGHO  QLYHO  6L XVWHG
PDQHMyHYHQWRVGHFRPSRQHQWHVHQODVYHUVLRQHVDQWHULRUHVVHHQFRQWUDUiTXHHV
PX\VLPLODUPDQHMDUORVHQ$6

1RWD

6LQHFHVLWDPD\RULQIRUPDFLyQHQHVSDxROYLVLWH
KWWSZZZZRUJ'20&RUHHVGHVFULSFLRQKWPO

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1

(VIUHFXHQWHPRVWUDUHQHOH[DPHQGHFHUWLILFDFLyQXQWUR]RGHFyGLJR\SUHJXQWDU
¢&XiOHVHOHUURU"

(MHPSOR
3XHGHVHUXQHUURUWDQVLPSOHFRPRHVFULELU9RLGHQ$FWLRQ6FULSWVHHVFULEHFRQ9
PD\~VFXOD\HQ$FWLRQ6FULSWYRLGVHHVFULEHWRGDVHQPLQ~VFXODV


(OHPHQWRVGHOPDQHMRGHHYHQWRV

$QWHVGHDSUHQGHUDKDFHUQXHVWURVSURSLRVPDQHMDGRUHVGHHYHQWRVHV~WLOVDEHU
FyPR PDQHMDU ORV HYHQWRV )ODVK /RV SDVRV TXH VH VLJXHQ DO JHQHUDU XQ HYHQWR
GHQWURGHOSURJUDPDVRQORVVLJXLHQWHV

1. &UHD XQ 2EMHWR GH HYHQWR
HYHQWR HO FXDO FRQWLHQH OD LQIRUPDFLyQ UHOHYDQWH
GHO HYHQWR \ VH OD SURSRUFLRQD DO SURJUDPDGRU $ HVWH REMHWR VH OH
FRQRFHFRPR( (YHQWREMHFW
YHQWREMHFW
2. (QHO (YHQWREMHFWVHLQGLFDHOREMHWR
(YHQWREMHFW HQHOFXDOVHHIHFWXyODDFFLyQ
GHO VLVWHPD R GHO XVXDULR HV GHFLU VL pVWH SXOVy XQ ERWyQ PRYLy HO
DSXQWDGRU GHO PRXVH HVFULELy WH[WR HQ XQ FDPSR HWF $O REMHWR HQ
TXH VH HMHFXWy HO HYHQWR SRU HMHPSOR XQ ERWyQ  VH OH FRQRFH FRPR
HYHQWWDUJHW
HYHQWWDUJHWeVWHHVHOREMHWRTXHUHFLEHDOHYHQWR
3. )ODVK3OD\HUVHHQFDUJDGH´SURSDJDUORµR´GHVSDFKDUORµSURFHVRTXH
VHFRQRFHFRPR(YHQWGLVSDWFK
(YHQWGLVSDWFK
(YHQWGLVSDWFK
4. )ODVK 3OD\HU HQWUHJDUi HO REMHWR GHO HYHQWR D WRGRV DTXHOORV REMHWRV
TXH VH KD\DQ VXVFULWR
VXVFULWR SDUD UHFLELUOR $ HVWRV REMHWRV VH OHV FRQRFH
FRPROLVWHQHUV
OLVWHQHUV GHDKtYLHQHHOWpUPLQR´HVFXFKDUµXQHYHQWR 
OLVWHQHUV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 


5. &XDQGR GHWHFWH HO REMHWR HO OLVWHQHU GLVSDUDUi XQD IXQFLyQ R PpWRGR HO
FXDOHVODUHVSXHVWDGHOSURJUDPDDOHYHQWRH[WHULRU

&XDQGR GHWHFWH HO REMHWR HO OLVWHQHU GLVSDUDUi XQD IXQFLyQ R PpWRGR &DEH
PHQFLRQDUTXH)ODVKJHQHUDPXFKRVHYHQWRVVLQTXHQRVRWURVQRVGHPRVFXHQWD
/R LPSRUWDQWH HV TXH ´DWUDSHPRVµ HO HYHQWR TXH QHFHVLWDPRV 3RQJDPRV XQ
HMHPSORFRQJDWRV

(MHPSORFRQJDWRV

6XSRQJDPRVTXHVHHQFXHQWUDQGRFHJDWRVUHWR]DQGR\KDFLHQGRORTXHKDFHQORV
JDWRVHQXQFDOOHMyQ ORVJDWRVVHUtDQORVREMHWRV\HOFDOOHMyQHOHVFHQDULR (O~QLFR
SUREOHPDTXHWLHQHQHVFXDQGRSDVDHOSROLFtDGHOEDUULROODPpPRVOH´0DWXWHµ HO
HYHQWR VH GLVSDUD FXDQGR HO SROLFtD SDVD SRU HO FDOOHMyQ  (O DVWXWR MHIH GHO FODQ
IHOLQRGHFLGHSRQHUDXQRGHORVJDWRVFRPRYLJtDDODHQWUDGDGHOFDOOHMyQGLJDPRV
TXHVHOHFFLRQDD´(VSDQWRµSDUDTXHHVWpDOSHQGLHQWH(VSDQWRVHUtDHOYLJtDRHO
HVFXFKD TXH DYLVDUi D ORV GHPiV JDWRV HV GHFLU HV HO ´OLVWHQHUµ 3HUR KD\ XQ
SUREOHPD (VSDQWR VyOR DYLVDUi D VXV DPLJRV ORV VXVFULSWRUHV  3RU H[WUDxR TXH
SDUH]FD (VSDQWR OHV DYLVDUi D VXV DPLJRV HVFULELHQGR XQD QRWD HQ XQ SDSHO
´//(*ÐB0$787(µ&XDQGRHOHYHQWRVXFHGHHVGHFLU(VSDQWRGHWHFWDORVSDVRVGH
0DWXWH pVWH DYLVD D VXV DPLJRV ORV PLHPEURV GH VX SDQGLOOD \ pVWRV LQLFLDQ OD
KXLGD ODDFFLyQ 

(VWD DQDORJtD JDWXQD QRV VHUYLUi SDUD HQWHQGHU HO PRGHOR EURDGFDVWOLVWHQHU
EURDGFDVWOLVWHQHU
GHORVHYHQWRVGHO'203DUDSRGHULPSODQWDUHVWHSURFHVRHQ$6HVQHFHVDULR
UHDOL]DUORVVLJXLHQWHVSDVRV

1. 3ULPHURVDEHUTXpHYHQWRVHGHVHDGHWHFWDU\FXiOHVVXLGHQWLILFDGRU(Q
QXHVWUD DQDORJtD OR TXH TXHUHPRV GHWHFWDU HV FXDQGR OOHJD 0DWXWH DO
FDOOHMyQHLQYHQWDUHPRVXQDFRQVWDQWHTXHVHD´//(*ÐB0$787(µ
2. 'HWHUPLQDU HO WLSR GHO ´REMHWR GHO HYHQWRµ TXH LQWHUHVD (Q HVWH FDVR HO
HYHQW2EMHFWVHUiODQRWDHVFULWDHQHOSDSHODYLVDQGRGHOHYHQWRDORVJDWRV
3. &UHDU XQ OLVWHQHU HO FXDO ODQ]DUi OD IXQFLyQ GH UHVSXHVWD TXH VH GHVHD
(VSDQWRVHUiQXHVWURHVFXFKDRYLJtD
4. /LJDUDOREMHWRTXHUHFLEHHOHYHQWR HYHQWWDUJHW FRQHOREMHWRTXHODQ]DOD
UHVSXHVWD DO PLVPR OLVWHQHU  $ HVWH SURFHVR VH OH OODPD SRU OR JHQHUDO
´VXVFULSFLyQµ /RV DPLJRV GH (VSDQWR VRQ ORV JDWRV ´VXVFULWRVµ DO HYHQWR
/RVGHPiVJDWRVQRVHYDQDHQWHUDU
5. (VSHUDUWUDQTXLODPHQWHDTXHHOHYHQWRVXFHGD

(QUHDOLGDGHOSURFHVRQRHVWDQFRPSOHMRFRPRORDSDUHQWD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1


(QHOH[DPHQGHFHUWLILFDFLyQVHPXHVWUDXQSHTXHxRFyGLJR\VHVROLFLWDVXUHVXOWDGR
SRUHMHPSOR

P\&OLSLVD0RYLH&OLSRQWKHVWDJH
P\&OLSDGG(YHQW/LVWHQHU 0RXVH(YHQW&/,&.FOLFN+DQGOHU 

IXQFWLRQFOLFN+DQGOHU HYW0RXVH(YHQW YRLG^
WUDFH HYWWDUJHWBQDPH 
`
/DUHVSXHVWDHVXQGHILQHG\DTXHQRH[LVWHODSURSLHGDGBQDPH
/DVSURSLHGDGHV\DQRXWLOL]DQJXLRQHVEDMRVDOLQLFLR


'HWHUPLQDUHOHYHQWR\VXLGHQWLILFDGRU

'HMDQGRORVJDWRV\SDVDQGRDO$FWLRQ6FULSWVXSRQJDPRVTXHGHVHDVDEHUFXiQGR
HOXVXDULRPXHYHHODSXQWDGRUGHOPRXVHHQFXDOTXLHUSDUWHGHOHVFHQDULRHVGHFLU
TXHUHPRVTXH)ODVKQRVDYLVHFXDQGRHOXVXDULRPXHYHVXPRXVH3DUDHOORDEUDOD
D\XGDODFODVH0RXVH\EXVTXHORVHYHQWRVGHHVWDFODVHORVFXDOHVVHHQFXHQWUDQ
HQ0RXVH(YHQW

1RWD

3RUORJHQHUDOHQ$FWLRQ6FULSWORVHYHQWRVVHHQFXHQWUDQVHSDUDGRVGHODFODVHSRU
HMHPSORH[LVWHODFODVH0RXVH\WHQHPRVODFODVH0RXVH(YHQW\DVtFRQRWUDVFODVHV
SRUHMHPSOR7H[W(YHQW7LPHU(YHQWHWFpWHUD

 (QODGRFXPHQWDFLyQGHODFODVH0RXVH(YHQWVHHQFXHQWUDXQDWDEODFRQODV
FRQVWDQWHV\ODVFDGHQDVTXHFRQWLHQHQGLFKDVFRQVWDQWHV&RQHVWHLGHQWLILFDGRUVH
VDEUiFXDQGR)ODVK3OD\HUGHWHFWHTXHHOXVXDULRPRYLyHODSXQWDGRUGHOPRXVHVREUH
HOHVFHQDULR/DH[SOLFDFLyQGHORVGHPiVHYHQWRVVHYHUiHQHOVLJXLHQWHDSDUWDGR3RU
ORSURQWRORTXHVHEXVFDHV


MouseEvent.MOUSE_MOVE=”mouseMove”
$TXtVHHQFXHQWUDQYDULRVDVSHFWRVLPSRUWDQWHV
3HUWHQHFHDODFODVH0RXVH(YHQWSRUORTXHVHUiQHFHVDULRLPSRUWDUOD
/DFRQVWDQWHHV0286(B029(FRQODFXDOQRWLILFDUiHO)ODVK3OD\HUGHOHYHQWR
/DFDGHQDTXHLGHQWLILFDHOHYHQWRHV´PRXVH0RYHµ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

'HWHUPLQDUHOWLSRGHREMHWRGHOHYHQWR (YHQWREMHFW 

$KRUDVHVDEHTXHHOHYHQWRTXHEXVFDPRVSHUWHQHFHDODFODVH0RXVH(YHQW(QOD
D\XGD GH )ODVK VH HQFRQWUDUi HO IRUPDWR GHO REMHWR GHO HYHQWR (YHQW REMHFW  TXH
SURSRUFLRQDUiHO)ODVK 3OD\HU(VWH REMHWRFRQWHQGUiWRGDODLQIRUPDFLyQJHQHUDGD
SRUHOHYHQWR

Propiedad Descripción
GHIDXOW WUXH ³'HWHUPLQDVLHOREMHWRGHHYHQWRSDUWLFLSDHQ
EXEEOHV
ODIDVHGHSURSDJDFLyQGHOIOXMRGHOHYHQWR
EXWWRQ'RZQ GHIDXOW  IDOVH  ³ ,QGLFD VL VH SXOVD HO ERWyQ SULQFLSDO GHO
PRXVH
FDQFHODEOH GHIDXOW  IDOVH  ³ 'HWHUPLQD VL VH SXHGH FDQFHODU HO REMHWR
(YHQW
FWUO.H\ GHIDXOW IDOVH ³(Q:LQGRZVRHQ/LQX[LQGLFDVLODWHFOD&WUO
HVWi DFWLYDGD (Q 0DF LQGLFD VL HVWi DFWLYDGD OD WHFOD &WUO R
&RPDQGR
ORFDO; GHIDXOW  1D1  ³ /D FRRUGHQDGD KRUL]RQWDO HQ OD TXH VH
SURGXFHHOHYHQWRHQUHODFLyQFRQODFODVH6SULWHFRQWHQLGD
ORFDO< GHIDXOW 1D1 ³/DFRRUGHQDGDYHUWLFDOHQODTXHVHSURGXFH
HOHYHQWRHQUHODFLyQFRQODFODVH6SULWHFRQWHQLGD
WDUJHW (OREMHWRGRQGHUHFD\yHOHYHQWR

(VWD LQIRUPDFLyQ HV HO HTXLYDOHQWH DO SDSHOLWR TXH HQWUHJy (VSDQWR D OD
SDQGLOOD(QGLFKR´SDSHOLWRµYLDMDODLQIRUPDFLyQQHFHVDULD

1RWD

(QHOHYHQW2EMHFWYLDMDPiVLQIRUPDFLyQ\pVWDGHSHQGHGHODFODVH\GHOHYHQWR3DUD
PD\RU UHIHUHQFLD FRQVXOWH OD D\XGD HQ OtQHD GH )ODVK (Q OD YHUVLyQ  KDEtD
PDQHMDGRUHV TXH UHFLEtDQ XQ SDUiPHWUR SRU HMHPSOR HO GHO ;0/  KDEtD RWUR TXH
UHFLEtDWUHVRPXFKRVFDVRVQRUHFLEtDQQDGD(Q$6WRGDODLQIRUPDFLyQQHFHVDULD
YLDMDHQXQVRORREMHWRHOHYHQW2EMHFW

(O VLJXLHQWH SDVR HV GHWHUPLQDU FXiO GH OD LQIRUPDFLyQ FRQWHQLGD HQ HO
HYHQW2EMHFWQRVHVGHXWLOLGDG

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1

5HFXHUGHTXHHQ$FWLRQ6FULSWORVSRUFHQWDMHVYDQGHDGRQGHHVHO

3UHJXQWD
3UHJXQWD
¢&yPRSXHGHFDPELDUHODOSKDGHXQPRYLH&OLSDO"

5HVSXHVWD
5HVSXHVWD
(VFULELHQGRQRSXHVHVWRHVLQFRUUHFWR

&UHDXQOLVWHQHUSDUDHOHYHQWR

(VWR TXLHUH GHFLU TXH HO SURJUDPDGRU QHFHVLWD VDEHU ODV DFFLRQHV TXH GLVSDUDUi
FXDQGRVHOHQRWLILTXHGHOHYHQWR HQQXHVWURHMHPSORVHUtDKXLUGHOFDOOHMyQ 'LFKD
QRWLILFDFLyQ SXHGH VHU WDQ VHQFLOOD FRPR XQ PHQVDMH D OD FRQVROD GH VDOLGD R XQD
DQLPDFLyQ3DUDHOORVHUHDOL]DUiXQPpWRGRRIXQFLyQ(QIRUPDJHQpULFDVHWHQGUtD

private function
nombreListener(objetoEvento:TipoEvento):void {
trace("LLEGÓ MATUTE");
}

$VSHFWRVLPSRUWDQWHVVREUHORVOLVWHQHUV

 /RV OLVWHQHUV VRQ VHQWHQFLDV TXH VH HVFULEHQ GLUHFWDPHQWH HQ HO FyGLJR \
TXH SHUPLWHQ VDEHU FXiQGR RFXUUH XQ HYHQWR (Q FDVR GH TXH HO HYHQWR
RFXUUDHMHFXWDXQDIXQFLyQTXHHVWiSUHYLDPHQWHSURJUDPDGD(VFRPRXQ
´HVFXFKDGRUµTXHHVWiSHQGLHQWHGHTXHVHUHDOLFHFLHUWDDFFLyQ
 /RVOLVWHQHUQRGHEHQVHU´YLVWRVµSRUORVXVXDULRVSRUORTXHVLHPSUHVRQ
SULYDWH
 'HVSXpVGHOGHOLPLWDGRUGHDFFHVRVSULYDWHVLJXHODSDODEUDFODYHIXQFWLRQ
 6HJXLGR GHO QRPEUH GHO OLVWHQHU 1R KD\ XQD FRQYHQFLyQ SDUD GLFKR
QRPEUH 3RU OR JHQHUDO VH SRQH HO HYHQWR TXH VH GHVHD GHWHFWDU PiV OD
SDODEUDOLVWHQHUSHURVHOHSXHGHSRQHUFXDOTXLHUQRPEUH
 &RPRSDUiPHWUR)ODVK3OD\HUHQWUHJDUiHOHYHQW2EMHFW
HYHQW2EMHFWHVGHFLUXQREMHWR
HYHQW2EMHFW
FRQ WRGD OD LQIRUPDFLyQ GHO HYHQWR (Q HO PDQXDO GHO XVXDULR GHO SDTXHWH
SXHGHQYHUVHORVGHWDOOHVGHGLFKRREMHWR
 (OWLSRGHOHYHQWRHVLPSRUWDQWHeVWHVHREWXYRHQHOSULPHUSDVR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

 /RVOLVWHQHUVQRUHJUHVDQQLQJ~QYDORU6LHPSUHVRQGHWLSRYRLG
 3RU~OWLPRHQWUHODVOODYHVYDQODVLQVWUXFFLRQHVTXHVHGLVSDUDUiQ

1RWD

&RPRVHPHQFLRQDHQHOSXQWRQRKD\XQDFRQYHQFLyQSDUDQRPEUDUDODVIXQFLRQHV
GHORVOLVWHQHUV$OJXQRVDXWRUHVXWLOL]DQODSDODEUDOLVWHQHURWURVHYHQWKDQGOHU\RWURV
RQ$GRSWHHOTXHPiVOHFRQYHQJDORLPSRUWDQWHHVTXHVHDFRQVLVWHQWH

6XVFULELUHOREMHWRGHVWLQR WDUJHWREMHFW DOOLVWHQHU

1XHVWUR´REMHWRGHVWLQRµ HOREMHWRTXHUHFLELyHOHYHQWR SXHGHVHUYLVXDOFRPRXQ


ERWyQXQVSULWHRXQFOLSGHSHOtFXODRSXHGHVHUDEVWUDFWRFRPRXQREMHWR;0/R
XQ REMHWR 85//RDGHU 3DUD SRGHU ´VXVFULELUµ R ´OLJDUµ HO REMHWR GLVSDUDGRU WDUJHW
REMHFW  FRQ HO OLVWHQHU FUHDGR VH UHTXLHUH HO PpWRGR DGG(YHQW/LVWHQHU GH OD FODVH
(YHQW KD\TXHLPSRUWDUOD 3RUHMHPSOR

targetObject.addEventListener(clase.CONSTANTE, listener);

1RWD

(Q HO PRGHOR GHO PDQHMR GH ORV FRPSRQHQWHV HQ $6 VH XWLOL]DED OD FDGHQD TXH
LGHQWLILFDEDHOHYHQWRSRUHMHPSOR´FOLFNµ(Q$6ODFRQVWDQWHTXHDOPDFHQDGLFKD
FDGHQD HV OD TXH DKRUD VH XWLOL]D HV GHFLU 0RXVH(YHQW&/,&. (VWR D\XGD D TXH HO
FRPSLODGRUGHWHFWHHUURUHVGHVLQWD[LV


(OOLVWHQHUVHUiHOTXHVHGHILQLyHQHOSXQWRDQWHULRU

(VSHUDUDTXHODVFRVDVVXFHGDQ

3RU~OWLPRKD\TXHHVSHUDUDTXHHOXVXDULRSUHVLRQHHOERWyQGHOPRXVHHQDOJXQD
iUHD GHO HVFHQDULR 7DPELpQ KD\ YHFHV TXH HO PLVPR SURJUDPD QHFHVLWD TXH VH
UHDOLFHXQDDFFLyQSRUHMHPSORLQLFLDUODFDUJDGHXQDUFKLYRGHXQDLPDJHQHWF$
HVWRV ~OWLPRV VH OHV OODPD ´(YHQWRV GHO VLVWHPDµ FRQWUD ´(YHQWRV GHO XVXDULRµ (Q
UHVXPHQWHQGUtDPRVORTXHVHDSUHFLDHQOD)LJ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV


Figura 5.1 Ejemplo de un listener.



(QODVLJXLHQWHVHFFLyQVHUHDOL]DUiXQHMHUFLFLRSDUDHMHPSOLILFDUORH[SXHVWR

&UHDULQWHUDFFLRQHVGHOPRXVH

$ FRQWLQXDFLyQ VH PXHVWUDQ ORV SULQFLSDOHV HYHQWRV TXH VH SXHGHQ GHWHFWDU HQ OD
DFWLYLGDGFRQHOPRXVH

 FOLFN
FOLFNVHJHQHUDFXDQGRHOXVXDULRSXOVD\VXHOWDHOERWyQGHOPRXVHVREUHHO
REMHWRGHYLVXDOL]DFLyQLQWHUDFWLYR
 GRXEOH&OLFN
GRXEOH&OLFNVHJHQHUDFXDQGRHOXVXDULR SXOVD\VXHOWDHOERWyQGHOPRXVH
GRVYHFHVHQXQDUiSLGDVXFHVLyQVREUHHOREMHWRGHYLVXDOL]DFLyQLQWHUDFWLYR
 PRXVH'RZQ
PRXVH'RZQVHJHQHUDFXDQGRHOXVXDULRSXOVDHOERWyQGHOPRXVHVREUHHO
REMHWRGHYLVXDOL]DFLyQLQWHUDFWLYR
 PRXVH8S
PRXVH8S VH JHQHUD FXDQGR HO XVXDULR VXHOWD HO ERWyQ GHO PRXVH VREUH HO
REMHWRGHYLVXDOL]DFLyQLQWHUDFWLYR
 PRXVH2YHU
PRXVH2YH  VH JHQHUD FXDQGR HO XVXDULR PXHYH HO FXUVRU GHO PRXVH GHVGH
IXHUD GH ORV OtPLWHV GHO REMHWR GH YLVXDOL]DFLyQ LQWHUDFWLYR KDFLD DGHQWUR GH
pVWRV
 PRXVH0RYH
PRXVH0RYHRYH VH JHQHUD FXDQGR HO XVXDULR PXHYH HO FXUVRU GHO PRXVH
PLHQWUDV HO FXUVRU HVWi GHQWUR GH ORV OtPLWHV GHO REMHWR GH YLVXDOL]DFLyQ
LQWHUDFWLYR
 PRXVH2XW
PRXVH2XW VH JHQHUD FXDQGR HO XVXDULR PXHYH HO FXUVRU GHO PRXVH GHVGH
GHQWURGHORVOtPLWHVGHXQREMHWRGHYLVXDOL]DFLyQLQWHUDFWLYRKDFLDDIXHUDGH
HOORV
 PRXVH:KHHO
PRXVH:KHH VHJHQHUDFXDQGRHOXVXDULRURWDODERODGHOPRXVHPLHQWUDVHO

FXUVRUGHOPRXVHVHHQFXHQWUDVREUHHOREMHWRGHYLVXDOL]DFLyQLQWHUDFWLYR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 


 8WLOL]DU HVWRV HYHQWRV HV VLPSOHPHQWH XQD FXHVWLyQ GH LQYRFDU
DGG(YHQW/LVWHQHU \GHILQLUXQPDQHMDGRUGHHYHQWRSDUDJHVWLRQDUHO0RXVH(YHQW
TXHVHOHKDSDVDGR(OVLJXLHQWHIUDJPHQWRGHFyGLJRFUHDXQ6SULWHTXHGLEXMDD
QXHVWUR DPLJR HO FtUFXOR URMR GHQWUR \ PXHVWUD XQ PHQVDMH HQ OD FRQVROD VLHPSUH
TXHHOPRXVHVHPXHYHVREUHHOFtUFXOR

(MHUFLFLR

• 6H DEUH XQ DUFKLYR )ODVK $6 VH OH QRPEUD PRYLPLHQWR0RXVHIOD \ VH
JXDUGDHQHOGLUHFWRULRGHWUDEDMR
• $KRUD VH DEUH XQ DUFKLYR $6 VH OH QRPEUD 0RYLPLHQWR0RXVHDV \ VH
JXDUGDHQODFDUSHWDPLV&ODVHV
• /tJXHQVHDPERVDUFKLYRVFRQHOFDPSR'RFXPHQWFODVV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.events.*;
import flash.geom.Point;

public class MovimientoMouse extends Sprite {


public function MovimientoMouse() {
var circulo:Sprite=new Sprite ;
circulo.x=50;
circulo.y=50;
circulo.graphics.beginFill(0xFF0000);
circulo.graphics.drawCircle(0,0,50);
circulo.graphics.endFill();
}
}
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV


• 2EVpUYHVH TXH VH HVWiQ LPSRUWDQGR WRGDV ODV FODVHV GHO SDTXHWH HYHQWV
SRUPHGLRGHODVWHULVFR/DIXQFLyQFRQVWUXFWRUDGLEXMDXQFtUFXORURMRFRQ
SL[HOHVGHGLiPHWUR(MHF~WHVHODSHOtFXOD\VHREVHUYDUiXQ´FtUFXORµHQ
VXHVFHQDULR(O´REMHWRGLVSDUDGRUµVHUiHQWRQFHVHO6SULWH´FtUFXORµ

• 3ULPHUR VH UHDOL]D OD IXQFLyQ OLVWHQHU )XHUD GH OD IXQFLyQ FRQVWUXFWRUD VH
HVFULEHODVLJXLHQWHIXQFLyQ

private function
detectaMovimientoMouse(objetoEvento:MouseEvent):void {
trace("Movimiento del mouse");
}

• 2EVpUYHVH TXH HV XQD IXQFLyQ SULYDGD \ QR UHJUHVD QLQJ~Q YDORU 6H HVWi
UHFLELHQGR HO REMHWR GHO HYHQWR HYHQW2EMHFW  DXQTXH GH PRPHQWR QR VH
KD\DUHDOL]DGRQLQJXQDDFFLyQFRQVXLQIRUPDFLyQ

• 3RU ~OWLPR OtJXHVH DO REMHWR GLVSDUDGRU HO FtUFXOR URMR  FRQ HO HYHQWR HV
GHFLU0RXVH(YHQW0286(B029(3DUDHOORVHHVFULEHODVLJXLHQWHOtQHDHQ
OD IXQFLyQ FRQVWUXFWRUD GHVSXpV GH DxDGLU HO ´FtUFXORµ D OD OLVWD GH
YLVXDOL]DFLyQ


circulo.addEventListener(MouseEvent.MOUSE_MOVE,detectaMovimi
entoMouse);


• (MHF~WHVH OD SHOtFXOD (Q HVWH HMHPSOR QyWHVH TXH HO PHQVDMH DSDUHFH
VRODPHQWH FXDQGR HO DSXQWDGRU GHO PRXVH VH PXHYH VREUH HO FtUFXOR (O
FtUFXORGHILQHORVOtPLWHVSDUDHO6SULWHHQHVWHFDVR

1RWD

/RV HYHQWRV GHO PRXVH VH JHQHUDQ GHVGH XQ REMHWR GH YLVXDOL]DFLyQ LQWHUDFWLYR
VRODPHQWHFXDQGRHOSXQWHURHVWiGHQWURGHORVOtPLWHVGHHVHREMHWR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1

8QDSRVLEOHSUHJXQWDHQVXH[DPHQGHFHUWLILFDFLyQ$&(HVTXHVHOHSLGDXQDIRUPDGH
KDFHUDOJXQDWDUHDGH$FWLRQ6FULSW\FyPRVHKDFHDKRUDHQ$FWLRQ6FULSW3RU
HMHPSOR OH SXHGHQ SUHJXQWDU TXp FyGLJR VXVWLWX\H D ODV VLJXLHQWHV OtQHDV HQ
$FWLRQ6FULSW

PF&RQWDLQHUDWWDFK0RYLH %R[2F%R[PF&RQWDLQHUJHW1H[W+LJKHVW'HSWK 

&RPR \D YLPRV HQ HO FDStWXOR DQWHULRU QHFHVLWDPRV XQ DGG&KLOG UHODFLRQDGR FRQ HO
REMHWR

2WURXVRFRP~QGHORVHYHQWRVGHOPRXVHVXUJHFXDQGRVHGHVHDLQVSHFFLRQDU
OD XELFDFLyQ GHO SXQWHUR GHO PRXVH SDUD FUHDU LQWHUDFWLYLGDG GHO PLVPR 3RU
HMHPSORSDUDGLEXMDUXQDOtQHDFRQHODSXQWDGRUGHOPRXVHODXELFDFLyQGHpVWHVH
WLHQHTXHFRQRFHUGHPRGRTXHODOtQHDVHSXHGDGLEXMDUGHIRUPDSUHFLVD+D\GRV
PDQHUDVGHGHWHUPLQDUODXELFDFLyQGHOSXQWHUR

 8WLOL]DQGR ODV SURSLHGDGHV PRXVH; \ PRXVH< GLVSRQLEOHV HQ FXDOTXLHU
LQVWDQFLD'LVSOD\2EMHFW
 8WLOL]DQGR ODV SURSLHGDGHV ORFDO; \ ORFDO< GLVSRQLEOHV GH OD LQVWDQFLD
0RXVH(YHQWSDVDGDVDOPDQHMDGRUGHHYHQWRGHOPRXVH

/DVSURSLHGDGHVPRXVH;\PRXVH<VHSXHGHQLQVSHFFLRQDUSDUDGHWHUPLQDUOD
XELFDFLyQ GHO FXUVRU GHO PRXVH UHODWLYR D OD HVTXLQD VXSHULRU L]TXLHUGD GHO REMHWR
'LVSOD\2EMHFW $PEDVSURSLHGDGHVVRQGHVyOROHFWXUDQRHVSRVLEOHHVWDEOHFHUOD
XELFDFLyQ GHO FXUVRU GHO PRXVH HV GHFLU PRYHU DO DSXQWDGRU SRU PHGLR GH
$FWLRQ6FULSWVyORH[DPLQDUODXELFDFLyQ3RUORWDQWRVXSyQJDVHXQUHFWiQJXORTXH
VHHQFXHQWUDHQODXELFDFLyQGHQWURGHOHVFHQDULR[ \ \HOXVXDULRPXHYH
HO DSXQWDGRU GHO PRXVH D OD XELFDFLyQ [   \   /D SURSLHGDG PRXVH; GHO
UHFWiQJXOR GHYXHOYH  \ PRXVH< GHO UHFWiQJXOR LQIRUPD GH  SRUTXH GHVGH OD
SHUVSHFWLYDGHOUHFWiQJXORHOPRXVHHVWiDSL[HOHVGHVGHODL]TXLHUGD\SL[HOHV
KDFLDDEDMRGHVGHODSDUWHVXSHULRU

/DV SURSLHGDGHV ORFDO; \ ORFDO< GH 0RXVH(YHQW VRQ WDPELpQ UHODWLYDV (Q HO
FDVR GH 0RXVH(YHQW ODV SURSLHGDGHV VRQ UHODWLYDV DO REMHWR GH YLVXDOL]DFLyQ TXH
HQYLyHOHYHQWR3RUORWDQWRFRQVLGpUHVHTXHXQUHFWiQJXORLQIRUPDGHPRXVH;GH
\HQYtDXQHYHQWRPRXVH0RYH/DSURSLHGDGORFDO;GHOHYHQWRHVWDPELpQ

3DUD REWHQHU OD SRVLFLyQ JOREDO GHO PRXVH GHVGH FRRUGHQDGDV ORFDOHV
XWLOtFHVH HO PpWRGR ORFDO7R*OREDO  GH OD FODVH 'LVSOD\2EMHFW (O PpWRGR
ORFDO7R*OREDO  DGRSWD D ORV REMHWRV GH OD FODVH IODVKJHRP3RLQW FRPR XQ
SDUiPHWUR TXH HVSHFLILFD ODV FRRUGHQDGDV ORFDOHV \ GHYXHOYH XQ QXHYR SXQWR FRQ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

ODV FRRUGHQDGDV FRQYHUWLGDV DO HVSDFLR JOREDO (O VLJXLHQWH FyGLJR VH FHQWUD HQ HO
PDQHMDGRU GH HYHQWR \ GHPXHVWUD FyPR FRQYHUWLU ORFDO; \ ORFDO< HQ FRRUGHQDGDV
JOREDOHV

(MHUFLFLR

• 6H DEUH HO DUFKLYR 0RYLPLHQWR0RXVHDV GHO HMHUFLFLR DQWHULRU \ VH JUDED
FRPR0RYLPLHQWRV0RXVHDV
• /tJXHVHHODUFKLYRIODFRQHOFDPSR'RFXPHQWFODVV
• 0RGLItTXHVHODIXQFLyQGHWHFWD0RYLPLHQWR0RXVHFRQHOVLJXLHQWHFyGLJR\
VHJUDEDHODUFKLYR

private function
detectaMovimientoMouse(objetoEvento:MouseEvent):void {
trace( "local x: " + objetoEvento.localX );
trace( "local y: " + objetoEvento.localY );
// Crear el punto en que localToGlobal debería convertir
var localPoint:Point = new Point ( objetoEvento.localX,
objetoEvento.localY );
// Convertir a partir de las coordenadas
// locales del objeto de
// visualización que envía el evento a
// las coordenadas del escenario global
var globalPoint:Point =
objetoEvento.target.localToGlobal( localPoint );
trace( "global x: " + globalPoint.x );
trace( "global y: " + globalPoint.y );
}

• (MHF~WHVH OD SHOtFXOD 6H REVHUYDUi TXH HO SDQHO GH VDOLGD WLHQH ODV
FRRUGHQDGDVJOREDOHV FRQUHVSHFWRDOHVFHQDULR \ORFDOHV FRQUHVSHFWRDO
REMHWR 

 8Q HMHPSOR FRPSOHWR GH FUHDU LQWHUDFWLYLGDG SRU PHGLR GH JHVWLRQDU ORV
GLIHUHQWHV HYHQWRV GHO PRXVH VH SXHGH GHPRVWUDU FRQ HO VHQFLOOR SURJUDPD GH
GLEXMRTXHVLJXH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 


 6LHPSUHTXHVHSXOVDHOPRXVHVHLQLFLDHOGLEXMR$PHGLGDTXHHOXVXDULR
PXHYH HO DSXQWDGRU GHO PRXVH SRU OD SDQWDOOD VH GLEXMD XQD OtQHD TXH VLJXH HO
PRYLPLHQWR GHO FXUVRU &XDQGR HO XVXDULR VXHOWD HO ERWyQ GHO PRXVH HO GLEXMR VH
GHWLHQH

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6\VHJXDUGDHQHODUFKLYRGHWUDEDMRFRQHO
QRPEUHGLEXMDUIOD
• $KRUD VH DEUH XQ DUFKLYR $6 \ VH JXDUGD HQ OD FDUSHWD PLV&ODVHV FRQ HO
QRPEUHGH'LEXMDUDV
• /tJXHQVHDPERVDUFKLYRVHQHOFDPSR'RFXPHQW&ODVV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHHVTXHOHWRGHFODVH


package misClases{
import flash.display.Sprite;
import flash.events.MouseEvent;

public class Dibujar extends Sprite {


// Etiqueta para indicar si el
// mouse está en modo dibujo
private var _dibujar:Boolean;
public function Dibujar( ) {
}
}
}


• 2EVpUYHVHTXHVHHVWiFUHDQGRXQDYDULDEOHERROHDQDSDUDGHWHUPLQDUVLHO
XVXDULRHVWiGLEXMDQGRRQR
• $KRUD VH HVFULEHQ ODV VLJXLHQWHV GHILQLFLRQHV GHQWUR GH OD IXQFLyQ
FRQVWUXFWRUD\VHGHILQHQODVOLJDVKDFLDORVOLVWHQHUV(OREMHWRGLVSDUDGRU
GHOHYHQWRVHUiHOHVFHQDULRPLVPR


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

public function Dibujar( ) {
// Configurar el estilo de línea
graphics.lineStyle( 2, 0xFFCC33 );
// Dibujar es false hasta que el usuario pulsa el mouse
_dibujar = false;
// Añadir listeners del mouse en el objeto de escenario
para ser
//notificado de cualquier evento del mouse que sucede
mientras el
//apuntador se encuentra sobre toda la película
stage.addEventListener(MouseEvent.MOUSE_DOWN,iniciaDibu
jo);
stage.addEventListener( MouseEvent.MOUSE_MOVE, dibujo);
stage.addEventListener( MouseEvent.MOUSE_UP,
detieneDibujo);
}

• /RV HYHQWRV TXH VH GHVHDQ ´FDSWXUDUµ VRQ FXDQGR HO XVXDULR SXOVH HO
DSXQWDGRUGHOPRXVHFXDQGRORPXHYD\FXDQGROROHYDQWH SDUDGHMDUGH
GLEXMDU 
• 6H KDFH HO OLVWHQHU SDUD LQLFLDU HO GLEXMR 6H HVFULEH OD VLJXLHQWH IXQFLyQ
IXHUDGHODIXQFLyQFRQVWUXFWRUD\GHQWURGHODFODVH



public function iniciaDibujo( event : MouseEvent ):void {


// Ir hasta la posición actual de mouse
// para estar listo para dibujar
graphics.moveTo( mouseX, mouseY );
_dibujar = true;
}

• $TXtVHLQGLFDODXELFDFLyQDOGLEXMDUFRQODVFRRUGHQDGDVGHODSXQWDGRUGHO
PRXVH6HHQFLHQGHQXHVWUDYDULDEOHERROHDQD$KRUDVHHVFULEHODIXQFLyQ
TXHGLEXMDFXDQGRVHPXHYHHODSXQWDGRUGHOPRXVH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

public function dibujo( event : MouseEvent ):void {


if ( _dibujar ) {
// Dibujar una línea desde la última
// posición del mouse hasta la actual
graphics.lineTo( mouseX, mouseY );
}
}


• 2EVpUYHVH TXH VH HVWi YDOLGDQGR VL HO XVXDULR SXOVy HO HVFHQDULR FRQ HO
PRXVHFRQODYDULDEOHBGLEXMDU3RU~OWLPRVHHVFULEHHOOLVWHQHUSDUDGHMDU
GHGLEXMDU6LPSOHPHQWHVHPRGLILFDUiODYDULDEOHGHFRQWURO

public function detieneDibujo( event:MouseEvent ):void {
_dibujar = false;
}

(MHF~WHVH HO SURJUDPD \ YHULItTXHVH TXH VH SXHGH GLEXMDU FRQ HO DSXQWDGRU GHO
PRXVH6HJXDUGDQ\FLHUUDQDPERVDUFKLYRV

$UUDVWUDU\VROWDUREMHWRVFRQHODSXQWDGRUGHOPRXVH

&UHDU HO FRPSRUWDPLHQWR GH DUUDVWUDU \ VROWDU HQ $FWLRQ6FULSW  QR HV WDQ GLItFLO
FRPRVHSRGUtDSHQVDU/DFODVH6SULWHDOLJXDOTXHVXKHUPDQLWDPD\RU0RYLH&OLS
LQFOX\H PpWRGRV HVSHFtILFDPHQWH SDUD OD ILQDOLGDG GH DUUDVWUDU \ VROWDU REMHWRV D
VDEHUVWDUW'UDJ \VWRS'UDJ 

(O PpWRGR VWDUW'UDJ  VH SXHGH LQYRFDU HQ FXDOTXLHU LQVWDQFLD 6SULWH SDUD
KDFHUTXHVLJDDODSXQWDGRUGHOPRXVHDOUHGHGRUGHODSDQWDOODFUHDQGRHOHIHFWR
GHDUUDVWUH3DUDGHMDUGHDUUDVWUDUVHLQYRFDHOPpWRGRVWRS'UDJ HQODLQVWDQFLD
6SULWH'HVSXpVGHTXHODRSHUDFLyQGHDUUDVWUHHVWpFRPSOHWDVHSXHGHH[DPLQDU
ODSURSLHGDGGURS7DUJHWSDUDGHWHUPLQDUHOREMHWRVREUHHOTXHVHGHMyFDHU(OYDORU
GH GURS7DUJHW HV GH XWLOLGDG SDUD GHWHUPLQDU VL XQD RSHUDFLyQ GH VROWDU HV YiOLGD
FRPRVROWDUXQLFRQRGHFDUSHWDHQXQDSDSHOHUDSDUDHOLPLQDUOR 

&XDQGRVHLQYRFDVWDUW'UDJ QRVHWLHQHTXHHVSHFLILFDUQLQJ~QSDUiPHWURVLQ
HPEDUJRHOPpWRGRDFHSWDKDVWDGRVSDUiPHWURV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

 ORFN&HQWHU
ORFN&HQWHU &XDQGR HV WUXH HO FHQWUR GH OD UHSUHVHQWDFLyQ GLJLWDO VH
EORTXHDHQODSRVLFLyQGHOPRXVHLQGHSHQGLHQWHPHQWHGHGyQGHHOXVXDULR
SXOVH HO PRXVH &XDQGR HV IDOVH OD UHSUHVHQWDFLyQ GLJLWDO VLJXH DO PRXVH
GHVGH OD XELFDFLyQ HQ GRQGH HO XVXDULR KL]R SULPHUR FOLF (O YDORU
SUHGHWHUPLQDGRHVIDOVH

 ERXQGV
ERXQGV /D UHJLyQ GH OD FODVH 5HFWDQJOH GRQGH VH GHVHD UHVWULQJLU HO
DUUDVWUH 6SULWH QR VH SXHGH DUUDVWUDU IXHUD GH HVWD UHJLyQ (O YDORU SRU
GHIDXOWHVQXOOORTXHVLJQLILFDTXHQRH[LVWHUHVWULFFLyQGHiUHD

(O VLJXLHQWH FyGLJR GH HMHPSOR XWLOL]D HVWRV PpWRGRV SDUD HVWDEOHFHU XQ
VHQFLOORFRPSRUWDPLHQWRGHDUUDVWUDU\VROWDU([LVWHQWUHVUHFWiQJXORVDODL]TXLHUGD
TXH SXHGHQ VHU DUUDVWUDGRV URMR YHUGH \ D]XO (O UHFWiQJXOR GH OD GHUHFKD HV
EODQFR\VLUYHFRPRHOiUHDGHVWLQRGRQGHVHYDQDVROWDUORVUHFWiQJXORVGHFRORU
$UUDVWUDU \ VROWDU XQ UHFWiQJXOR GH FRORU HQ HO UHFWiQJXOR EODQFR FRORUHD HO
UHFWiQJXOREODQFRGHOPLVPRFRORUGHOUHFWiQJXORHQHOTXHVHKDGHMDGRFDHU

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6\VHJXDUGDHQHODUFKLYRGHWUDEDMRFRQHO
QRPEUHGLEXMDUIOD
• $KRUDVHDEUHXQDUFKLYR$6\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUHGH'LEXMDUDV
• /tJXHQVHDPERVDUFKLYRVHQHOFDPSR'RFXPHQW&ODVV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHHVTXHOHWRGHODIXQFLyQ


package misClases{
import flash.display.Sprite;
import flash.display.DisplayObject;
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.filters.DropShadowFilter;

public class Arrastrar extends Sprite {


private var _rojo:Sprite;
private var _verde:Sprite;
private var _azul:Sprite;
private var _blanco:Sprite;

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

// Guardar las coordenadas de partida


// de una representación
// digital de arrastre para que
// se puedan restaurar
private var puntoInicial:Point;

// Crear los rectángulos que


// conforman la interfaz y activar los
// eventos del mouse para que sean interactivos
public function Arrastrar() {
creaRectangulos();
addEventListeners();
}
}
}


3ULPHURVHFUHDQODVLQVWDQFLDVYDFtDVGHORVUHFWiQJXORV\GHOREMHWRSXQWRGRQGH
VH DOPDFHQDUiQ ODV FRRUGHQDGDV GHO FXDGUR FXDQGR VH OH VXHOWH 1yWHVH TXH OD
IXQFLyQFRQVWUXFWRUDVyOROODPDGRVIXQFLRQHV(VWRFRQVWLWX\HXQDEXHQD SUiFWLFD
GH SURJUDPDFLyQ SXHV ODV IXQFLRQHV FRQVWUXFWRUDV QR GHEHQ HVWDU DWLERUUDGDV GH
FyGLJR

$KRUD GHEDMR GH OD IXQFLyQ FRQVWUXFWRUD \ GHQWUR GH OD FODVH  VH HVFULEH OD
IXQFLyQSDUDFUHDUORVFXDWURFXDGURV

private function crearRectangulos():void {


_rojo=new Sprite;
_rojo.graphics.beginFill(0xFF0000);
_rojo.graphics.drawRect(0,10,10,10);
_rojo.graphics.endFill();
_verde=new Sprite;

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV


_verde.graphics.beginFill(0x00FF00);
_verde.graphics.drawRect(0,30,10,10);
_verde.graphics.endFill();

_azul=new Sprite;
_azul.graphics.beginFill(0x0000FF);
_azul.graphics.drawRect(0,50,10,10);
_azul.graphics.endFill();

_blanco=new Sprite;
_blanco.graphics.beginFill(0xFFFFFF);
_blanco.graphics.drawRect(20,10,50,50);
_blanco.graphics.endFill();
addChild(_rojo);
addChild(_verde);
addChild(_azul);
addChild(_blanco);
}


(VWRQRHVFRPSOLFDGR\DTXHVyORVHWUDWDGHGLEXMDUORVFXDWURUHFWiQJXORV3XHGH
FDPELDUVHHOFRORUGHOFXDGUREODQFRSDUDTXHQRVHFRQIXQGDFRQVXHVFHQDULRR
FDPELDUHOFRORUGHOHVFHQDULRPLVPR3DUDHOORVHHVFULEHODIXQFLyQGHVSXpVGHOD
DQWHULRUSDUDOODPDUDORVOLVWHQHUV

private function addEventListeners():void {
_rojo.addEventListener(MouseEvent.MOUSE_DOWN,onArrastra);
_rojo.addEventListener(MouseEvent.MOUSE_UP,onSuelta);
_verde.addEventListener(MouseEvent.MOUSE_DOWN,onArrastra);

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

_verde.addEventListener(MouseEvent.MOUSE_UP,onSuelta);
_azul.addEventListener(MouseEvent.MOUSE_DOWN,onArrastra);
_azul.addEventListener(MouseEvent.MOUSE_UP,onSuelta);
}

2EVpUYHVHTXHVyORVHQHFHVLWDQGRVIXQFLRQHVODIXQFLyQRQ$UUDVWUD FRQODTXH
VHLQLFLyHODUUDVWUHGHODILJXUD\ODIXQFLyQRQ6XHOWD FRQODFXDOVHVROWyHOREMHWR
$PEDVIXQFLRQDQFRQORVWUHVREMHWRV6HHVFULEHODIXQFLyQ


public function onArrastra(event:MouseEvent):void {

//Guardar la ubicación original


//para poder restablecerla
puntoInicial= new Point( );
puntoInicial.x=event.target.x;
puntoInicial.y=event.target.y;

// Empezar a arrastrar la representación


// digital en la que se hizo
// clic y aplicar un filtro de sombra
// para proporcionarle profundidad
event.target.startDrag();
event.target.filters=[new DropShadowFilter];

// Llevar el destino al frente de la


// lista de visualización para que
// aparezca en todo lo demás
setChildIndex(DisplayObject(event.target),numChildren -
1);
}


• /RSULPHUR TXHVHKDFHHV JXDUGDUODVFRRUGHQDGDVDFWXDOHVHQHOREMHWR
SRLQW3DUDGLVWLQJXLUFXiOGHORVFXDGURVHVWiVLHQGRDUUDVWUDGRVHXWLOL]DHO

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

SDUiPHWUR WDUJHW GHO REMHWR GH HYHQWR \ GH HVWD PDQHUD VH VDEH FXiO GH
ORVREMHWRVGLVSDUyHOHYHQWR/XHJRVHLQLFLDODSURSLHGDGGHDUUDVWUH\VH
DxDGHXQILOWURGHVRPEUD3RU~OWLPRVHPXHYHHOREMHWRKDVWDDUULEDGHOD
OLVWDGHYLVXDOL]DFLyQ

• 6H HVFULEH OD VLJXLHQWH IXQFLyQ SDUD FRQWURODU HO DWHUUL]DMH GHO FXDGUR \
FDPELDUHOFRORUGHOFXDGUREODQFRVLHVTXHHVWRSURFHGH


public function onSuelta(event:MouseEvent):void {


// Dejar de arrastrar la representación
// digital y eliminar el efecto
// de profundidad (es decir, sombra) del filtro
event.target.stopDrag( );
event.target.filters=null;
// Comprobar si la representación digital se ha
// soltado sobre el
//rectángulo blanco, y si es así, actualizar el color
if (event.target.dropTarget == _blanco) {
// Determinar el color y aplicar
// ese color al rectángulo blanco
var color:uint;
switch (event.target) {
case _rojo :
color=0xFF0000;
break;
case _verde :
color=0x00FF00;
break;
case _azul :
color=0x0000FF;
break;
}
_blanco.graphics.clear();
_blanco.graphics.beginFill(color);

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

_blanco.graphics.drawRect(20,10,50,50);
_blanco.graphics.endFill();
}
// Devolver la representación digital
// a su ubicación original
event.target.x=startingLocation.x;
event.target.y=startingLocation.y;
}

• &XDQGR VH GHWHFWD HO HYHQWR PRXVH8S FRPLHQ]D OD RSHUDFLyQ GH VROWDU
PHGLDQWHHOPpWRGRRQ6XHOWD (QSULPHUOXJDUHOUHFWiQJXORKDLQYRFDGR
VWRS'UDJ  SDUD GHWHQHU HO FRPSRUWDPLHQWR GH VHJXLU GHO DSXQWDGRU GHO
PRXVH \ ORV ILOWURV VH HOLPLQDQ SDUD LQYHUWLU HO HIHFWR GH SURIXQGLGDG $
FRQWLQXDFLyQ OD SURSLHGDG GURSW7DUJHW GHO UHFWiQJXOR VH H[DPLQD SDUD
GHWHUPLQDU VL VH KD VROWDGR VREUH HO UHFWiQJXOR EODQFR 6L HO UHFWiQJXOR
EODQFR HV GURS7DUJHW HO UHFWiQJXOR EODQFR WLHQH HO PLVPR FRORU TXH HO
UHFWiQJXORTXHVHVROWyVREUHpO3RU~OWLPRSXHVWRTXHHOUHFWiQJXORHVWi
IXHUD GH SRVLFLyQ DKRUD DO VHJXLU HO DSXQWDGRU GHO PRXVH VH UHVWDXUD OD
XELFDFLyQ GH SDUWLGD RULJLQDO (O FyGLJR DQWHULRU IXQFLRQD FRUUHFWDPHQWH
SHURH[LVWHQGRVSHTXHxRVSUREOHPDVODSURSLHGDGGURS7DUJHWQRVLHPSUH
HVILDEOH\DUUDVWUDUHVXQSURFHVRSRFRSUHFLVR

/D SURSLHGDG GURSW7DUJHW FDPELD FRQWLQXDPHQWH GXUDQWH HO PRYLPLHQWR
GHVSXpV GH HQYLDU VWDUW'UDJ  3DUD YHU HVWH HIHFWR HQ DFFLyQ VH UHDOL]DQ ORV
VLJXLHQWHVSDVRV

 6HOHFFLRQDUHOUHFWiQJXORURMR
 0RYHUORVREUHHOUHFWiQJXOREODQFR
 0RYHU HO DSXQWDGRU GHO PRXVH PiV D OD GHUHFKD SDUD TXH HO UHFWiQJXOR
URMRHVWpIXHUDGHOiUHDGHOUHFWiQJXOREODQFR
 &RQHOUHFWiQJXORURMRIXHUDGHOUHFWiQJXOREODQFRVROWDUOR

6H SXHGH YHU TXH HO UHFWiQJXOR EODQFR HVWi GH FRORU URMR SRUTXH GURS7DUJHW VLJXH
KDFLHQGR UHIHUHQFLD DO UHFWiQJXOR EODQFR DXQTXH HO UHFWiQJXOR URMR VH KD VROWDGR
IXHUDGHORVOtPLWHVGHOUHFWiQJXOREODQFR

3DUD DMXVWDU HVWH FRPSRUWDPLHQWR VH XWLOL]D HO PpWRGR KLW7HVW3RLQW  SDUD
GHWHUPLQDU VL OD XELFDFLyQ GHO DSXQWDGRU GHO PRXVH HVWi GHQWUR GH ORV OtPLWHV GHO
REMHWRGHYLVXDOL]DFLyQGURS7DUJHW(OPpWRGRKLW7HVW3RLQW WRPDXQDXELFDFLyQ [[\  \
TXHGHYXHOYHXQYDORUYHUGDGHUR WUXH RIDOVR IDOVH LQGLFDQGRVLODXELFDFLyQFDH
GHQWUR GH ORV OtPLWHV GHO REMHWR 8Q WHUFHU SDUiPHWUR ERROHDQR RSFLRQDO VH SXHGH
XWLOL]DU SDUD HVSHFLILFDU FyPR VH FDOFXOD HO iUHD DFWLYD (VSHFLILFDU IDOVH FRPR HO

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

WHUFHU SDUiPHWUR TXH XWLOL]DUi HO UHFWiQJXOR OtPLWH GHO REMHWR PLHQWUDV TXH WUXH
XWLOL]DODIRUPDDFWXDOGHOSURSLRREMHWR(OYDORUSUHGHWHUPLQDGRHVIDOVH

'HQWUR GHO PpWRGR RQ6XHOWD  TXH FRPSUXHED VL HO UHFWiQJXOR FRORUHDGR VH
GHMy FDHU GH PDQHUD FRUUHFWD VH DxDGH XQD OODPDGD D KLW7HVW3RLQW  GHQWUR GHO
FRQGLFLRQDO\pVWHFRPSUXHEDHOGURS7DUJHW&RQHVWRVHDVHJXUDGHTXHHOFXUVRU
GHOPRXVHVLJXHGHQWURGHORVOtPLWHVGHOUHFWiQJXOREODQFRDQWHVGHSHUPLWLUVROWDU

if (event. target. dropTarget ==_blanco


&&_blanco.hitTestPoint(_blanco.mouseX,_blanco.mouseY ))
{

2WUR SUREOHPD FRQ HO FyGLJR HV OD DFWXDOL]DFLyQ PRYLGD GH OD SDQWDOOD GXUDQWH HO
PRYLPLHQWR GHO DSXQWDGRU GHO PRXVH (VWR VH GHEH D TXH ORV HYHQWRV GHO PRXVH
RFXUUHQ LQGHSHQGLHQWHPHQWH GHO SURFHVR GH UHQGHU (O tQGLFH GH PXHVWUHR GH OD
SHOtFXODGHWHUPLQDODIUHFXHQFLDFRQODTXHVHDFWXDOL]DODSDQWDOODSRUORTXHVLHO
DSXQWDGRU GHO PRXVH FDPELD OD YLVXDOL]DFLyQ OD YLVXDOL]DFLyQ DFWXDOL]DGD QR
DSDUHFHUi KDVWD TXH VH KD\D UHIUHVFDGR OD SDQWDOOD VHJ~Q OR HVSHFLILFDGR SRU HO
tQGLFHGHPXHVWUHRRIRWRJUDPDVSRUVHJXQGR>)36@ 

3DUD FRPEDWLU HVWH SUREOHPD OD FODVH 0RXVH(YHQW LQFOX\H HO PpWRGR
XSGDWH$IWHU(YHQW  1RUPDOPHQWH LQYRFDGR FXDQGR VH JHVWLRQD HO HYHQWR
PRXVH0RYHXSGDWH$IWHU(YHQW QRWLILFDDO)ODVK3OD\HUTXHODSDQWDOODKDFDPELDGR
\OHLQGLFDTXHYXHOYDDGLEXMDU(VWRHYLWDHOUHWUDVRTXHRFXUUHFXDQGRVHHVSHUDD
TXH HO tQGLFH GH PXHVWUHR DFWXDOLFH OD SDQWDOOD QRUPDOPHQWH GHVSXpV GHO
PRYLPLHQWRGHODSXQWDGRUGHOPRXVH

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
1RROYLGHUHSDVDUODVQXHYDVFDUDFWHUtVWLFDVGHOSDTXHWH
3RUHMHPSORVLYDDSUHVHQWDUHOH[DPHQGHFHUWLILFDFLyQSDUD&6OHSUHJXQWDUiQVREUH
ODKHUUDPLHQWDGHFRRVREUHODVQXHYDVIRUPDVGHDQLPDFLyQ

3RUORJHQHUDOHOH[DPHQVHUiGHGHODVKHUUDPLHQWDV\GH$FWLRQ6FULSW

*HVWLRQDUHOHYHQWRHQWHU)UDPH

(Q $FWLRQ6FULSW  JHVWLRQDU HO HYHQWR HQWHU)UDPH HUD EDVWDQWH VHQFLOOR
6LPSOHPHQWH VH WHQtD TXH FUHDU XQD IXQFLyQ GH OtQHD GH WLHPSR GHQRPLQDGD
RQ(QWHU)UDPH \ VH LQYRFDED DXWRPiWLFDPHQWH FDGD YH] TXH HPSH]DED XQ QXHYR
IRWRJUDPD (Q $FWLRQ6FULSW  VH WLHQH PXFKR PiV FRQWURO VREUH ORV GLIHUHQWHV
HYHQWRVHQXQDSHOtFXODSHURHVQHFHVDULRDOJRPiVGHWUDEDMRSDUDDFFHGHUDHOORV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

6LHVWiIDPLOLDUL]DGRFRQODFODVH(YHQW'LVSDWFKHUGH$FWLRQ6FULSWQRVHGHEHUtD
WHQHUQLQJ~QSUREOHPDFRQHOPpWRGRGHJHVWLRQDUHYHQWRVGH$FWLRQ6FULSW'H
KHFKR (YHQW'LVSDWFKHU KD SDVDGR GH VHU XQD FODVH GHILQLGD H[WHUQDPHQWH D VHU
XQD FODVH EDVH SDUD WRGRV ORV REMHWRV LQWHUDFWLYRV FRPR LPiJHQHV GH PDSDV GH
ELWV

3DUD UHVSRQGHU DO HYHQWR HQWHU)UDPH VH GHEH GHFLU D OD DSOLFDFLyQ TXH
´HVFXFKHµ HVH HYHQWR \ HVSHFLILTXH TXp PpWRGR GHVHD TXH VH LQYRTXH FXDQGR
RFXUUHHOHYHQWR

(VWR VH UHDOL]D FRQ HO PpWRGR DGG(YHQW/LVWHQHU FRPR \D VH KDEtD
PHQFLRQDGRTXHVHGHILQHGHODVLJXLHQWHIRUPD


addEventListener(evento:String,listener:Function)

1RWDV

 ([LVWHQ SDUiPHWURV DGLFLRQDOHV TXH SXHGHQ EXVFDUVH HQ ORV DUFKLYRV GH D\XGD
SHURpVWDHVODLPSOHPHQWDFLyQPtQLPD(OSDUiPHWURHYHQWRHVHOWLSRGHHYHQWRTXH
VH GHVHD HVFXFKDU (Q HVWH FDVR VHUtD OD FDGHQD HQWHU)UDPH 6LQ HPEDUJR XWLOL]DU
FDGHQDV OLWHUDOHV FRPR pVD DEUH HO FyGLJR D HUURUHV TXH HO FRPSLODGRU QR SXHGH
FDSWXUDU

6LDFFLGHQWDOPHQWHVHHVFULEHHQWHUIUDQHSRUHMHPSORODDSOLFDFLyQVLPSOHPHQWH
HVSHUDUtD GHWHFWDU XQ HYHQWR HQWHUIUDQH HO FXDO QR H[LVWH 3DUD HYLWDU HVWR HV
UHFRPHQGDEOHTXHVHXWLOLFHQODVSURSLHGDGHVHVWiWLFDV FRQVWDQWHV GHODFODVH(YHQW
(V QHFHVDULR LPSRUWDU D OD FODVH (YHQW SDUD TXH SXHGD LQYRFDU HO PpWRGR
DGG(YHQW/LVWHQHUGHODVLJXLHQWHIRUPD

addEventListener(Event.ENTER_FRAME, onEnterFrame);

$KRUDVLDFFLGHQWDOPHQWHVHHVFULEH(YHQW(17(5B)5$0(HOFRPSLODGRUVHTXHMDUiGH
TXHQRH[LVWHHVDSURSLHGDG(OVHJXQGRSDUiPHWURRQ(QWHU)UDPH
(QWHU)UDPHKDFHUHIHUHQFLDD
(QWHU)UDPH
RWURPpWRGRHQODFODVH2EVpUYHVHTXHHQ$FWLRQ6FULSWQRH[LVWHQLQJ~QUHTXLVLWR
SDUDTXHHVWHPpWRGRQRVHOODPHRQ(QWHU)UDPH
$TXtVHQRPEUyDODIXQFLyQGHOOLVWHQHUFRPRRQ(QWHU)UDPHSHURQDGDWLHQH
TXHYHUFRQHODQWLJXRGHWHFWRUGHHYHQWRV6yORHVXQSRFRGHQRVWDOJLD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

$HVWHPpWRGRVHOHSDVDXQDLQVWDQFLDGHODFODVH(YHQWFXDQGRVHLQYRFD3RU
ORWDQWRVHQHFHVLWDUiLPSRUWDUHVDFODVH\GHILQLUHOPpWRGRSDUDTXHDFHSWHXQREMHWR
HYHQW

import flash.events.Event;
private function onEnterFrame (e:Event ):void
{
}

 7DPSRFR KD\ XQD FRQYHQFLyQ HVWDEOHFLGD SDUD QRPEUDU ORV REMHWRV GH HYHQWRV
HYHQW2EMHFW (QDOJXQRVFDVRVORVOODPDQ´HYHQWµR´HYHQW2EMHFWµ$TXtSUHIHULPRV
XVDU XQD VLPSOH ´Hµ 8VWHG VHOHFFLRQH OD QRPHQFODWXUD TXH PiV OH FRQYHQ]D \ VHD
FRQVLVWHQWHFRQHOOD

(O REMHWR H FRQWLHQH LQIRUPDFLyQ UHIHUHQWH DO HYHQWR TXH SXHGH VHU GH XWLOLGDG
SDUDJHVWLRQDUOR,QFOXVRVLQRVHXWLOL]DGHQWURGHODIXQFLyQRPpWRGRVHGHEHUtDKDFHU
TXHHOOLVWHQHUORDFHSWH

(Q YHUVLRQHV DQWHULRUHV KXER XQ SUREOHPD FRQ HO iPELWR GH DSOLFDFLyQ GH OD
IXQFLyQ XWLOL]DGD SDUDJHVWLRQDUHO HYHQWR TXHDPHQXGR UHTXHUtDHO XVR GHODFODVH
'HOHJDWH(Q$FWLRQ6FULSWHOiPELWRGHDSOLFDFLyQGHOPpWRGRGHJHVWLyQHVODFODVH
GHODTXHHVXQPpWRGRSRUORTXHQRKD\QHFHVLGDGGHXWLOL]DU'HOHJDWHSDUDFRUUHJLU
ORVSUREOHPDVGHiPELWRGHDSOLFDFLyQ


$ FRQWLQXDFLyQ VH SUHVHQWD XQD VHQFLOOD DSOLFDFLyQ TXH GLEXMD OtQHDV
DOHDWRULDVVXFHVLYDVXWLOL]DQGRWRGRVORVFRQFHSWRVDQWHULRUHV

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6\VHJXDUGDHQODFDUSHWDGHWUDEDMRFRPR
HQWHUIUDPHIOD
• $KRUD VH DEUH XQ DUFKLYR $6 \ VH JXDUGD HQ OD FDUSHWD PLV&ODVHV FRQ HO
QRPEUH(QWHU)UDPHDV
• /LJXH DPERV DUFKLYRV HQ HO FDPSR 'RFXPHQW FODVV GHO ,QVSHFWRU GH
SURSLHGDGHV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 


package misClases{
import flash.display.Sprite;
import flash.events.Event;

public class EnterFrame extends Sprite {


public function EnterFrame() {
graphics.lineStyle(1,0,1);
addEventListener(Event.ENTER_FRAME, onEnterFrame);

}
private function onEnterFrame(event:Event):void {

graphics.lineTo(Math.random()*400,Math.random() *400);
}
}
}


• $OHMHFXWDUODSHOtFXODVHREVHUYDUiTXHVHGLEXMDQOtQHDVQHJUDVHQIRUPD
DOHDWRULDHQXQFXDGURGHïSL[HOHV

$TXtQXHYDPHQWHXWLOL]DPRVHOPpWRGRUDQGRP GHODFODVHHVWiWLFD0DWK

5HVSRQGHUDHYHQWRVGHOPRXVH

*HVWLRQDU HYHQWRV GHO PRXVH R GHO WHFODGR HV PX\ VLPLODU D JHVWLRQDU HO HYHQWR
HQWHU)UDPHFRPRVHKDWUDWDGRDQWHULRUPHQWHSHURUHTXLHUHDOJRPiVGHWUDEDMR
3DUD HYHQWRV GHO PRXVH OD FODVH SULQFLSDO GH OD DSOLFDFLyQ QR ODV UHFLELUi
GLUHFWDPHQWH 0RXVH SRUORTXHVHGHEH´HVFXFKDUODVµHQRWURREMHWRHQODOLVWDGH
YLVXDOL]DFLyQ(OVLJXLHQWHHMHPSORFUHDXQDLPDJHQGHPDSDGHELWVODDxDGHDOD
OLVWDGHYLVXDOL]DFLyQ\GLEXMDXQUHFWiQJXORHQHOOD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6\VHJXDUGDHQODFDUSHWDGHWUDEDMRFRPR
HQWHUIUDPHIOD
• $KRUD VH DEUH XQ DUFKLYR $6 \ VH JXDUGD HQ OD FDUSHWD PLV&ODVHV FRQ HO
QRPEUH0RYLPLHQWR0RXVHDV
• /tJXHQVH DPERV DUFKLYRV HQ HO FDPSR 'RFXPHQW FODVV GHO ,QVSHFWRU GH
SURSLHGDGHV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHHVTXHOHWRGHODFODVH

package misClases{
import flash.display.Sprite;
import flash.events.MouseEvent;

public class MovimientoMouse2 extends Sprite {


private var _sprite:Sprite;
public function MovimientoMouse2() {
}
}


• 6HGLEXMDUiVREUHXQREMHWR6SULWH6XVWLW~\DVHODIXQFLyQFRQVWUXFWRUD
SRUODVLJXLHQWH

public function MovimientoMouse2() {
_sprite=new Sprite;
addChild(_sprite);
_sprite.graphics.beginFill(0xffffff);
_sprite.graphics.drawRect(0,0,400,400);
_sprite.graphics.endFill();

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

_sprite.addEventListener(MouseEvent.MOUSE_DOWN,iniciaDi
bujo);

_sprite.addEventListener(MouseEvent.MOUSE_UP,terminaDi
bujo);
}


• 6HGHILQHXQ6SULWHGHïGHFRORUEODQFR6LVHGHVHDSXHGH
FDPELDUVH HO FRORU 7DPELpQ VH DxDGHQ GRV GHWHFWRUHV XQR SDUD
FXDQGR HO XVXDULR KDJD FOLF VREUH HO 6SULWH \ RWUR SDUD FXDQGR OR
OHYDQWH $KRUD VH KDFHQ ODV UXWLQDV SDUD PDQHMDU ORV HYHQWRV 'HEDMR
GH OD IXQFLyQ FRQVWUXFWRUD SHUR GHQWUR GH OD FODVH VH HVFULEH OD
VLJXLHQWHIXQFLyQ

private function iniciaDibujo(event:MouseEvent):void {
_sprite.graphics.lineStyle(1,0,1);
_sprite.graphics.moveTo(mouseX,mouseY);
_sprite.addEventListener(MouseEvent.MOUSE_MOVE,dibuja);
}


• &RQHVWRVHPXHYHHO$3,GHGLEXMRDODFRRUGHQDGDGHODSXQWDGRUGHO
PRXVH\VHOODPDDODUXWLQDTXHGLEXMDUi$FRQWLQXDFLyQVHHVFULEHOD
IXQFLyQGHGLEXMRGHEDMRGHODDQWHULRU

private function dibuja(event:MouseEvent):void {
_sprite.graphics.lineTo(mouseX,mouseY);
}


• 6L VH EORTXHDUD HO OLVWHQHU TXH OODPD D OD IXQFLyQ WHUPLQD'LEXMR \ OD
DSOLFDFLyQVHFRUULHUDVHGLEXMDUtDFRQHODSXQWDGRUGHOPRXVH\QRVH
GHWHQGUiGHGLEXMDUORFXDOUHVXOWDXQSRFRGLItFLO3DUDHOORVHHODERUD
ODUXWLQDTXHGHWLHQHHOGLEXMR


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0DQHMRGHHYHQWRV


private function terminaDibujo(event:MouseEvent):void {


_sprite.removeEventListener(MouseEvent.MOUSE_MOVE,dibuja);
}


• &RPRSXHGHREVHUYDUVHVyOREDVWDFRQERUUDUHOGHWHFWRUGHOHYHQWR\
YROYHUDHPSH]DU

(VWRFUHDXQVHQFLOORSURJUDPDGHGLEXMRGLULJLGRSRUHYHQWRV

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1

3DUDVXH[DPHQGHFHUWLILFDFLyQQRROYLGHUHSDVDUORVFRQFHSWRV´VHQFLOORVµSHURTXH
QRVLHPSUHDSOLFDPRVSRUHMHPSOR

¢5HFXHUGDSDUDTXpVLUYHQODVRSFLRQHVGHFDFKH$V%LWPDS\²VOLFHVFDOLQJ"


5HVSRQGHUDHYHQWRVGHOWHFODGR

/RVHYHQWRVGHWHFODGRVRQ DOJRPiVVHQFLOORGHJHVWLRQDU(O~QLFR UHTXLVLWRSDUD


HVFXFKDU\UHVSRQGHUDHYHQWRVGHWHFODGRHVTXHHOREMHWRTXHUHFLEHORVHYHQWRV
GHEHWHQHUHO´IRFRµHVGHFLUTXHVHDVHOHFFLRQDGRSRUHOXVXDULR5HDOtFHVHHVWR
SDUDODDSOLFDFLyQSULQFLSDODODxDGLUODOtQHD

stage.focus = this;


(OVLJXLHQWHHMHPSORPXHVWUDXQDVHQFLOODFODVH TXHHVFXFKDHOHYHQWRNH\'RZQ\
VLJXHODSLVWDGHOFyGLJRGHFDUiFWHUSDUDHVDWHFOD

(VWR WDPELpQ GHPXHVWUD FyPR XWLOL]DU DOJXQRV GDWRV HQ HO REMHWR HYHQW
SDVDGRVDOPpWRGRGHPDQHMDGRU2EVpUYHVHTXHORVHYHQWRVGHWHFODGRXWLOL]DQOD
FODVH.H\ERDUG(YHQW


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6\VHJXDUGDHQODFDUSHWDGHWUDEDMRFRPR
WHFODGRIOD
• $KRUD VH DEUH XQ DUFKLYR $6 \ VH JXDUGD HQ OD FDUSHWD PLV&ODVHV FRQ HO
QRPEUH7HFODGRDV
• /tJXHQVH DPERV DUFKLYRV HQ HO FDPSR 'RFXPHQW FODVV GHO ,QVSHFWRU GH
SURSLHGDGHV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHHVTXHOHWRGHODFODVH

package misClases{
import flash.display.Sprite;
import flash.events.KeyboardEvent;
public class Teclado extends Sprite {
public function Teclado() {
stage.focus=this;
addEventListener(KeyboardEvent.KEY_DOWN,onKeyDown);
}
private function
onKeyDown(event:KeyboardEvent):void {
trace("key down:" + event.charCode);
}
}
}


• $OHMHFXWDUORVHREVHUYDUiTXHKD\WHFODVTXHQR´DGPLWHµORFXDOVHGHEHD
TXHVHHVWiHMHFXWDQGRODSHOtFXODGHVGHHO,'( 


&RPR HMHPSOR GHO XVR GH ORV PDQHMDGRUHV GH HYHQWRV SURJUDPDPRV HO FOiVLFR
MXHJRGHPHPRULD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 -XHJRGHPHPRULD

-XHJRGHPHPRULD
(Q HVWH HMHPSOR KDUHPRV HO FOiVLFR MXHJR GH PHPRULD GRQGH WHQHPRV  SDUHV
LJXDOHV GH FDUWDV ODV FXDOHV EDUDMDPRV \ FRORFDPRV ERFD DEDMR /D ILQDOLGDG GHO
MXHJRHVHQFRQWUDUWRGRVORVSDUHVYROWHDQGRVyORGRVFDUWDVDODYH]\UHFRUGDQGR
ODXELFDFLyQGHODFDUWDVLPLODUHQHOPHQRUQ~PHURSRVLEOHGHLQWHQWRV3DUDHOOR
VLJDORVVLJXLHQWHVSDVRV
• 3ULPHUR KDUHPRV OD FODVH EDVH $EUD XQ DUFKLYR QXHYR )ODVK $FWLRQ6FULSW
 \QyPEUHORFRPRPHPRULDIODGHQWURGHVXFDUSHWDGHWUDEDMR

• 'HQWUR GHO HVFHQDULR KDJD XQ UHFWiQJXOR GH  ï  GH FXDOTXLHU FRORU \
FRQYLpUWDORHQ0RYLH&OLS1RPEUHDO0RYLH&OLSFRPR&DUWD\H[SyUWHORSDUD
$FWLRQ6FULSW (Q OD GHILQLFLyQ GH FODVH GHO REMHWR HVFULED HO LGHQWLILFDGRU
&DUWDFRPRVHYHHQOD)LJ


)LJXUD&UHDFLyQGHODFDUWD
)LJXUD
• (QODOtQHDGHWLHPSRGHO0RYLH&OLSJHQHUHIRWRJUDPDVFODYHFDGDXQR
FRQ XQ VtPEROR GLIHUHQWH D SDUWLU GHO VHJXQGR IRWRJUDPD FODYH (VWRV
VtPERORV VHUiQ HO FRQWHQLGR GH QXHVWUDV FDUWDV \ SXHGHQ VHU GHVGH
Q~PHURVKDVWDLPiJHQHVGHPDSDVGHELWVVLPLODUHVDOD)LJ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 



)LJXUD&RQWHQLGRGHODFDUWD
)LJXUD
• $EULPRV XQ DUFKLYR $FWLRQ6FULSW \ QyPEUHOR FRPR 0HPRULDDV UHFXHUGH
TXHODPD\~VFXODHQHOQRPEUHGHDUFKLYRHVREOLJDWRULD 
• (VFULEDHOVLJXLHQWHFyGLJRSDUDKDFHUHOHVTXHOHWRGHODFODVHHQHODUFKLYR
DV

package{
import flash.display.MovieClip;
public class Memoria extends MovieClip{
public function Memoria(){
}
}
}


• /LJXH OD SHOtFXOD EDVH D OD FODVH FRPR 'RFXPHQW &ODVV FRQ OR FXDO HO
FRQVWUXFWRUGHODFODVH0HPRULDVHUiHMHFXWDGDDXWRPiWLFDPHQWH
• 2EVHUYH TXH JUDEDPRV OD FODVH HQ OD PLVPD FDUSHWD SRU OR TXH QR HV
QHFHVDULRLQGLFiUVHORHQHOSDFNDJHQLHQHO'RFXPHQW&ODVV
• 'HQWURGHODUFKLYRGHFODVHGHVSXpVGHODGHILQLFLyQGHFODVH\DQWHVTXH
ODIXQFLyQFRQVWUXFWRUDODVFRQVWDQWHVTXHQRVVHUYLUiQSDUDSDUDPHWUL]DU
HOMXHJRVRQODVVLJXLHQWHV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 -XHJRGHPHPRULD


private const _renglones:uint = 6;
private const _columnas:uint = 6;
private const _espaciox:uint = 10;
private const _espacioy:uint = 10;
private const _longx:uint = 50;
private const _longy:uint = 50;
private const _iniciox:int = 100;
private const _inicioy:int = 25;

• 'HVSXpVGH ODVFRQVWDQWHVFUHDUHPRVGRVREMHWRVSDUDDOPDFHQDUOD
SULPHUD\VHJXQGDFDUWDV

var cartaUno:Carta;
var cartaDos:Carta;


• 'HQWURGHO0RYLH&OLSWHQHPRVQ~PHURV \QHFHVLWDPRVXQ SDUGHFDGD
XQRHVGHFLUSDUDWHQHUWRGDVODVFDUWDVSDUDQXHVWURMXHJR

• 3DUD FRQWURODU ODV FDUWDV KDUHPRV XQ DUUHJOR FRQ ORV  SDUHV \ GHVSXpV
ORV EDUDMDUHPRV DO D]DU 3DUD FUHDU HO DUUHJOR RUGHQDGR HVFULELPRV HO
VLJXLHQWHFyGLJRHQODIXQFLyQFRQVWUXFWRUD

var arregloCartas:Array = new Array();
for (var a=0; a<(_renglones*_columnas)/2; a++) {
arregloCartas.push(a,a);
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 

$KRUDGHVSOHJDUHPRVODVFDUWDVGHQWURGHOHVFHQDULR+DUHPRVGRVFLFORVXQR
SDUD ORV UHQJORQHV \ RWUR SDUD ODV FROXPQDV /RV SDVRV TXH D FRQWLQXDFLyQ
FRGLILFDUHPRVVRQORVVLJXLHQWHV
 &UHDUHPRVXQDFDUWDHQFDGDLWHUDFLyQ
 /DXELFDUHPRVHQVXOXJDUGHQWURGHODFXDGUtFXODGHFDUWDV
 6HOHFFLRQDPRVXQHOHPHQWRGHODUUHJORHQIRUPDDOHDWRULD
 $OPDFHQDPRVHOQ~PHURHQODFDUWD
 /RHOLPLQDPRVGHODUUHJOR
 &UHDPRVHOOLVWHQHUSDUDODFDUWD
 3DUDFRGLILFDUORVSDVRVDQWHULRUHVHVFULEDGHQWURODIXQFLyQFRQVWUXFWRUD\
GHEDMRGHOFLFORDQWHULRUHOVLJXLHQWHFyGLJR


for (var i=0; i < _renglones; i++) {


for (var j=0; j < _columnas; j++) {
var nuevaCarta:Carta = new Carta();

nuevaCarta.stop();
nuevaCarta.x = _iniciox + (_longx + _espaciox)*j;
nuevaCarta.y = _inicioy + (_longy + _espacioy)*i;
var numCarta:uint =
Math.floor(Math.random()*arregloCartas.length);
nuevaCarta.dibujo = arregloCartas[numCarta];
addChild(nuevaCarta);
arregloCartas.splice(numCarta, 1);

nuevaCarta.addEventListener(MouseEvent.CLICK,
onVoltearCarta);
}
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 -XHJRGHPHPRULD

(VWDGRVGHODVFDUWDV

• &RPR SXHGH REVHUYDU FDGD XQD GH ODV FDUWDV FRQWLHQH XQ OLVWHQHU 'H
KHFKR WRGDV ODV FDUWDV WLHQHQ OD PLVPD IXQFLyQ GH OLVWHQHU &RQ
$FWLRQ6FULSWVDEUHPRVH[DFWDPHQWHFXiOGHODVFDUWDVIXHSXOVDGD
\D TXH FRPR VH KDEtD FRPHQWDGR DQWHULRUPHQWH HVWD LQIRUPDFLyQ VH
DOPDFHQDHQHOHYHQW2EMHFW
• $QWHV GH SDVDU D FRGLILFDU OD IXQFLyQ GHO OLVWHQHU RQ9ROWHD&DUWD
DQDOL]DUHPRV ORV SRVLEOHV HVWDGRV TXH SXHGHQ WRPDU D OR ODUJR GH XQD
SDUWLGDGHPHPRULD
• (VWDGR 6L HV OD SULPHUD FDUWD TXH VHOHFFLRQD HQWRQFHV JXDUGH HO
FRQWHQLGRGHODSULPHUDHOHFFLyQ\YROWHHODFDUWD
• (VWDGR 6L VHOHFFLRQy QXHYDPHQWH OD PLVPD FDUWD YROWpHOD \ OLPSLH
FDUWD8QR
FDUWD8QR
• (VWDGR6LVHOHFFLRQyRWUDFDUWDGLIHUHQWHHQVXVHJXQGDWLUDGDDOPDFHQH
ODWLUDGDHQFDUWD'RV
FDUWD'RV\ODYROWpHOD
FDUWD'RV
• 6LFDUWD8QR\FDUWD'RV
FDUWD8QR\FDUWD'RVVRQLJXDOHVERUUHODVFDUWDV\OLPSLHODVYDULDEOHV
FDUWD8QR\FDUWD'RV
• (VWDGR 6L QR HV QLQJXQD GH ODV RSFLRQHV DQWHULRUHV HV RWUD WLUDGD
GHVSXpV GH GRV WLUDGDV DQWHULRUHV HV GHFLU FDUWD8QR
FDUWD8QR \ FDUWD'RV
FDUWD'RV WLHQHQ
YDORUHV  HQWRQFHV YROWHH ODV FDUWDV OLPSLH FDUWD'RV
FDUWD'RV DVLJQH FDUWD8QR
FDUWD8QR \
YROWHHFDUWD8QR
FDUWD8QR
FDUWD8QR

&RGLILFDUODIXQFLyQGHOOLVWHQHU

function onVoltearCarta(e:MouseEvent):void {
// Carta define el objeto relacionado
var cartita:Carta = (e.target as Carta);
}

• (VLPSRUWDQWHFRQYHUWLUHOHYHQWREMHFWDOIRUPDWR&DUWD

• (VWDGR(OXVXDULRVHOHFFLRQDODSULPHUDFDUWD FDUWD8QRHVWiYDFtD 3DUD


HOORHVFULEDHOVLJXLHQWHFyGLJRGHQWURGHODIXQFLyQRQ9ROWHDU&DUWDGHEDMR
GHODGHILQLFLyQGHOREMHWRFDUWLWD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

0DQHMRGHHYHQWRV 


//Estado 1
if (cartaUno == null) {
cartaUno = cartita;
cartaUno.gotoAndStop(cartita.dibujo + 2);
}


• (VWDGR  (O XVXDULR VHOHFFLRQD QXHYDPHQWH OD PLVPD FDUWD 3DUD GHILQLU
HVWHHVWDGRHVFULEDGHQWURGHODIXQFLyQSHURGHEDMRGHOFyGLJRDQWHULRUHO
VLJXLHQWHFyGLJR

//Estado 2
else if (cartaUno == cartita) {
//Voleteamos la carta
cartaUno.gotoAndStop (1);
//Limpiamos la variable
cartaUno = null;
}

• (VWDGR6HOHFFLRQyRWUDFDUWDGLIHUHQWH'HEDMRGHOFyGLJRDQWHULRUSHUR
GHQWURGHODIXQFLyQGHOOLVWHQHUHVFULEDHOVLJXLHQWHFyGLJR

//Estado 3
else if (cartaDos == null) {
cartaDos = cartita;
//Volteamos la carta
cartaDos.gotoAndStop (cartita.dibujo + 2);
//
//Estado 3
else if (cartaDos == null) {
//Volteamos la carta
cartaDos.gotoAndStop (cartita.dibujo + 2);

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 $PDQHUDGHFRQFOXVLyQ

//
if (cartaUno.dibujo == cartaDos.dibujo){
removeChild(cartaUno);
removeChild(cartaDos);
cartaUno= null
cartaDos = null
}
}


• (VWDGR(OXVXDULRVHOHFFLRQyXQDFDUWDGLIHUHQWHDODSULPHUD&RQHVWR
UHJUHVDUHPRV DO HVWDGR LQLFLDO HQ FDVR GH TXH HO XVXDULR KD\D SXOVDGR
FDUWDVTXHQRWLHQHQHOPLVPRVtPEROR

//Estado 4
} else {
cartaUno.gotoAndStop(1);
cartaDos.gotoAndStop(1);
cartaUno =cartita;
cartaDos = null;
cartaUno.gotoAndStop(cartita.dibujo +2);
}

$PDQHUDGHFRQFOXVLyQ

(OPDQHMRGHORVHYHQWRVHQHOPRGHOR'20KDFHD$FWLRQ6FULSWXQSRGHURVR\
ELHQHVWUXFWXUDGROHQJXDMHHQHVWHFDStWXORDSUHQGLy
• (OPDQHMRGHHYHQWRV
• $GHWHUPLQDUHOHYHQWRVXLGHQWLILFDGRU\HOWLSRGHREMHWRGHOHYHQWR
• $ FUHDU XQ OLVWHQHU SDUD HO HYHQWR \ VXVFULELU HO REMHWR GHVWLQR DO
OLVWHQHU
• $FUHDULQWHUDFFLRQHVGHOPRXVH
• &yPRUHVSRQGHUDHYHQWRVGHOWHFODGR
$KRUDTXH\DWHQHPRVORVWUHVFRQFHSWRVIXQGDPHQWDOHVUHYLVDGRVKDUHPRVRWUDV
FODVHVYLVXDOHVFRQODVFXDOHVVDFDUHPRVPXFKDYHQWDMDDOOHQJXDMH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


Crear clases visuales


personalizadas 6




,QWURGXFFLyQ
+DVWD HVWH PRPHQWR KHPRV UHYLVDGR WUHV SXQWRV IXQGDPHQWDOHV SDUD GRPLQDU
$FWLRQ6FULSW/DSURJUDPDFLyQRULHQWDGDDREMHWRV DOPHQRVHQIRUPDEiVLFD 
HOPDQHMRGHODOLVWDGHYLVXDOL]DFLyQ\HOQXHYRPRGHORGHHYHQWRV(QHVWHFDStWXOR
DEDUFDUHPRVXQSRFRGHFDGDXQRGHVDUUROODQGRFODVHVYLVXDOHVSHUVRQDOL]DGDVOR
FXDOQRVSHUPLWLUiVDFDUPiVMXJRD$FWLRQ6FULSW
8QRGHORVJUDQGHVEHQHILFLRVGHODOLVWDGHYLVXDOL]DFLyQHVXWLOL]DUODVQXHYDV
FODVHVTXHVRQPXFKRPiVOLJHUDV\SRUFRQVHFXHQFLDKDFHQODVDSOLFDFLRQHVGH
)ODVK PiV UiSLGDV (Q HO SDVDGR HUD SRVLEOH DPSOLDU 0RYLH&OLS SDUD FUHDU FODVHV
YLVXDOHV SHUVRQDOL]DGDV SHUR VLHPSUH WHQtD TXH VHU XQ VtPEROR 0RYLH&OLS HQ OD
ELEOLRWHFDYLQFXODGRFRQODFODVHSHUVRQDOL]DGDSDUDFUHDUXQDLQVWDQFLDHQSDQWDOOD
DWUDYpVGHDWWDFK0RYLH &RQODOLVWDGHYLVXDOL]DFLyQSRGHPRVKDFHUREMHWRVPiV
OLJHURV\FRQXQGHVHPSHxRPD\RU
(Q $FWLRQ6FULSW  H[LVWHQ PXFKDV PiV FODVHV GH YLVXDOL]DFLyQ GLVSRQLEOHV
DGHPiV GH 0RYLH&OLS $QWHV GH FUHDU XQ REMHWR YLVXDO HV QHFHVDULR GHFLGLU TXp
FODVHQRVFRQYLHQHPiV
• 6LVRODPHQWHFRQWLHQHGLEXMRVYHFWRULDOHVVHTXHUUiDPSOLDUODFODVH6KDSH
• 6LVHFUHDXQERWyQSHUVRQDOL]DGRVHTXHUUiDPSOLDU6LPSOH%XWWRQ
• 6LVHGHVHDFUHDUXQFRQWHQHGRUSDUDDOPDFHQDURWURVREMHWRVGH 
YLVXDOL]DFLyQ6SULWHHVXQDEXHQDRSFLyQVLQRVHUHTXLHUHHOXVRGHXQD 
OtQHDGHWLHPSR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QWURGXFFLyQ

• 6L HV QHFHVDULD XQD OtQHD GH WLHPSR VH GHEHUi FUHDU XQD VXEFODVH GH
0RYLH&OLS TXHHVPXFKRPiVSHVDGDTXHODVGHPiV 
• 6LGHVHDPRVFDUJDULPiJHQHVXRWUDVSHOtFXODVVZISRGHPRVXWLOL]DUODFODVH
/RDGHU


&DGDXQDGHODVFODVHVWLHQHXQILQHVSHFtILFR6HOHFFLRQDUODFODVHDGHFXDGD
D\XGDPXFKRDRSWLPL]DUHOWDPDxRGHODDSOLFDFLyQ\KDFHUODPiVUiSLGD
3RU HMHPSOR XQD VHQFLOOD FODVH &tUFXOR QR QHFHVLWD FUHDU XQD VXEFODVH GH
0RYLH&OLS SRUTXH QR UHTXLHUH OD OtQHD GH WLHPSR /D FODVH 6KDSH HV OD PHMRU
HOHFFLyQHQHVWHFDVRSRUTXHHVODRSFLyQPiVOLJHUDTXHVHDMXVWDSHUIHFWDPHQWHDO
FRQFHSWRGHXQFtUFXORYHFWRULDO
8QD YH] TXH VH KD GHFLGLGR OD FODVH EDVH WRGR OR TXH WLHQH TXH KDFHUVH HV
HVFULELUHOFyGLJRSDUDODPLVPD3RUHMHPSORVHUHWRPDHOHMHPSORGHOFtUFXOR\VH
FUHDXQDQXHYDFODVH&tUFXORTXHDPSOtHHOREMHWRGHYLVXDOL]DFLyQ6KDSH
(MHUFLFLR

• 6HFUHDXQDFDUSHWDOODPDGDXWLOHUtDVHQODFDUSHWDGHWUDEDMR
• (Q XQ QXHYR DUFKLYR $FWLRQ6FULSW GHQRPLQDGR &LUFXORDV VH HVFULEH HO
VLJXLHQWHFyGLJR\VHJXDUGDHQODFDUSHWDXWLOHUtDV


package utilerías{
import flash.display.Shape;

// La clase Círculo es una clase visual personalizada


public class Circulo extends Shape {
// Variables locales para almacenar
// las propiedades del círculo
private var _color:uint;
private var _radio:Number;
// Constructor: invocado cuando se
// crea un Círculo. El color
// predeterminado es negro, y el
// radio predeterminado es 10.
public function
// Guardar los valores de color y radio
_color=color;
_radio=radio;

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

// Cuando se crea el círculo,


// dibújel.o automáticamente
dibuja();
}
// Dibuje el círculo basándose en los
// valores de color y radio
private function dibuja():void {
graphics.beginFill(_color);
graphics.drawCirculo(0,0,_radio);
graphics.endFill();
}
}
}


(O FyGLJR DQWHULRU GHILQH XQ QXHYR REMHWR GH YLVXDOL]DFLyQ &tUFXOR &XDQGR VH FUHD
XQDLQVWDQFLD&tUFXORVH SXHGHHVSHFLILFDUWDQWRHOFRORUFRPRHOUDGLRHQHOFRQV
WUXFWRURGHMDUORVYDORUHVSRUGHIDXOW
/RVPpWRGRVGHOD$3,GHGLEXMRVHXWLOL]DQSDUDFUHDUHOFXHUSRGHOFtUFXORFRQ
ODSURSLHGDGJUDSKLFVTXHVHKHUHGDGHODVXSHUFODVH6KDSH

1RWD

6LHPSUH HV XQD EXHQD LGHD QR VDWXUDU D OD IXQFLyQ FRQVWUXFWRUD FRQ FyGLJR (O
FRQVWUXFWRUSDUD&tUFXORQRGLEXMDHOFtUFXORGLUHFWDPHQWHVLQRTXHLQYRFDHOPpWRGR
GLEXMR SDUDFUHDUORVHOHPHQWRVYLVXDOHV7RGRORTXHTXHGDSRUKDFHUHVFUHDUQXHYDV
LQVWDQFLDVGHQXHVWUDFODVHSHUVRQDOL]DGD&tUFXOR\DxDGLUODVDODOLVWDGHYLVXDOL]DFLyQ
FRQ DGG&KLOG  R DGG&KLOG$W  SDUD TXH DSDUH]FDQ HQ SDQWDOOD 3DUD FUHDU QXHYDV
LQVWDQFLDVGHODFODVHXWLOtFHVHODSDODEUDFODYHQHZ

(MHUFLFLR

• 6H FUHD XQ DUFKLYR )ODVK $6 QXHYR \ VH OH SRQH HO QRPEUH GH
XVDU&LUFXORIODHQHOGLUHFWRULRGHWUDEDMR
• 6H FUHD XQ DUFKLYR $6 \ VH OH SRQH HO QRPEUH GH8VDU&LUFXORDV (Q pO VH
HVFULEHHOVLJXLHQWHFyGLJR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QWURGXFFLyQ


package misClases{
import flash.display.Sprite;
public class UsarCirculo extends Sprite {
public function UsarCirculo () {
// Crear algunos círculos con
// la clase Círculo y
// cambia sus coordenadas para que
// se escalonen
// y no se sitúen todos en (0,0).
var rojo:Circulo = new
Circulo(0xFF0000,10);
rojo.x=10;
rojo.y=10;
var verde:Circulo=new Circulo(0x00FF00,10);
verde.x=25;
verde.y=25;
var azul:Circulo=new Circulo(0x0000FF,10);
azul.x=40;
azul.y=40;
// Añadir los círculos a la
// lista de visualización
addChild(rojo);
addChild(verde);
addChild(azul);
}
}
}

• (MHF~WHVHODSHOtFXOD\QyWHVHTXHVHIRUPDQORVWUHVFtUFXORVVROLFLWDGRV

1RWD

$OJXQRV DXWRUHV SUHILHUHQ DxDGLU OD SDODEUD 'RFXPHQW D ODV FODVHV GH GRFXPHQWR
FRPRODDQWHULRUSDUDGLVWLQJXLUODGHODVGHPiVHVGHFLUODFODVHDQWHULRUVHOODPDUtD
8VD&LUFXOR'RFXPHQWDV (Q QXHVWUR FDVR QR XWLOL]DUHPRV HVWD FRQYHQFLyQ KDVWD TXH
GHVDUUROOHPRVDSOLFDFLRQHV


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

&UHDUERWRQHVVHQFLOORV
(Q$FWLRQ6FULSWQRSRGtDPRVFUHDUERWRQHVFRPRVtPERORV7HQtDPRVTXHGDUOH
DXQ0RYLH&OLSXQFRPSRUWDPLHQWRGHERWyQ\OLVWR&RQODQXHYDYHUVLyQSRGHPRV
KDFHUOR FRQ OD FODVH 6LPSOH%XWWRQ /D FODVH 6LPSOH%XWWRQ SHUPLWH D XQ XVXDULR
LQWHUDFWXDU FRQ HO REMHWR GH YLVXDOL]DFLyQ XWLOL]DQGR VX DSXQWDGRU GHO PRXVH \ OH
IDFLOLWDGHILQLUHVDLQWHUDFFLyQSRUPHGLRGHYDULRVHVWDGRVGHERWyQ/RVHVWDGRVGH
XQERWyQFUHDGRFRQ$FWLRQ6FULSWFRQODFODVH6LPSOH%XWWRQVRQORVPLVPRVTXH
WHQHPRVHQHO,'(GH)ODVK
• XS6WDWH8QREMHWRGHYLVXDOL]DFLyQSDUDHOHVWDGRXS(VWHHVWDGRVHPXHVWUD
XS6WDW
 VLHPSUHTXHHODSXQWDGRUGHOPRXVHQRHVWpVREUHHOERWyQ
• RYHU6WDWH8QREMHWRGHYLVXDOL]DFLyQTXHGHWHUPLQDHODVSHFWRGHOERWyQFXDQGR
RYHU6WDWH
HO DSXQWDGRU GHO PRXVH VH PXHYH VREUH HO ERWyQ &XDQGR HO DSXQWDGRU GHO
PRXVHGHMDHOiUHDGHOERWyQHOERWyQUHJUHVDDOHVWDGRXS
• GRZQ6WDWH
GRZQ6WDWH8QREMHWRGHYLVXDOL]DFLyQTXHVHPXHVWUDFXDQGRVHSXOVDHOERWyQ
 R VH KDFH FOLF VREUH pO  &XDQGR HO ERWyQ HVWi HQ HO HVWDGR RYHU HO HVWDGR
 GRZQVHPXHVWUDFXDQGRHOXVXDULRSXOVDHOERWyQL]TXLHUGRGHODSXQWDGRUGHO
 PRXVH
• KLW7HVW6WDWH8QREMHWRGHYLVXDOL]DFLyQTXHGHILQHORVOtPLWHVGHODSXQWDGRUGHO
KLW7HVW6WDWH
PRXVH&XDQGRpVWHVHPXHYHGHQWURGHOiUHDDFWLYDGHOERWyQHOERWyQHQWUD
HQHOHVWDGRRYHUKLW7HVW6WDWHVHHVWDEOHFHWtSLFDPHQWHHQHOPLVPRREMHWRGH
YLVXDOL]DFLyQTXHXS6WDWHKLW7HVW6WDWHQXQFDVHPXHVWUDHQSDQWDOODVRODPHQWH
VHXWLOL]DSDUDILQHVGHVHJXLPLHQWRGHODSXQWDGRUGHOPRXVH


(OHVWDGRGHODSXQWDGRUGHOPRXVHORJHVWLRQDODFODVH6LPSOH%XWWRQ\VHEDVD
HQHOPRYLPLHQWRGHODSXQWDGRUGHOPRXVHGHOXVXDULR

1RWD

3RVLEOHPHQWHXVWHGVHSUHJXQWDUiSRUTXpKDFHUXQERWyQGHVGH$FWLRQ6FULSWVLHVWDQ
IiFLOKDFHUORHQHO,'(3XHVKDFHUORFRQ$FWLRQ6FULSWHVPiVUiSLGR\OLJHUR8VWHGGHEH
HYDOXDUVLQHFHVLWDKDFHUREMHWRVFRQFyGLJRRVLSUHILHUHDODDQWLJLWDKDFLpQGRORVFRQ
HOPRXVH

(MHPSOR

&UHDU XQD QXHYD LQVWDQFLD 6LPSOH%XWWRQ \ GHILQLU ORV HVWDGRV GHO ERWyQ XWLOL]DQGR
ODV FXDWUR SURSLHGDGHV FRPHQWDGDV DQWHULRUPHQWH 3DUD FDGD HVWDGR
QHFHVLWDUHPRV XQ REMHWR YLVXDO HV GHFLU XQ REMHWR GH OD FODVH 'LVSOD\2EMHFW HO
PpWRGRGHD\XGDFUHDU&LUFXOR VHXWLOL]DSDUDFUHDUGLIHUHQWHVIRUPDVGHFtUFXORVGH
FRORUHVTXHVHYDQDXWLOL]DUSDUDORVGLIHUHQWHVHVWDGRVGHERWyQ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUERWRQHVVHQFLOORV


package misClases{
import flash.display.*;
import flash.events.*;
public class Boton extends Sprite {
public function Boton() {
inicio()
}
Private function inicio():void{
// Crear un solo botón y
// configurar su ubicación
var boton:SimpleButton=new SimpleButton;
boton.x=20;
boton.y=20;
var rojo:Circulo = new
Circulo(0xFF0000,10);
var verde:Circulo = new
Circulo(0x00FF00,10);
var azul:Circulo = new
Circulo(0x0000FF,10);
// Crear los diferentes estados
// de botón, utilizando
// el método de ayuda para crear
// diferentes círculos de colores
boton.upState=rojo;
boton.overState=verde;
boton.downState=azul;
boton.hitTestState=boton.upState;

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

// Añadir un listener para el


// evento de clic para saber
//cuándo el usuario hace clic con
// el mouse en el botón
boton.addEventListener(MouseEvent.CLICK,onClick);
// Por último, añadir el botón a
// la lista de visualización
addChild(boton);
}
// Manejador de evento invocado siempre
// que el usuario pulsa el botón
private function onClick(e:MouseEvent):void {
trace("Clic en el botón");
}
}
}


'HVSXpVGHHMHFXWDUHVWHEORTXHGHFyGLJRDSDUHFHXQFtUFXORURMRHQ ODSHOtFXOD
&XDQGR VH PXHYH HO DSXQWDGRU GHO PRXVH VREUH HO FtUFXOR D]XO XQ FtUFXOR EODQFR
DOJRPD\RUDSDUHFHFRPRXQUROORYHU&XDQGRKDFHFOLFVREUHHOFtUFXOREODQFRVH
FRQYLHUWH HQ XQ FtUFXOR D]XO PiV SHTXHxR (O HIHFWR YLVXDO OR FUHD OD LQVWDQFLD
6LPSOH%XWWRQ FDPELDQGR HO HVWDGR EDViQGRVH HQ ODV DFFLRQHV GHO DSXQWDGRU GHO
PRXVH FDPELDQGR HQWUH ORV REMHWRV GH YLVXDOL]DFLyQ GHILQLGRV HQ ODV FXDWUR
SURSLHGDGHVGHHVWDGR
3DUD GHWHFWDU HYHQWRV GH OD LQVWDQFLD ERWRQ VH XWLOL]D HO PpWRGR
DGG(YHQW/LVWHQHU (OHYHQWRFOLFHVSHFLILFDGRFRQ0RXVH(YHQW&/,&.VHJHVWLRQD
HQHOFyGLJRDQWHULRUSRUHOPpWRGRRQ&OLFN 
/DSURSLHGDGKLW7HVW6WDWHHVTXL]iODSURSLHGDGPiVLQWHUHVDQWHGHHVWDFODVH
6H REVHUYDUi TXH HO FyGLJR DQWHULRU HVWDEOHFH KLW7HVW6WDWH HQ HO PLVPR REMHWR GH
YLVXDOL]DFLyQTXHGHILQHXS6WDWH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &DUJDULPiJHQHVH[WHUQDVHQWLHPSRGHHMHFXFLyQODFODVH/RDGHU

1RWD
$XQTXH KLW7HVW6WDWH QXQFD HV YLVLEOH QR HVWDEOHFHU KLW7HVW6WDWH HQ XQ REMHWR GH
YLVXDOL]DFLyQ WLHQH FRPR UHVXOWDGR XQ ERWyQ FRQ HO TXH QR VH SXHGH LQWHUDFWXDU
5HFXHUGHHVWDEOHFHUVLHPSUHHOKLW7HVW6WDWHGHOERWyQLQFOXVRVLVRODPHQWHQHFHVLWDHO
YDORUGHXS6WDWH
/D SURSLHGDG KLW7HVW6WDWHVH SXHGH HVWDEOHFHU HQ FXDOTXLHU SXQWRFXDQGRVH
GHVHDFRQWURODUORVOtPLWHVDFWLYRVGHXQERWyQ3DUDFUHDUXQiUHDDFWLYDPD\RUSDUDHO
ERWyQVHLQWHQWDPRGLILFDUHOFyGLJRDQWHULRUSDUDHVWDEOHFHUHOKLW7HVW6WDWHSRUPHGLR
GHHVWDOtQHD

boton.hitTestState = crearCirculo( 0x000000, 50 ) ;

&DUJDULPiJHQHVH[WHUQDVHQWLHPSR
GHHMHFXFLyQODFODVH/RDGHU
3DUD FDUJDU LPiJHQHV R SHOtFXODV H[WHUQDV HQ HO WLHPSR GH HMHFXFLyQ VH XWLOL]D OD
FODVH/RDGHU(QHVWHSURFHVRWDPELpQSRQHRUGHQ$FWLRQ6FULSW\DTXHHQODV
YHUVLRQHVDQWHULRUHVFDUJDULPiJHQHV\RWUDVSHOtFXODVVHKDFtDGHIRUPDGLIHUHQWH
8QD GH ODV GLIHUHQFLDV HQWUH OD FODVH /RDGHU \ OD FODVH 85//RDGHU HV TXH OD
SULPHUD VLUYH SDUD FDUJDU LPiJHQHV \ SHOtFXODV H[WHUQDV \ PRVWUDUODV HQ SDQWDOOD
PLHQWUDVTXHODVLQVWDQFLDV85//RDGHUVRQGHXWLOLGDGSDUDFDUJDUGDWRV


7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
8QDGHODVSUHJXQWDVTXHJHQHUDOPHQWHDSDUHFHQHQODFHUWLILFDFLyQ$&(GH)ODVKHVOD
GLIHUHQFLDHQWUH/RDGHU\85//RDGHU

([LVWHQWUHVSDVRVIXQGDPHQWDOHVSDUDFDUJDUFRQWHQLGRH[WHUQR

 &UHDUXQDLQVWDQFLDGHODFODVH/RDGHU
 $xDGLUODLQVWDQFLD/RDGHUDODOLVWDGHYLVXDOL]DFLyQ
 ,QYRFDUHOPpWRGRORDG SDUDLQFRUSRUDUXQDFWLYRH[WHUQR
(OPpWRGRORDG GHODFODVH/RDGHUHVUHVSRQVDEOHGHGHVFDUJDUODLPDJHQR
XQDUFKLYRVZI7RPDXQVRORREMHWR85/5HTXHVWFRPRXQSDUiPHWURTXHHVSHFLILFD
HO85/GHODFWLYRTXHVHYDDGHVFDUJDU\PRVWUDU
(O VLJXLHQWH HV XQ HMHPSOR GHO XVR GH OD FODVH /RDGHU SDUD GHVFDUJDU XQD
LPDJHQ OODPDGD LPDJHQMSJ HQ WLHPSR GH HMHFXFLyQ (O FyGLJR HQ HO FRQVWUXFWRU
&DUJD,PDJHQ VH KD FRPHQWDGR SDUD FRLQFLGLU FRQ ORV WUHV SDVRV EiVLFRV GH FDUJD
GHWDOODGRVDQWHULRUPHQWH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

(MHPSOR

• 6HDEUHXQDUFKLYR)ODVK$6VHQRPEUDFDUJD,PDJHQIOD\VHJUDEDHQ
ODFDUSHWDGHWUDEDMR
• &ySLHVHXQDLPDJHQDODPLVPDFDUSHWD5HQyPEUHODFRPRLPDJHQMSJ
• $KRUD VH DEUH XQ DUFKLYR $FWLRQ6FULSW \ VH JUDED HQ OD FDUSHWD PLV&ODVHV
FRQHOQRPEUHGH&DUJD,PDJHQDV
• (Q HO DUFKLYR GH FODVH VH HVFULEH HO VLJXLHQWH JXLyQ 6L HV QHFHVDULR
VXVWLW~\DVHHOQRPEUHGHODUFKLYRSRUHOQRPEUHGHODUFKLYRFRQODLPDJHQ

package misClases{
import flash.display.*;
import flash.net.URLRequest;

public class CargaImagen extends Sprite {


public function CargaImagen() {
//1. Crear una instancia de la clase Loader
var loader:Loader=new Loader();
//2. Añadir una instancia Loader a
//la lista de visualización
addChild(loader);
//3. Invocar el método load()
//para incorporar un activo externo
loader.load(new URLRequest("imagen.jpg"));
}
}
}

• (MHF~WHVHODSHOtFXOD'HEHUiGHVSOHJDUVHODLPDJHQGHODUFKLYRH[WHUQR

&XDQGR VH HMHFXWD HVWH FyGLJR HO )ODVK 3OD\HU EXVFD LPDJHQMSJ HQ HO PLVPR
GLUHFWRULRGHVGHHOTXHVHVLUYHODSHOtFXODVZISRUTXHHOREMHWR85/5HTXHVWXWLOL]D
XQ 85/ UHODWLYR 6H SXHGH XWLOL]DU XQ 85/ DEVROXWR HV GHFLU GHVGH HO
KWWSZZZPLVWLWRFRPRUHODWLYRSDUDDSXQWDUDOD XELFDFLyQGHVWLQRDFDUJDU
SHURODFDUJDUHDOGHODFWLYRHVWiJHVWLRQDGDSRUHOHQWRUQRGHVHJXULGDGGH)ODVK
3OD\HU OD IDPRVD FDMD GH DUHQD R VDQGER[ 7DQ SURQWR FRPR VH KD GHVFDUJDGR HO
DFWLYRVHDxDGHDXWRPiWLFDPHQWHFRPRXQKLMRGHODLQVWDQFLD/RDGHU

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &DUJDULPiJHQHVH[WHUQDVHQWLHPSRGHHMHFXFLyQODFODVH/RDGHU

&XDQGRVHFDUJDQDFWLYRVH[WHUQRV HVSRVLEOH TXHDOJRVDOJDPDOGXUDQWH HO


SURFHVRGHFDUJD3RUHMHPSORTXL]iHO85/DSXQWDDODXELFDFLyQLQFRUUHFWDGHELGR
DXQHUURURUWRJUiILFRRDTXHH[LVWHXQDYLRODFLyQGHVHJXULGDGTXHQRSHUPLWLUiTXH
VH FDUJXH HO DFWLYR 2 ELHQ HV SRVLEOH TXH HO DFWLYR VHD JUDQGH \ YD\D D WDUGDU
PXFKR WLHPSR HQ GHVFDUJDUVH (Q OXJDU GH WHQHU XQD SDQWDOOD YDFtD PLHQWUDV VH
GHVFDUJD HO DUFKLYR VH SRGUtD PRVWUDU LQIRUPDFLyQ DO XVXDULR GHO SURJUHVR GH
GHVFDUJDSRUHMHPSORXQSUHFDUJDGRU
3DUDDxDGLUXQOLVWHQHUGHHYHQWRDOSURFHVRGHFDUJDHVQHFHVDULROLJDUORDOD
SURSLHGDGFRQWHQW/RDGHU,QIRGHODLQVWDQFLD/RDGHU
/DSURSLHGDGFRQWHQW/RDGHU,QIRHVXQDLQVWDQFLDGHODFODVHIODVKGLVSOD\/RDGHU,QIR
GLVHxDGD SDUD SURSRUFLRQDU LQIRUPDFLyQ GHO REMHWLYR TXH VH FDUJD $ FRQWLQXDFLyQ VH
H[SRQH XQD OLVWD GH HYHQWRV GH XWLOLGDG HQYLDGRV SRU LQVWDQFLDV GH OD FODVH
/RDGHU,QIR
• RSHQ6HJHQHUDFXDQGRHODUFKLYRVHKDHPSH]DGRDGHVFDUJDU
RSHQ
• SURJUHVV6HJHQHUDPLHQWUDVVHGHVFDUJDHODFWLYR
SURJUHVV
• FRPSOHWH6HJHQHUDFXDQGRHODFWLYRKDWHUPLQDGRGHGHVFDUJDUVH
FRPSOHWH
• LQLW6HJHQHUDFXDQGRODVSURSLHGDGHV\PpWRGRVGHXQVZIH[WHUQRFDUJDGR
LQLW
VHHQFXHQWUDQGLVSRQLEOHV
• KWWS6WDWXV
KWWS6WDWXV 6H JHQHUD FXDQGR VH GHWHFWD HO FyGLJR GH HVWDGR SDUD XQD
SHWLFLyQ+773IDOOLGDFXDQGRVHWUDWDGHFDUJDUHODFWLYR
• LR(UURU6HJHQHUDFXDQGRRFXUUHXQHUURUIDWDOTXHWLHQHFRPRUHVXOWDGRTXH
LR(UURU
VHDERUWHODGHVFDUJDFRPRQRSRGHUHQFRQWUDUHODFWLYR
• VHFXULW\(UURU6HJHQHUDFXDQGRORVGDWRVTXHWUDWDGHFDUJDUUHVLGHQIXHUD
VHFXULW\(UURU
GHOiPELWRGHVHJXULGDG
• XQORDG
XQORDG 6H JHQHUD FXDQGR VH LQYRFD HO PpWRGR XQORDG  SDUD HOLPLQDU HO
FRQWHQLGR FDUJDGR R HO PpWRGR ORDG  VH LQYRFD GH QXHYR SDUD UHHPSOD]DU
FRQWHQLGRTXH\DVHKDFDUJDGR

(O VLJXLHQWH HMHPSOR PXHVWUD FyPR GHWHFWDU R HVFXFKDU OLVWHQHU  D ORV
GLIHUHQWHV HYHQWRV UHODFLRQDGRV GHO SURJUHVR GH GHVFDUJD FXDQGR VH FDUJD XQD
LPDJHQ

(MHPSOR HVFXFKDU D GLIHUHQWHV HYHQWRV GHO SURJUHVR GH GHVFDUJD


GHXQDLPDJHQ

• 6H DEUH XQ DUFKLYR $6 VH OH QRPEUD &DUJD,PDJHQDV \ VH JXDUGD HQ OD
FDUSHWDPLV&ODVHV
• 6H FDPELD OD FDVLOOD GH 'RFXPHQW &ODVV GH FDUJD,PDJHQIOD D
PLV&ODVHV&DUJD,PDJHQ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHFyGLJR


package misClases{
import flash.display.*;
import flash.text.*;
import flash.net.URLRequest;
import flash.events.*;

public class CargaImagen2 extends Sprite {


public function CargaImagen2() {
// Crear el Loader y añadirlo a la
// lista de visualización
var loader:Loader =new Loader();
addChild(loader);
//Añadir los manejadores
// de evento para
// comprobar el progreso
loader.contentLoaderInfo.addEventListener(Event.OPEN,on
Abre);
loader.contentLoaderInfo.addEventListener(ProgressEvent
.PROGRESS,onProgreso );
loader.contentLoaderInfo.addEventListener(Event.COMPLET
E, onCompleto);
//Cargar la imagen externa
loader.load(new URLRequest("imagen.jpg") );
}
private function onAbre(e:Event):void {
trace("Abrir");
}
private function onProgreso(e:ProgressEvent
):void {
var porcentaje:Number =e.bytesLoaded
/e.bytesTotal *100;

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &DUJDULPiJHQHVH[WHUQDVHQWLHPSRGHHMHFXFLyQODFODVH/RDGHU

trace("Porcentaje de carga ="+porcentaje );


}
private function onCompleto(e:Event):void {
trace("completo");
}
}
}


(MHF~WHVH HO SURJUDPD 3DUD TXH SXHGD YLVXDOL]DUVH HO SURFHVR VH VLPXOD OD FDUJD
GHVGHHOYLVRUGHEDQGD

1RWD

3DUD QRPEUDU ODV IXQFLRQHV GH ORV OLVWHQHUV QR KD\ XQD FRQYHQFLyQ HVWDEOHFLGD
'HSHQGH GH FDGD SURJUDPDGRU $OJXQRV DxDGHQ KDQGOH DO QRPEUH GHO HYHQWR SRU
HMHPSORSURJUHVV+DQGOHORDGHU+DQGOHHWF2WURVSUHIHULPRVDxDGLUXQ´RQµTXHQRV
UHFXHUGDORVYLHMRVWLHPSRVGH$FWLRQ6FULSWSRUHMHPSORRQ3URJUHVVRQ/RDGHU$GRSWH
HOHVWiQGDUTXHFUHDFRQYHQLHQWH/RLPSRUWDQWHHVTXHVHDFRQVLVWHQWHFRQpO.

&XDQGRVHHMHFXWDHOFyGLJRDQWHULRUVHYHTXHHOPHQVDMHGHDEULUDSDUHFHHQ
ODYHQWDQDGHVDOLGDVHJXLGRSRUXQRRPiVPHQVDMHVGHSURJUHVRTXHPXHVWUDQHO
SRUFHQWDMHDFWXDOGHFDUJDVHJXLGRSRUHOPHQVDMHGH´FRPSOHWRµTXHLQGLFDTXHOD
GHVFDUJDKDWHUPLQDGRFRQp[LWR
$O VLWXDU FyGLJR HQ ORV PDQHMDGRUHV GH HYHQWR SDUD HVWRV HYHQWRV VH SXHGH
PRVWUDU HO SURJUHVR GH XQD GHVFDUJD 3RU HMHPSOR HO PpWRGR RQ$EUH  HVWDUtD
HQFDUJDGRGHFUHDUHOPHQVDMHSUHYLR\DxDGLUORDODOLVWDGHYLVXDOL]DFLyQ
(OPpWRGRRQ3URJUHVR DFWXDOL]DUiHOYDORUGHSRUFHQWDMHDVtFRPRHVWDEOHFHU
HOWH[WRGHXQDLQVWDQFLD7H[W)LHOGHQHOYDORUGHSRUFHQWDMH3RU~OWLPRHOPpWRGR
RQ&RPSOHWR UHDOL]DUiXQDOLPSLH]D\HOLPLQDUiHOFDUJDGRUSUHYLR\DTXHHODFWLYR
VHKDGHVFDUJDGRSRUFRPSOHWR&HQWUDQGRODDWHQFLyQHQHVWRVPpWRGRVHOFyGLJR
VHSRGUtDSDUHFHUDOVLJXLHQWHHMHPSOR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

(MHPSORSURJUHVRGHGHVFDUJDGHXQDLPDJHQHQFDPSRWH[WR

package misClases{
import flash.display.*;
import flash.text.*;
import flash.net.URLRequest;
import flash.events.*;

public class CargaImagen3 extends Sprite {


public var _loaderStatus:TextField;

public function CargaImagen3() {


//Crear el Loader y añadirlo a la
//lista de visualización
var loader:Loader =new Loader();
addChild(loader);
//Añadir los manejadores
//de evento para
//comprobar el progreso
loader.contentLoaderInfo.addEventListener(Event.OPEN,on
Abrir);
loader.contentLoaderInfo.addEventListener(ProgressEvent
.PROGRESS,onProgreso );
loader.contentLoaderInfo.addEventListener(Event.COMPLET
E, onCompleto);
//Cargar la imagen externa
loader.load(new URLRequest("imagen.jpg") );
}
private function onAbrir(e:Event ):void {

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &DUJDULPiJHQHVH[WHUQDVHQWLHPSRGHHMHFXFLyQODFODVH/RDGHU

//Crear un sencillo cargador


//previo basado en texto y añadirlo a la
//lista de visualización
_loaderStatus = new TextField()
addChild(_loaderStatus);
_loaderStatus.text ="Carga:0%";
}
private function onProgreso(e:ProgressEvent
):void {
//Actualizar el % de cargado para
//informar al usuario del progreso
var porcien:Number =
Math.floor(e.bytesLoaded /e.bytesTotal*100);
_loaderStatus.text ="Carga:"+porcien +"%";
}

private function onCompleto(e: Event ):void {


//Limpieza -el cargador previo deja
//de ser necesario
removeChild(_loaderStatus );
_loaderStatus =null;
}
}
}


(QHVWHHMHPSOR\DQRVHPXHVWUDHODYDQFHGHODFDUJDHQODYHQWDQDGHVDOLGDOD
FXDO QR OD SXHGH DSUHFLDU HO XVXDULR DO HMHFXWDUVH OD SHOtFXOD VLQR TXH HO XVXDULR
YHUiHODYDQFHGHODPLVPDHQHOHVFHQDULRFRQHOFDPSRGHWH[WRTXHFUHDPRV

1RWD

(VXQDSUiFWLFDDQWHSRQHUXQJXLyQEDMRDODVSURSLHGDGHVLQWHUQDVHQXQDFODVH1RHV
UHTXLVLWRSHURVHJXUDPHQWHORYHUiHQDOJXQRVSURJUDPDVHQ$FWLRQ6FULSW


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

&DUJDUHLQWHUDFWXDUFRQSHOtFXODVH[WHUQDV
$QWHULRUPHQWH VH KD GHPRVWUDGR FyPR FDUJDU LPiJHQHV H[WHUQDV SRU PHGLR GH OD
FODVH/RDGHU3DUDFDUJDUSHOtFXODVVZIH[WHUQDVLPSOLFDXWLOL]DUODPLVPDWpFQLFDDO
LQYRFDUHOPpWRGRORDG HQXQDLQVWDQFLD/RDGHU\SDVDUXQ85/DXQVZIHQOXJDU
GH XQD LPDJHQ HO VZI VH FDUJD HQ OD SHOtFXOD 6L HO /RDGHU HVWi HQ OD MHUDUTXtD
SULQFLSDOGHYLVXDOL]DFLyQHOVZIWDPELpQDSDUHFHHQSDQWDOOD
(VWHHMHUFLFLRLPSOLFDFUHDUGRVDUFKLYRVVZIVHSDUDGRV
SHOLFXOD([WHUQDVZI\FDUJDGRUVZI/DSULPHUDSHOtFXODSHOLFXOD([WHUQDVZIVH
FDUJDUiHQWLHPSRGHHMHFXFLyQHQODVHJXQGDSHOtFXODFDUJD3HOLFXODVZI(OFyGLJR
SDUDSHOLFXOD([WHUQDVZIHVHOVLJXLHQWH

(MHPSOR

• 6H DEUH XQ DUFKLYR $6 VH OH QRPEUD 3HOLFXOD([WHUQDDV \ VH JXDUGD HQ OD
FDUSHWDPLV&ODVHV
• 6H DEUH XQ DUFKLYR )ODVK $FWLRQ6FULSW   \ VH QRPEUD FRPR
SHOLFXOD([WHUQDIOD(QODFDVLOODGH'RFXPHQW&ODVVVHHQOD]DFRQODFODVH
HVFULELHQGRPLV&ODVHV3HOLFXOD([WHUQD
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHFyGLJR

package misClases{
import flash.display.Sprite;
import flash.display.Shape;
public class PeliculaExterna extends Sprite
{
private var _color:uint =0x000000;
private var _Circulo:Shape;

public function PeliculaExterna()


{
inicio() ;
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &DUJDUHLQWHUDFWXDUFRQSHOtFXODVH[WHUQDV


private function inicio():void


{
//Si el círculo no se ha creado todavía,
//crearlo y hacerlo visible
//al añadirlo a la lista de visualización
if (_Circulo ==null )
{
_Circulo =new Shape ();
addChild(_Circulo );
}

//Borrar cualquier contenido dibujado


//anteriormente y dibujar
//un nuevo círculo con el color de relleno
_Circulo.graphics.clear();
_Circulo.graphics.beginFill(_color );
_Circulo.graphics .drawCirculo(100,100,40);
}

//Cambia el color del círculo


public function setColor (color :uint ) :void
{
_color =color;
inicio() ;
}

//Obtiene el valor de color actual del círculo


public function getColor():uint {
return _color;
}
}
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

(MHFXWHODSHOtFXOD\REVHUYDUiHQHOHVFHQDULRXQEHOORFtUFXORQHJURGHSL[HOHV
HQODVFRRUGHQDGDV  
(OFyGLJRSDUD3HOLFXOD([WHUQDVZIQRHVQDGDH[WUDRUGLQDULRVHFUHDXQFtUFXOR
QHJURFXDQGRVHHMHFXWDODSHOtFXOD/RSULQFLSDODGHVWDFDUVREUHHOFyGLJRHVTXH
H[LVWHQGRVPpWRGRVSXEOLFSDUDDFFHGHU\PRGLILFDUHOFRORUGHOFtUFXORJHW&RORU \
VHW&RORU 6LHPSUHTXHVHLQYRFDHOPpWRGRVHW&RORU VHUHGLEXMDHOFtUFXORFRQHO
YDORUDFWXDOL]DGRGHFRORU
$O GHFODUDU HVWRV PpWRGRV FRPR S~EOLFRV SXEOLF  ORV PpWRGRV VH SXHGHQ
OODPDUGHVGHXQDSHOtFXODTXHFDUJDHODUFKLYRGHSHOLFXOD([WHUQDVZIHQWLHPSRGH
HMHFXFLyQ 3RU HO FRQWUDULR HO PpWRGR SULYDWH LQLFLR  QR VH HQFRQWUDUi GLVSRQLEOH
SDUDODSHOtFXODTXHVHFDUJDSRUTXHHVSULYDGR\VyORVHYHHQODFODVH
$KRUDTXHVHKDFUHDGR 3HOLFXOD([WHUQDVZIVHQHFHVLWDFUHDUXQQXHYRVZI
SDUDFDUJDUODSHOtFXODH[WHUQDHVWRVHUHDOL]DFRQFDUJDGRUVZI

(MHPSOR

• 6HDEUHXQDUFKLYR$6QXHYRVHQRPEUD&DUJD,PDJHQDV\VHJXDUGDHQ
PLV&ODVHV
• 6HHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.*;
import flash.net.URLRequest;
import flash.events.Event;

public class CargaImagen4 extends Sprite {


private var _loader:Loader;
public function CargaImagen4() {
//Crear el Loader y añadirlo a la
//lista de visualización
_loader =new Loader();
addChild(_loader);
//Añadir el manejador de evento
//para interactuar con la película

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &DUJDUHLQWHUDFWXDUFRQSHOtFXODVH[WHUQDV

//cargada
_loader.contentLoaderInfo.addEventListener(Event.INIT,o
nInicio);
//Cargar la película externa
_loader.load(new
URLRequest("peliculaExterna.swf"));
}
//Manejador de evento invocado cuando
//la película cargada
//externamente está lista para interactuar
//con ella
private function onInicio(e:Event ):void {
//Escrito como * aquí porque el tipo
//no se conoce en tiempo de
//compilación.
var movie:*=_loader.content;
//Invoca un método en la película
//externa para extraer datos
//Muestra: 0
trace(movie.getColor());
//Invoca un método en la película
//externa para establecer datos.
//Establece el color en la película
//externa, lo que dibuja un círculo
//con el nuevo color, en este caso rojo
movie.setColor(0xFF0000 );
}
}
}


• /tJXHQVH DPEDV SHOtFXODV HQ HO DUFKLYR FDUJD,PDJHQIOD HQ HO FDPSR
'RFXPHQW&ODVV
• (MHF~WHVHODSHOtFXOD

(O FyGLJR SDUD &DUJD,PDJHQVZI HV PiV LQWHUHVDQWH TXH HO GH OD SHOtFXOD
DQWHULRU \D TXH VH FRPXQLFD FRQ OD SHOtFXOD FDUJDGD &RPR SXHGH REVHUYDU OD
SHOtFXODGHFDUJDQRVyORLPSRUWyODSHOtFXODH[WHUQDVLQRTXHXWLOL]yVXFyGLJR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

(O HYHQWR LQLW VH DFWLYD FXDQGR OD SHOtFXOD FDUJDGD VH KD LQLFLDOL]DGR OR
VXILFLHQWH\VXVPpWRGRV\SURSLHGDGHVVHHQFXHQWUDQGLVSRQLEOHVSDUDLQWHUDFWXDU
FRQHOORV/DSHOtFXODVHSXHGHFRQWURODUVRODPHQWHGHVSXpVGHTXHHOHYHQWRLQFLR 
VHKDDFWLYDGRGHVGHHOORDGHU7UDWDUGHLQWHUDFWXDUFRQXQDSHOtFXODFDUJDGDDQWHV
GHTXHVHKD\DLQLFLDOL]DGRJHQHUDUiHUURUHVHQWLHPSRGHHMHFXFLyQ
3DUD FRQWURODU OD SHOtFXOD FDUJDGD SULPHUR VH QHFHVLWDUi FRQVHJXLU XQD
UHIHUHQFLD D HOOD (VWR VH UHDOL]D SRU PHGLR GH OD SURSLHGDG FRQWHQW GH OD FODVH
/RDGHU(QHOFyGLJRDQWHULRUODYDULDEOHORDGHUVHUHILHUHDO/RDGHUTXHLQFRUSRUDHO
DUFKLYR VZI H[WHUQR SRU OR TXH SXHGH DFFHGHU D OD SHOtFXOD SRU PHGLR GH
ORDGHUFRQWHQW
6L OD YDULDEOH ORDGHU QR HVWXYLHUD GLVSRQLEOH VH SRGUtD XWLOL]DU OD UXWD
HYHQWWDUJHWFRQWHQW HQ VX OXJDU SDUD OOHJDU D ORV FRQWHQLGRV GHO /RDGHU (VWR HV
SRUTXHHYHQWWDUJHWKDFHUHIHUHQFLDDODLQVWDQFLDTXHJHQHUyHOHYHQWRTXHHVOD
PLVPDLQVWDQFLDDODTXHVHUHILHUHODYDULDEOHORDGHU
/D SURSLHGDG FRQWHQW HV GH VyOR OHFWXUD \ GHYXHOYH XQ REMHWR GH WLSR
'LVSOD\2EMHFW (Q HO FyGLJR GH /RDGHU([DPSOHVZI VH REVHUYDUi TXH HQ OXJDU GH
HVFULELUODYDULDEOHGHODSHOtFXODFRPRXQ'LVSOD\2EMHFWHOPLVPRWLSRTXHGHYXHOYH
ODSURSLHGDGFRQWHQWVHXWLOL]DHOWLSR (VWRHVQHFHVDULRSRUTXHWUDWDUGHLQYRFDU
ORV PpWRGRV JHW&RORU  R VHW&RORU  HQ OD UHIHUHQFLD D PRYLH JHQHUD HUURUHV HQ
WLHPSRGHFRPSLODFLyQVLPRYLHVHHVFULEHFRPRXQ'LVSOD\2EMHFW

1RWD

6RODPHQWHHVSRVLEOHLQWHUDFWXDUFRQDUFKLYRVVZIGHODYHUVLyQ\VXSHULRUXWLOL]DQGR
HVWDWpFQLFD&XDQGRVHFDUJDDUFKLYRVVZIGHODYHUVLyQRDQWHULRUHVHVWDWpFQLFDQR
IXQFLRQD SRUTXH HO FyGLJR $FWLRQ6FULSW  VH HMHFXWD LQGHSHQGLHQWHPHQWH GH
$FWLRQ6FULSW\&RPXQLFDUVHFRQHVWRVDUFKLYRVVZIQRHVWULYLDOHLPSOLFDXWLOL]DU
/RFDO&RQQHFWLRQFRPRXQDVROXFLyQSDUDHQYLDU\UHFLELUPHQVDMHV

 (O PpWRGR JHW&RORU  GHYXHOYH HO FRORU GHO FtUFXOR HQ 3HOLFXOD([WHUQDVZI SDUD
&DUJD,PDJHQVZI&DUJD,PDJHQVZILQIRUPDGHOFRORUFRPRTXHHVORPLVPRTXH
[ R HO FRORU QHJUR (O PpWRGR VHW&RORU  SHUPLWH TXH &DUJD,PDJHQVZI
FDPELHHOFRORUGHOFtUFXORGLEXMDGRSRU3HOLFXOD([WHUQDVZI

 (Q HVWHFDVR HOFRORUGHOFtUFXOR HVWiHVWDEOHFLGR HQ URMR \VH SXHGHYHU TXH
3HOLFXOD([WHUQDVZI DFWXDOL]D OD YLVXDOL]DFLyQ GHVSXpV GH TXH VH HVWDEOHFH HO QXHYR
YDORUGHFRORUGHOFtUFXOR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &DUJDUHLQWHUDFWXDUFRQSHOtFXODVH[WHUQDV

¢<ORVPDSDVGHELWV"

(Q $FWLRQ6FULSW  WHQHPRV PXFKRV PpWRGRV \ SURSLHGDGHV LQWHUHVDQWHV SDUD


SRGHU PDQLSXODU ORV PDSDV GH ELWV (Q UHDOLGDG ORV PDSDV GH ELWV ORV PDQHMDPRV
FRQGRVFODVHV

• /DFODVH%LWPDS'DWD
%LWPDS'DWDDOPDFHQDODLQIRUPDFLyQGHOJUiILFR
%LWPDS'DWD
• /DFODVH%LWPDS
%LWPDSHVHOREMHWRYLVXDOHQODOLVWDGHYLVXDOL]DFLyQ\VH
%LWPDS
DOLPHQWDGHODDQWHULRUSRUPHGLRGHOPpWRGRGUDZ 

$OLJXDOTXHODVRWUDVFODVHVYLVXDOHVTXHYLPRVHQHVWHFDStWXORQHFHVLWDPRV
DxDGLUHOREMHWR%LWPDSDODOLVWDGHYLVXDOL]DFLyQFRQHOPpWRGRDGG&KLOG &RPRHV
XQSRFRFRPSOLFDGRKDFHUPDSDVGHELWVFRQ$FWLRQ6FULSW DXQTXHVHSXHGH\KD\
FRVDV PX\ LQWHUHVDQWHV  SRU OR JHQHUDO HV PiV VHQFLOOR FDUJDU LPiJHQHV H[WHUQDV
(VSRUHOORTXHODFODVH/RDGHU\%LWPDSODVYDDHQFRQWUDUMXQWDV

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
8QDGHODVSUHJXQWDVHQHOH[DPHQ$&(HVUHVSHFWRDOPpWRGRGUDZ 1RVPXHVWUDQ
FXDWURSRVLEOHVVLQWD[LVGHOPpWRGR\SLGHQTXHVHxDOHPRVFXiOHVODFRUUHFWD


8QD YH] TXHODLPDJHQHVFDUJDGDFRPR YLPRVHQODV VHFFLRQHVDQWHULRUHV
SRGHPRVDOLPHQWDUDOREMHWRELWPDSFRQODSURSLHGDG

event.target.loader.content

'RQGHHYHQWHVHOREMHWRGHHYHQWRWDUJHWHVHOREMHWRGHFDUJD\ORDGHUFRQWHQW
HV OD SURSLHGDG GRQGH VH DOPDFHQD OD LQIRUPDFLyQ GH OD LPDJHQ FDUJDGD QR VH
SUHRFXSH XQ SRFR PiV DGHODQWH KDUHPRV XQ HMHUFLFLR  &RQ HVWD LQIRUPDFLyQ
FUHDPRVHOREMHWR%LWPDS

var imagen:Bitmap = Bitmap(e.target.loader.content);


2EVHUYH TXH DO FUHDU HO REMHWR QR VH XWLOL]D OD SDODEUD UHVHUYDGD QHZ $KRUD
TXH \D WHQHPRV HO REMHWR SRGHPRV VDEHU VXV GLPHQVLRQHV FRQ ODV SURSLHGDGHV
ZLGWK \ KHLJKW 7UDV FUHDU XQ REMHWR %LWPDS XWLOLFH HO PpWRGR DGG&KLOG  R
DGG&KLOG$W SDUDVLWXDUHOPDSDGHELWVHQODOLVWDGHYLVXDOL]DFLyQ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

6LGHVHDPRVPDQLSXODUHOFRQWHQLGRGHOPDSDGHELWVHVQHFHVDULRXWLOL]DUOD
FODVH %LWPDS'DWD /D FODVH %LWPDS'DWD OH SHUPLWH WUDEDMDU FRQ ORV GDWRV SL[HOHV 
GHXQREMHWR%LWPDS3XHGHXWLOL]DUORVPpWRGRVGHODFODVH%LWPDS'DWDSDUDFUHDU
LPiJHQHV GH PDSD GH ELWV WUDQVSDUHQWHV X RSDFDV GH WDPDxR DUELWUDULR \
PDQLSXODUODV GH GLVWLQWDV IRUPDV HQ WLHPSR GH HMHFXFLyQ 7DPELpQ SXHGH REWHQHU
DFFHVR DO %LWPDS'DWD FRUUHVSRQGLHQWH D XQD LPDJHQ GH PDSD GH ELWV TXH KD
FDUJDGRFRQODFODVHIODVKGLVSOD\/RDGHU
8Q REMHWR %LWPDS'DWD FRQWLHQH XQ FRQMXQWR GH GDWRV GH SL[HOHV
UHSUHVHQWDGRVSRUXQEXIIHUGHHQWHURVGHELWVRVHDE\WH&RQHVWRVELWV
UHSUHVHQWDUHPRV XQ SL[HO GHQWUR GHO PDSD GH ELWV &DGD E\WHV UHSUHVHQWD FRPR
GHELyVXSRQHUDFDGDXQRGHORVFXDWURFDQDOHVGHFRORU LQFOX\HQGRHODOID TXH
VRQHOURMR UHG HOYHUGH JUHHQ HOD]XO EOXH \HOFDQDODOIDRSDUDVLPSOLILFDUHO
$5*%&DGDE\WHDVLPLVPRSXHGHUHSUHVHQWDUXQQ~PHURHQWUH\
3RU OR JHQHUDO YDPRV D XWLOL]DU DPEDV FODVHV MXQWDV SXHV QHFHVLWDPRV D OD
FODVH %LWPDS SDUD YLVXDOL]DU HO PDSD GH ELWV \ D OD FODVH %LWPDS'DWD SDUD
PDQLSXODUOR $KRUD ¢FyPR OLJDPRV DPEDV FODVHV" 3DUD HOOR FRQWDPRV FRQ OD
SURSLHGDGELWPDS'DWDSDUDOLJDUDPEDVFODVHV
(Q HO VLJXLHQWH HMHUFLFLR XWLOL]DUHPRV HO PpWRGR FRS\3L[HOV  HO FXDO
SURSRUFLRQD XQD UXWLQD UiSLGD SDUD OD PDQLSXODFLyQ GH SL[HOHV HQWUH LPiJHQHV VLQ
HIHFWRV GH FRORU URWDFLyQ QL H[SDQVLyQ (VWH PpWRGR FRSLD XQ iUHD UHFWDQJXODU GH
XQD LPDJHQ HQ XQ iUHD UHFWDQJXODU GHO PLVPR WDPDxR HQ HO SXQWR GH GHVWLQR GHO
REMHWR %LWPDS'DWD GH GHVWLQR &RQ HVWH FRPDQGR ORJUDUHPRV ´FRUWDUµ HQ SHGD]RV
UHFWDQJXODUHVXQPDSDGHELWVH[WHUQR RVHDXQMSJ 
6HJ~QODD\XGDGH$FWLRQ6FULSWORVSDUiPHWURVSDUDHVWHPpWRGRVRQ
• VRXUFH%LWPDS'DWD%LWPDS'DWD
VRXUFH%LWPDS'DWD%LWPDS'DWD
%LWPDS'DWD /D LPDJHQ GH PDSD GH ELWV GH HQWUDGD
GHVGH OD TXH VH YDQ D FRSLDU SL[HOHV /D LPDJHQ GH RULJHQ SXHGH VHU RWUD
LQVWDQFLD GH %LWPDS'DWD R SXHGH KDFHU UHIHUHQFLD D OD LQVWDQFLD GH
%LWPDS'DWDDFWXDO
• VRXUFH5HFW5HFWDQJO
VRXUFH5HFW5HFWDQJOH
5HFWDQJOH 8Q UHFWiQJXOR TXH GHILQH HO iUHD GH OD LPDJHQ GH
RULJHQTXHVHYDDXWLOL]DUFRPRHQWUDGD
• GHVW3RLQW3RLQW
GHVW3RLQW3RLQW
3RLQW (O SXQWR GH GHVWLQR TXH UHSUHVHQWD OD HVTXLQD VXSHULRU
L]TXLHUGDGHOiUHDUHFWDQJXODUGRQGHVHVLW~DQORVQXHYRVSL[HOHV
• DOSKD%LWPDS'DWD%LWPDS'DWD
DOSKD%LWPDS'DWD%LWPDS'DWD
%LWPDS'DWD GHIDXOW
GHIDXOW  QXOO 
QXOO  8Q RULJHQ VHFXQGDULR GHO
REMHWR%LWPDS'DWDGHDOID
• DOSKD3RLQW3RLQW
DOSKD3RLQW3RLQW
3RLQW GHIDXOW  QXOO 
QXOO  (O SXQWR GHO RULJHQ GHO REMHWR %LWPDS'DWD
GH DOID TXH FRUUHVSRQGH D OD HVTXLQD VXSHULRU L]TXLHUGD GHO SDUiPHWUR
VRXUFH5HFW
• PHUJH$OSKD%RROHDQ
PHUJH$OSKD%RROHDQ
%RROHDQ GHIDXOW  IDOVH 
IDOVH  3DUD XWLOL]DU HO FDQDO DOID GHILQD HO
YDORU FRPR WUXH 3DUD FRSLDU SL[HOHV VLQ HO FDQDO DOID GHILQD HO YDORU FRPR
IDOVH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDFLyQGHXQURPSHFDEH]DV

&RPRSXHGHREVHUYDUYDPRVDQHFHVLWDUGRVFODVHVDX[LOLDUHVSDUDFRQVHJXLU
FRUWDUQXHVWURELWPDS\ORJUDUKDFHUXQURPSHFDEH]DVODFODVH5HFWDQJOH\ODFODVH
3RLQW

/DFODVHIODVKJHRP5HFWDQJOH

8Q REMHWR 5HFWDQJOH HV XQ iUHD GHILQLGD SRU VX SRVLFLyQ VHJ~Q VH GHWHUPLQD HQ
IXQFLyQ GH VX iQJXOR VXSHULRU L]TXLHUGR [ \  \ GH VX DOWXUD ZLGWK  \ DQFKXUD
KHLJKW 6LQHPEDUJRODVSURSLHGDGHVULJKW\ERWWRPHVWiQUHODFLRQDGDVGHIRUPD
LQWHJUDOFRQGLFKDVFXDWURSURSLHGDGHV

/DFODVHIODVKJHRP3RLQW

(O REMHWR 3RLQW UHSUHVHQWD XQD XELFDFLyQ HQ XQ VLVWHPD GH FRRUGHQDGDV
ELGLPHQVLRQDO GRQGH [ UHSUHVHQWD HO HMH KRUL]RQWDO \ \ UHSUHVHQWD HO HMH YHUWLFDO
0HGLDQWH HO FyGLJR VLJXLHQWH VH FUHD XQ SXQWR HQ ODV FRRUGHQDGDV  


var myPoint:Point = new Point();


&RQHVWRVHOHPHQWRVKDUHPRVXQHMHUFLFLRSUHYLRDOGHVDUUROORGHXQURPSHFDEH]DV
VHQFLOOR

1RWD

/DFODVH%LWPDSQRHVXQDVXEFODVHGHODFODVH,QWHUDFWLYH2EMHFWSRUORTXHQRSXHGH
GLVWULEXLU HYHQWRV GH PRXVH (V SRU HOOR TXH QHFHVLWDPRV YDFLDUOR HQ XQ REMHWR
´DUUDVWUDEOHµSRUORJHQHUDODXQ6SULWH

&UHDFLyQGHXQURPSHFDEH]DV
• (QHVWHHMHUFLFLRQRXWLOL]DUHPRVXQDFODVHGHGRFXPHQWRSRUORTXH
HVFULELUHPRVXQSRFRGHFyGLJRHQHODUFKLYRIOD
• $EUDXQDUFKLYR)ODVK$6\QyPEUHORURPSHFDEH]DVIODGHQWURGHVX
FDUSHWDGHWUDEDMR
• (QHOIRWRJUDPDFODYHGHODSULPHUD\~QLFDFDSDDEUDHOHGLWRUGHVFULSWV\
HVFULEDODVVLJXLHQWHVOtQHDV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

import misClases.Rompecabezas;
var imagen:Rompecabezas = new Rompecabezas(“imagen.jpg”, 4,
4);
addChild(imagen)


• $VHJ~UHVH GH WHQHU HQ OD PLVPD FDUSHWD XQD LPDJHQ ELWPDS GH
SUHIHUHQFLDMSJGHïSL[HOHV/RVSDUiPHWURVGHOFRQVWUXFWRUGHO
URPSHFDEH]DV VRQ HO QRPEUH GHO DUFKLYR D GLYLGLU \ HO Q~PHUR GH
UHQJORQHV\FROXPQDVHQTXHTXHUHPRVGLYLGLUODLPDJHQ
• 1RFRUUDODSHOtFXODDOPHQRVTXHOHJXVWHYHUHUURUHV$~QQRVIDOWDFUHDU
ODFODVH5RPSHFDEH]DV
• $EUD XQ DUFKLYR $FWLRQ6FULSW \ QyPEUHOR 5RPSHFDEH]DVDV GHQWUR GH OD
FDUSHWDGHPLV&ODVHV
• 'HQWURGHODUFKLYRGHFODVHHVFULEDHOVLJXLHQWHFyGLJR

package {
import flash.display.Loader;
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.Event;
import flash.net.URLRequest;
import flash.geom.Rectangle;
import flash.geom.Point;

public class Rompecabezas extends Sprite{


private var renglones:uint;
private const margenX:uint = 20;
private const margenY:uint = 50;

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDFLyQGHXQURPSHFDEH]DV


private const margenX:uint = 20;


private const margenY:uint = 50;
private const separacion:uint = 2;
public function
Rompecabezas(archivo:String, ren:uint, col:uint):void {
this.renglones = ren;
this.columnas = col;
cargaArchivo(archivo);
  `
  
 `
`

• &RPRSXHGHREVHUYDUQRHVWDPRVFDUJDQGRODVFODVHVFRQDVWHULVFRVLQR
TXH LQWHQFLRQDOPHQWH FRQ ILQHV GLGiFWLFRV  LPSRUWDPRV XQD D XQD ODV
FODVHVTXHYDPRVDXWLOL]DU
• &UHDPRV QXHVWUDV SURSLHGDGHV \ FRQVWDQWHV GH WUDEDMR \ YDFLDPRV OD
LQIRUPDFLyQTXHUHFLELPRVHQODFODVHFRQVWUXFWRUD
• $KRUD SURFHGHUHPRV D FDUJDU HO ELWPDS HQ OD IXQFLyQ FDUJD$UFKLYR
'HVSXpVGHODIXQFLyQFRQVWUXFWRUDHVFULEDHOVLJXLHQWHFyGLJR

private function cargaArchivo(archivo:String):void{


var cargador:Loader = new Loader();
cargador.contentLoaderInfo.addEventListener(Event.COMPLETE,
onCargaCompleta);
var solicitud:URLRequest = new URLRequest(archivo);
cargador.load(solicitud);
}

• &RPR SXHGH REVHUYDU HVWH PpWRGR QR GLILHUH HQ QDGD D ORV TXH KHPRV
YLVWRHQODVVHFFLRQHVDQWHULRUHV
• 3URFHGDPRV D UHDOL]DU OD IXQFLyQ GHO OLVWHQHU RQ&DUJD&RPSOHWD (VFULED
GHEDMR GHO PpWRGR DQWHULRU VLHPSUH GHQWUR GH OD FODVH  HO VLJXLHQWH
PpWRGR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

private function cargaCompleta (e:Event):void {

//Ojo: No lleva "new"


var imagen:Bitmap = Bitmap(e.target.loader.content);
//Calcula el ancho y el largo del objeto
var ancho:Number = imagen.width/renglones;
var largo:Number = imagen.height/columnas;
//Corta la imagen
for (var x:uint = 0; x<renglones; x++) {
for (var y:uint = 0; y<columnas; y++) {
//Crea la pieza
var pieza:Bitmap = new Bitmap(new
BitmapData(ancho, largo));
//Copia el área del rectángulo
var rectangulo:Rectangle = new
Rectangle(x*ancho, y*largo, ancho, largo);
var punto:Point = new Point(0,0)
pieza.bitmapData.copyPixels(imagen.bitmapData,
rectangulo, punto);
//Crea una nueva pieza visual
var nuevaPieza:Sprite = new Sprite();
//Introduce el pedazo de imagen al sprite
nuevaPieza.addChild(pieza);
//Lo añade la pieza a la
//lista de visualización
addChild(nuevaPieza);
//Ubica la pieza

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDFLyQGHXQURPSHFDEH]DV

nuevaPieza.x = x *
(ancho+separacion)+margenX;
nuevaPieza.y = y *
(largo+separacion)+margenY;
}
}
}


• (QHVWHPpWRGRHVGRQGHGLYLGLPRVHOELWPDS/DSDQWDOODGHVDOLGDGHEHUi
VHUVXLPDJHQELWPDSGLYLGLGDHQFXDGURVVHPHMDQWHDODTXHVH
PXHVWUDDFRQWLQXDFLyQ


)LJXUD/DLPDJHQGLYLGLGD
)LJXUD

$KRUDSURFHGHUHPRVDWHUPLQDUQXHVWURURPSHFDEH]DVFRQXQSRFRGHFyGLJR
DGLFLRQDO

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

(MHPSORURPSHFDEH]DVWLSRFDMDGHQ~PHURV

$ SDUWLU GHO HMHUFLFLR DQWHULRU GRQGH SDUWLPRV XQ ELWPDS HQ GLIHUHQWHV SDUWHV
UHDOL]DUHPRV XQ URPSHFDEH]DV WLSR ´FDMD GH Q~PHURVµ GRQGH GHVOL]DUHPRV ODV
SLH]DV VLQ ´OHYDQWDUODVµ KDVWD IRUPDU QXHYDPHQWH OD SLH]D 3DUD HOOR WHQGUHPRV
TXHHOLPLQDUODSLH]DGHODHVTXLQDLQIHULRUGHUHFKD
$QWHVGHGDUHODOJRULWPRWUDWHGHLPDJLQDUORSRUXVWHGPLVPR¢$OJXQDLGHD"
(Q HVWH SXQWR VLHPSUH OHV SUHJXQWR D PLV DOXPQRV ¢FyPR WH FRPHUtDV D XQ
HOHIDQWH" 'HVSXpV GH XQD EUHYH UHIOH[LyQ WRGRV FRLQFLGHQ HQ OD UHVSXHVWD SXHV
SRFRDSRFR
(Q HVWH FDVR HO HOHIDQWH SXHGH VHU GHVDUUROODU XQ MXHJR GH URPSHFDEH]DV R
XQDREUDDUTXLWHFWyQLFDFRORVDO6LXQSUREOHPDFRPSOHMRORGLYLGLPRVHQSHTXHxDV
SDUWHVSRGUHPRVUHVROYHUSHTXHxRVSUREOHPDVTXHQRVOOHYDUiQDUHVROYHUJUDQGHV
SUREOHPDV
5HJUHVDQGRDOURPSHFDEH]DVSRGUtDPRVGLYLGLUHOSUREOHPDHQYDULRVSDVRVD
UHVROYHU
 0RGLILFDUHODOJRULWPRGHFRUWDGRSDUDFUHDUXQDUUHJOR\QRJHQHUDUHO
~OWLPRFXDGULWR
 *HQHUDUHODOJRULWPRSDUD´EDUDMDUµORVFXDGURVGHODILJXUD
 $OJRULWPRSDUDPRYHUODVSLH]DV
2EYLDPHQWH H[LVWHQ PXFKDV PDQHUDV GH UHVROYHU XQ PLVPR SUREOHPD SHUR
WRPHPRVHVWRVWUHVSDVRVFRPRVXILFLHQWHV\UHVROYDPRVGHXQRHQXQR

0RGLILFDUHODOJRULWPRGHFRUWDGRSDUDFUHDU
XQDUUHJOR\QRJHQHUDUHO~OWLPRFXDGUR

• 3ULPHURFRSLHODFDUSHWDGHOHMHUFLFLRDQWHULRUFRQHOQRPEUH
URPSHFDEH]DVIOD
• 3DUDSRGHUPRYHUODVSLH]DV UHFXHUGHTXHODFODVH%LWPDSQRDFHSWDHYHQWRV
GHO PRXVH  QHFHVLWDUHPRV XQ DUUHJOR TXH DOPDFHQH ODV GLUHFFLRQHV GH FDGD
XQRGHORVHOHPHQWRVGHOURPSHFDEH]DV3DUDHOORFUHDUHPRVXQDUUHJORHQOD
FODVH5RPSHFDEH]DVDVIXHUDGHODVIXQFLRQHVSDUDTXHVHDXQREMHWRYLVLEOH
HQ WRGDV ODV IXQFLRQHV GH OD FODVH 3RU HMHPSOR HO Q~PHUR  HV VyOR XQD
JXtDHQORVFRPHQWDULRV 

//1.1. Crear un arreglo


private var piezas_array:Array;

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDFLyQGHXQURPSHFDEH]DV

• 6LREVHUYDHOHMHUFLFLRDQWHULRUODUXWLQDTXHFRUWDODLPDJHQODGHMDPRVHQOD
IXQFLyQGHOLVWHQHURQ&DUJD&RPSOHWDORFXDOGHPRPHQWRQRHVEXHQDLGHD
\DTXHODPRGLILFDUHPRV(VSRUHOORTXHFUHDUHPRVXQDIXQFLyQHVSHFLDOTXH
VHOODPHFRUWD,PDJHQ \PRYHUHPRVHOFyGLJRGHFRUWHDODQXHYDIXQFLyQ


private function cortaImagen (imagen:BitmapData) {


//Corta la imagen
for (var x:uint = 0; x<renglones; x++) {
for (var y:uint = 0; y<columnas; y++) {
//Crea la pieza
var pieza:Bitmap = new Bitmap(new
BitmapData(ancho, largo));
//Copia el área del rectángulo
var rectangulo:Rectangle = new
Rectangle(x*ancho, y*largo, ancho, largo);
var punto:Point = new Point(0,0)
pieza.bitmapData.copyPixels(imagen,
rectangulo,punto);
//Crea una nueva pieza visual
var nuevaPieza:Sprite = new Sprite();
//Introduce el pedazo de imagen al sprite
nuevaPieza.addChild(pieza);
//Lo añade la pieza a la
//lista de visualización
addChild(nuevaPieza);
//Ubica la pieza
nuevaPieza.x = x *
(ancho+separacion)+margenX;
nuevaPieza.y = y *
(largo+separacion)+margenY;
}
}
}

• 1RROYLGHLQYRFDUDODIXQFLyQGHVGHODIXQFLyQGHOOLVWHQHULQFOX\HQGROD
LQIRUPDFLyQGHOREMHWRELWPDSFRPRSDUiPHWUR HVGHFLU
ELWPDSELWPDS'DWD 

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

private function cargaCompleta (e:Event):void {


//Ojo: No lleva "new"
var imagen:Bitmap = Bitmap(e.target.loader.content);
//Calcula el ancho y el largo del objeto
ancho = imagen.width/renglones;
largo = imagen.height/columnas;
//1.2 Movemos el código
cortaImagen(imagen.bitmapData);
}


• 2WUR SHTXHxR SDVR HV FUHDU D ODV YDULDEOHV DQFKR \ ODUJR IXHUD GH ODV
IXQFLRQHV SDUD TXH VHDQ YLVLEOHV HQ ODV GHPiV IXQFLRQHV \ QR WHQHU TXH
SDVDUODVFRPRSDUiPHWURVRUHFDOFXODUODV


//
private var ancho:Number;
private var largo:Number;


• (O VLJXLHQWH SDVR HV VDEHU TXp LQIRUPDFLyQ QHFHVLWDUHPRV SDUD PRYHU OD
SLH]D
o /DSRVLFLyQRULJLQDO1RVVHUYLUiSDUDVDEHUVLHOMXHJRKDWHUPLQDGR
o /DSRVLFLyQDFWXDO/DQHFHVLWDPRVSDUDPRYHUODSLH]D(QHOLQLFLR \
HQHOILQGHOMXHJR DPEDVSRVLFLRQHVVHUiQLJXDOHV
o /DUHIHUHQFLDGHODSLH]D

• (VWDLQIRUPDFLyQOD SRGHPRVJXDUGDUHQHOREMHWRPLVPRRHQXQDUUHJOR
/RKDUHPRVHQXQDUUHJOR\ORDOPDFHQDUHPRVFRPRXQDUUHJORGHREMHWRV
'HQWUR GH OD UXWLQD GH FRUWD,PDJHQ  DQWHV GH FHUUDU ORV FLFORV IRU
JXDUGDUHPRVHVWDLQIRUPDFLyQHQXQREMHWR\SRVWHULRUPHQWHHQXQDUUHJOR


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDFLyQGHXQURPSHFDEH]DV

//1.4 Alimentamos al arreglo


var piezaObjeto:Object = new Object();
piezaObjeto.posActual = new Point(x,y);
piezaObjeto.posOriginal = new Point(x,y);
piezaObjeto.pieza = nuevaPieza;
piezas_array.push(piezaObjeto);


• 0X\ ELHQ \D WHQHPRV OD LQIRUPDFLyQ DKRUD QHFHVLWDPRV XQ OLVWHQHU SDUD
TXHGHWHFWHFXiQGRODSLH]DHQHVWHFDVRXQ6SULWHIXHSXOVDGDDVtTXH
GHEDMRGHOFyGLJRDQWHULRUHVFULELUHPRVQXHVWURGHWHFWRUGHHYHQWRV


nuevaPieza.addEventListener(MouseEvent.CLICK, onClicPieza);


• 8Q SXQWR PX\ LPSRUWDQWH HV TXH QHFHVLWDPRV LPSRUWDU D OD FODVH
0RXVH(YHQW SDUD TXH IXQFLRQH QXHVWUR OLVWHQHU 3DUD WHUPLQDU HVWH SXQWR
QHFHVLWDPRV HOLPLQDU HO ~OWLPR FXDGULWR HV GHFLU HO GH OD HVTXLQD LQIHULRU
GHUHFKDSHURSDUDHYLWDUODSHQDGHKDFHUOR\OXHJRGHVWUXLUORVHUiPHMRU
HYLWDUFUHDUOR(VWRORFRQVHJXLUHPRVFRQXQDVHQWHQFLDFRQGLFLRQDOLI

• 3DUD VDEHU FXiO FXDGULWR VDOWDUQRV XWLOL]DUHPRV XQ REMHWR WLSR 3RLQW TXH
JHQHUDOPHQWH VH XWLOL]D SDUD SL[HOHV SHUR OR XVDUHPRV SDUD FRRUGHQDGDV
HVGHFLU


//1.5 Genera pieza a eliminar


var blanco:Point = new Point(renglones-1, columnas-1);


• (VWH REMHWR OR GHILQLUHPRV DQWHV GH ORV FLFORV IRU GHQWUR GH OD UXWLQD
FRUWD,PDJHQ  )LQDOPHQWH GHQWUR GH DPERV FLFORV \ DQWHV GH FUHDU OD
SLH]DSUHJXQWDUHPRVVLHVOD~OWLPDGHODVSLH]DVGHOURPSHFDEH]DV



$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

)LJXUD&RRUGHQDGDVGHODVSLH]DV
)LJXUD


//1.6 Salta
if(blanco.equals(new Point(x,y))) continue;


• 2EVHUYHTXHHVRWUDIRUPDGHHVFULELUODVVHQWHQFLDVFRQGLFLRQDOHVFXDQGR
VyOR WLHQHQ XQD LQVWUXFFLyQ QR HV QHFHVDULR HVFULELU ODV OODYHV $XQTXH HV
XQDHVWUXFWXUDSHUIHFWDPHQWHYiOLGDQRHVDFRQVHMDEOHSRUTXHDYHFHVQR
HV PX\ FODUD /D SDODEUD UHVHUYDGD FRQWLQXH VDOWD WRGDV ODV LQVWUXFFLRQHV
GHQWURGHXQFLFOR
• &RQHVWRWHUPLQDPRVHOSULPHUSDVRSDUDQXHVWURURPSHFDEH]DV&RPHQWH
ODOtQHDGHOOLVWHQHU HODGG(YHQW/LVWHQHU SDUDTXHQRVHJHQHUHXQPHQVDMH
GH HUURU \D TXH QR KHPRV FUHDGR D~Q OD IXQFLyQ GHO OLVWHQHU \ HMHFXWH OD
SHOtFXOD'HEHUHPRVWHQHUODLPDJHQFRUWDGDSHURVLQOD~OWLPDSLH]D

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDFLyQGHXQURPSHFDEH]DV

)LJXUD(OMSJFRUWDGR\VLQOD~OWLPDSLH]D
)LJXUD

*HQHUDUHODOJRULWPRSDUD´EDUDMDUµORVFXDGURVGHODILJXUD

8QDYH]TXH\DWHQHPRVORVFXDGURVQHFHVLWDPRVFDPELDUORVGHOXJDUSDUDTXHHO
XVXDULR ORV YXHOYD D DFRPRGDU (O SUREOHPD HV TXH QR ORV SRGHPRV FDPELDU HQ
IRUPD DOHDWRULD GH OR FRQWUDULR FRUUHUtDPRV HO ULHVJR GH TXH HO URPSHFDEH]DV QR
WXYLHUDVROXFLyQDVtTXHHOSURJUDPDWHQGUiTXH´MXJDUµYDULDVYHFHVPRYLHQGRODV
SLH]DVGHWDOIRUPDTXHODVSLH]DVTXHGHQDSDUHQWHPHQWHGHVRUGHQDGDVSHURVHD
IDFWLEOHUHJUHVDUODV
3DUDHOORQXHVWURSURJUDPD´MXJDUiµYHFHVDQWHVGHGiUVHORDOXVXDULR
LJXDOTXHKDFtDPRVFXDQGRMXJiEDPRVFRQODVFDMLWDVGHQ~PHURV
&RPR XQD EXHQD SUiFWLFD DOPDFHQDUHPRV HQ XQD YDULDEOH HO Q~PHUR GH
MXJDGDV R LWHUDFLRQHV &RORFDUHPRV HVWD YDULDEOH IXHUD GH ODV IXQFLRQHV SDUD TXH
VHDDFFHVLEOHHQWRGRHOFyGLJRGHODFODVH


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

//2.1 Constante con el no. de jugadas iniciales


private const numJugadas:uint = 200;


(OFyGLJRTXHEDUDMDUiORVUHFXDGURVORHVFULELUHPRVHQXQDIXQFLyQTXHVHOODPDUi
EDUDMDU 

//2.3 Función que barajea las piezas


private function barajar():void{
for (var i:int = 0; i<numJugadas; i++) {
mueveAzar();
}
}


1RROYLGHLQYRFDUODIXQFLyQGHVSXpVGHFUHDUORVFXDGURVVDOLHQGRGHOVHJXQGRIRU
$KRUDYHQGUiHOVLJXLHQWHSUREOHPDDUHVROYHU¢FyPRYDPRVDPRYHUHOUHFXDGUR"
3DUDHOORGHEHPRVFRQVLGHUDUODVVLJXLHQWHVUHVWULFFLRQHV
• 1RSXHGHPRYHUXQDSLH]DDXQOXJDURFXSDGRSRURWUDSLH]D
• 1RSXHGHPRYHUXQDSLH]DIXHUDGHOWDEOHUR
(VWRQRVWUDHXQSUREOHPDTXHHVPX\IUHFXHQWHFXDQGRGHVDUUROODPRVMXHJRV\HV
TXH OD FRPSXWDGRUD HQ UHDOLGDG QXHVWUR SURJUDPD  VLHPSUH MXHJD LJXDO HV GHFLU
VLHPSUH PXHYH OD SULPHUD SLH]D GH LQLFLR 7RPDQGR HVWH ~OWLPR SXQWR FRPR RWUD
UHVWULFFLyQKDUHPRVXQDUUHJORFRQODVMXJDGDVSRVLEOHV\VHOHFFLRQDUHPRVXQDDO
D]DU
(QUHVXPHQSDUDUHDOL]DUHVWHDOJRULWPRORVSDVRVSUHYLRVVHUtDQ
• 8QDUUHJORGHWLUDGDVSRVLEOHVSDUDHOORUHFRUUHUHPRVWRGDVODVSLH]DV
• 6HOHFFLRQDPRVDOD]DUXQDGHODVWLUDGDVSRVLEOHV
/ODPDPRVDODUXWLQDPXHYH3LH]D 
(OFyGLJRSDUDLPSOHPHQWDUODIXQFLyQVHUiHOVLJXLHQWH


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDFLyQGHXQURPSHFDEH]DV

//2.4 Mueve Azar


private function mueveAzar():void{
var posiblesMovidas_array:Array = new Array()
for (var i:int = 0; i<piezas_array.length; i++) {
if (jugadaValida(piezas_array[i]) != "invalida")
{
posiblesMovidas_array.push(piezas_array[i]);
}
}
//Selecciona una jugada al azar
var jugada:int =
Math.floor(Math.random()*posiblesMovidas_array.length);
moverPieza(jugada);
}


$TXtIDOWDUtDUHVROYHURWURVGRVSUREOHPDVTXHHQUHDOLGDGVRQGRVIXQFLRQHV
 'HWHUPLQDUTXHXQDMXJDGDHVSRVLEOH
 0RYHUODSLH]DUHVROYDPRVHOSULPHUR

¢&yPRVDEHPRVVLXQPRYLPLHQWRHVYiOLGR"

$O LJXDO TXH ORV SUREOHPDV DQWHULRUHV H[LVWHQ YDULDV IRUPDV HQ TXH SRGHPRV
UHVROYHUXQSUREOHPDRFRPRGLFHQFDGDTXLHQPDWDODVSXOJDVFRPRSXHGH8QD
GH ODV GLIHUHQWHV VROXFLRQHV HV TXH VDEHPRV FXiO GH ORV FXDGURV HVWi YDFtR OR
DOPDFHQDPRV HQ HO REMHWR GH WLSR 3RLQW ´EODQFRµ HO FXDO DOPDFHQD FRRUGHQDGDV
PiVTXHSL[HOHV
 6L VDEHPRV HO OXJDU TXH HVWi GLVSRQLEOH SRU PHGLR GH ODV FRRUGHQDGDV 
QXHVWURDOJRULWPRVHVLPSOLILFDPXFKR\DVyORKD\ TXH FRPSDUDUODVFRRUGHQDGDV
GHOHVSDFLRHQEODQFRFRQODVFRRUGHQDGDVGHQXHVWUDSLH]D
 6XSRQJDTXHGHVHDPRVYHULILFDUHOFXDGURGHODVFRRUGHQDGDV  \TXH
ODVFRRUGHQDGDV  VHHQFXHQWUDQGLVSRQLEOHVFRPRVHPXHVWUDHQOD)LJ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

 )LJXUD
)LJXUD3RVLEOHVMXJDGDVGHXQDSLH]D

• 6LREVHUYDPRVODVFRRUGHQDGDVGHODL]TXLHUGDGLVPLQX\HVXYDORUHQ\HQ
XQR \ DXPHQWH OD \ D OD GHUHFKD $OJR SDUHFLGR RFXUUH VL YHULILFDPRV ODV
FRRUGHQDGDVGHOHOHPHQWRKDFLDDUULED GLVPLQX\HHOYDORUGHOD[ \KDFLD
DEDMR DXPHQWDHQ 
• $Vt TXH \D FRQ HVWD LQIRUPDFLyQ GH VyOR YDULDU HQ XQR \ FRPSDUDU FRQ HO
HVSDFLRHQEODQFRODIXQFLyQSRGUtDTXHGDUGHODVLJXLHQWHIRUPD


private function jugadaValida(pieza:Object):String{


if ((pieza.posActual.x == blanco.x) &&
(pieza.posActual.y == blanco.y+1)) {
return "arriba";
}
if ((pieza.posActual.x == blanco.x) &&
(pieza.posActual.y == blanco.y-1)) {
return "abajo";
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDFLyQGHXQURPSHFDEH]DV

if ((pieza.posActual.y == blanco.y) &&


(pieza.posActual.x == blanco.x+1)) {
return "izquierda";
}
if ((pieza.posActual.y == blanco.y) &&
(pieza.posActual.x == blanco.x-1)) {
return "derecha";
}
return "invalida";
}


• (O UHVXOWDGR VHUi XQD FDGHQD TXH QRV GLJD VL HO HVSDFLR HQ EODQFR VH
HQFXHQWUD MXQWR D OD SLH]D TXH VH UHYLVD GH OR FRQWUDULR PDQGDUHPRV OD
FDGHQDGH´LQYDOLGDµ\DTXHVDEHPRVFXiOHVGHODVSRVLEOHVPRYLGDVVRQ
YiOLGDV\VHOHFFLRQDPRVXQDDOD]DUHVWDPRVOLVWRVSDUDUHVROYHUQXHVWUR
VLJXLHQWHSUREOHPDPRYHUODSLH]D
• 3DUD PRYHU OD SLH]D GHWHUPLQDUHPRV ODV GLUHFFLRQHV SRU PHGLR GH GRV
YDULDEOHVG[\G\
• /XHJRFDOFXODUHPRVODVQXHYDVFRRUGHQDGDV\PRYHUHPRVODSLH]D
• 3RU~OWLPRDOPDFHQDUHPRVODVQXHYDVFRRUGHQDGDVHQEODQFR


private function moverPieza(pieza:Object):void{


var dx:int;
var dy:int;
//La volvemos a calcular
switch (jugadaValida(pieza)) {
case "arriba":
dx = 0;
dy = -1;
break;
case "abajo":
dx = 0;
dy = 1;
break;
case "izquierda":

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

dx = -1;
dy = 0;
break;
case "derecha":
dx = 1;
dy = 0;
break;
}
//Calcula nuevas coordenadas
pieza.posActual.x += dx;
pieza.posActual.y += dy;
blanco.x -= dx;
blanco.y -= dy;
//Mueve objeto
pieza.pieza.x =
pieza.posActual.x*(ancho+separacion)+margenX;
pieza.pieza.y =
pieza.posActual.y*(largo+separacion)+margenY;
}


6LHMHFXWDODSHOtFXOD)ODVKGHEHUiWHQHUXQWDEOHURFRQODVSLH]DVEDUDMDGDV


)LJXUD
)LJXUD/DVSLH]DVHQGHVRUGHQ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDFLyQGHXQURPSHFDEH]DV

0RYHUODVSLH]DV

<DTXHWHQHPRVODLPDJHQFRUWDGD\ODVSLH]DVIXHUDGHRUGHQQHFHVLWDPRVLQLFLDU
HOMXHJR'HPRPHQWRHOXVXDULRVyORQHFHVLWDSXOVDUFRQHODSXQWDGRUGHOUDWyQOD
SLH]DHQHOHVFHQDULRSDUDTXHpVWDVHPXHYDDOOXJDUDGHFXDGR1RKD\QHFHVLGDG
GHTXHHOXVXDULRODDUUDVWUH
 3DUDPRYHUXQDSLH]DEDVWDUiFRQLQGLFDUOHODVQXHYDVFRRUGHQDGDV\SDUD
HOOR VyOR QHFHVLWDPRV DXPHQWDU R GLVPLQXLU HQ XQR ODV FRRUGHQDGDV 8QD SRVLEOH
VROXFLyQDHVWHSUREOHPDTXHGDUtDHQODVLJXLHQWHIXQFLyQ

private function moverPieza(pieza:Object):void{


var dx:int;
var dy:int;
//La volvemos a calcular
switch (jugadaValida(pieza)) {
case "arriba":
dx = 0;
dy = -1;
break;

case "abajo":
dx = 0;
dy = 1;
break;

case "izquierda":
dx = -1;
dy = 0;
break;

case "derecha":
dx = 1;
dy = 0;
break;
}




$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

&UHDUFODVHVYLVXDOHVSHUVRQDOL]DGDV 

//Calcula nuevas coordenadas


pieza.posActual.x += dx;
pieza.posActual.y += dy;
blanco.x -= dx;
blanco.y -= dy;

//Mueve objeto
pieza.pieza.x =
pieza.posActual.x*(ancho+separacion)+margenX;
pieza.pieza.y =
pieza.posActual.y*(largo+separacion)+margenY;
}


3DUDWHUPLQDUHOWHUFHUSXQWRQRVKDFHIDOWDTXHHOXVXDULRSXOVHVREUHXQDSLH]D
&RPRXQDSLH]DVyORSXHGHPRYHUVHVLWLHQHHOHVSDFLRHQEODQFRDVXODGRQRKD\
QHFHVLGDG GH DUUDVWUDUOD QRVRWURV PRYHUHPRV OD SLH]D SDUD HOOR WHQHPRV XQ
SHTXHxRSUREOHPDODLQIRUPDFLyQHVWiHQXQDUUHJORQRHQHOREMHWR
$VtTXHWHQHPRVTXHHQFRQWUDUHOREMHWRDPRYHU
3DUD HOOR SULPHUR TXLWH HO FRPHQWDULR DO OLVWHQHU TXH GHILQLPRV HQ
FRUWD,PDJHQ+DJDPRVODIXQFLyQRQ&OLF3LH]DFRQXQFLFORYHULILFDPRVODSLH]DTXH
IXHSXOVDGD\HMHFXWDPRVODIXQFLyQPRYHU3LH]D

/DIXQFLyQTXHGDUtD

private function onClicPieza(e:MouseEvent) {


//Buscamos la información de la pieza
for (var i:int = 0; i<piezas_array.length; i++) {
if (piezas_array[i].pieza==e.currentTarget)
{
moverPieza(piezas_array[i])
}
}
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 $PDQHUDGHFRQFOXVLyQ

• (MHFXWHODSHOtFXOD\MXHJXHYDULDVYHFHVFRQHOSURJUDPD¢&yPRKDUtD
SDUDTXHHOXVXDULRWXYLHUDXQPHQ~\SXGLHUDVHOHFFLRQDUODVSHOtFXODV
GHODPiTXLQD"
• 'HVDUUROOHHOSURJUDPDSDUDODVROXFLyQTXHSURSRQH



7,3
7,3
6LXVD)ODVK'HYHORS\QRTXLHUHWHFOHDUORVLPSRUWV

$O HVFULELU HQ OD OtQHD GH FyGLJR OD SDODEUD (YHQW R 0RXVH(YHQW VRPEUpHOD \
SXOVH >&75/@>6KLIW@>@ DXWRPiWLFDPHQWH )ODVK'HYHORS DJUHJDUi HO LPSRUW D ORV
DUFKLYRVPHQFLRQDGRV

$PDQHUDGHFRQFOXVLyQ

(QHVWHFDStWXORDSUHQGLy
• &yPRFUHDUERWRQHVVHQFLOORV
• &yPR FDUJDU LPiJHQHV H[WHUQDV HQ WLHPSR GH HMHFXFLyQ OD FODVH
/RDGHU
• &yPRFDUJDUHLQWHUDFWXDUFRQSHOtFXODVH[WHUQDV
• $'HVDUUROODUXQURPSHFDEH]DV
&RQRFLy PiV GH DOJXQDV GH ODV QXHYDV FODVHV YLVXDOHV TXH FRPR \D VH KDEtD
GLFKRKDFHQDVXVSURJUDPDVPiVOLJHURV\UiSLGRV

 (OVLJXLHQWHFDStWXORORGHGLFDUHPRVDODVFODVHVTXHSHUPLWHQHOPDQHMRGH
WH[WR OR TXH HV SDUWLFXODUPHQWH LPSRUWDQWH FXDQGR UHDOL]DPRV DSOLFDFLRQHV HQ
)ODVK



$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


Texto 7



,QWURGXFFLyQ
(OPDQHMRGHWH[WRWDPELpQWLHQHPRGLILFDFLRQHVHQ$6/DVFODVHVLQYROXFUDGDV
HQHOPDQHMRGHOWH[WRVHOLVWDQHQOD7DEOD

7DEOD&ODVHVLQYROXFUDGDVHQHOPDQHMRGHOWH[WR
7DEOD
Clase Descripció n
7H[W)LHOG &RQWURODHOWH[WRHQODSDQWDOOD0DQLSXODORVFDPSRV
KHFKRVFRQ$6\ORVGLQiPLFRV\GHHQWUDGDKHFKRV
FRQHO,'(
6WDWLF7H[W &RQWURODORVWH[WRVHVWiWLFRVKHFKRVFRQHO,'(
7H[W6QDSVKRW (VXQDFDGHQDTXHFRQWLHQHORVWH[WRVHVWiWLFRV
KHFKRVFRQ)ODVKGHVGHHO,'(
7H[W)RUPDW &UHDREMHWRVSDUDIRUPDWHDUFDMDVGHWH[WR
&606HWWLQJ (VWDFODVHFRQWURODODUHQGHUL]DFLyQGHOWH[WR\GHO
DQWLDOLDV
)RQW 3URYHHXQDOLVWDGHODVIXHQWHVGLVSRQLEOHVR
HPEHELGDVHQHODUFKLYRVZI
7H[W/LQH0HWULFV 'HVFULEHODVPHGLGDVGHXQDOtQHDGHWH[WRHQORV
FDPSRVGHWH[WR

8QRGHORVSULQFLSDOHVFDPELRVDSDUWHGHTXHFRPRREMHWRVYLVXDOHVKD\TXH
DxDGLUORV D OD OLVWD GH YLVXDOL]DFLyQ HV TXH VH QHFHVLWD FUHDU XQ REMHWR
LQGHSHQGLHQWH D XQ 0RYLH&OLS (Q ODV YHUVLRQHV DQWHULRUHV GH $6 OD VLQWD[LV SDUD
FUHDUXQDFDMDGHWH[WRHUD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )RUPDWRGHXQWH[WR


movieclip.createTextField("instancia", prof, x, y, ancho,


alto);
//En AS3.0 bastará con crear la instancia independiente:
var texto:TextField = new TextField();


6H FUHDUi DXWRPiWLFDPHQWH XQD FDMD GH  ï  SL[HOHV OD FXDO QR VH YH HQ
SULPHUD LQVWDQFLD  /DV FRRUGHQDGDV GH OD FDMD VRQ   HQ UHODFLyQ FRQ VX
FRQWHQHGRU3DUDDxDGLUHOWH[WRDODFDMDEDVWDFRQDVLJQDUORDODSURSLHGDGWH[W

texto.text = “Hola Mundo”;

$XQTXH HQ ODV YHUVLRQHV DQWHULRUHV FRQ HVWR EDVWDUtD SDUD PRVWUDU HO WH[WR HQ HO
HVFHQDULR HQ $6 FRPR \D VH KD YLVWR HQ ORV HMHUFLFLRV GH ORV FDStWXORV
DQWHULRUHVKD\TXHDxDGLUORDODOLVWDGHYLVXDOL]DFLyQFRQ

addChild(texto);

)RUPDWRGHXQWH[WR
8QSDVRIXQGDPHQWDOHQHO PDQHMRGHWH[WRHQ)ODVKHVTXHVHOHGpIRUPDWRHV
GHFLUFDPELDUORGHFRORUIXHQWH\HVWLORSRUHMHPSORLWiOLFDVQHJULOODVRVXEUD\DGR
8QWH[WRHQ$FWLRQ6FULSWSXHGHVHUIRUPDWHDGRGHYDULDVPDQHUDV

 &RQODVSURSLHGDGHVGHODFODVH7H[W)LHOG
 &RQHWLTXHWDV+70/
 &RQXQREMHWRGHIRUPDWRGHWH[WR 7H[W)RUPDW 
 &RQHVWLORVHQFDVFDGD&66

7RGDV ODV WpFQLFDV SDUD IRUPDWHDU WH[WRV WLHQHQ YHQWDMDV \ GHVYHQWDMDV $
FRQWLQXDFLyQVHGHVFULEHEUHYHPHQWHFDGDXQDGHHOODV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 

)RUPDWHRFRQODFODVH7H[W)LHOG

eVWDHVODPDQHUDPiVGLUHFWDGHGDUOHIRUPDWRDXQD FDMDGHWH[WRSHURWLHQHHO
LQFRQYHQLHQWH GH TXH KD\ TXH DSOLFDUOR FDMD SRU FDMD GH WH[WR \ HV GH GLItFLO
PDQWHQLPLHQWR HV GHFLU VL VH WLHQH XQ IRUPDWR FRQ  FDMDV GH WH[WR FXDQGR
VXUJLHUDXQFDPELRVHWHQGUtDTXHPRGLILFDUORHQOXJDUHV$KRUDLPDJtQHVHGDUOH
PDQWHQLPLHQWR D WRGR XQ VLWLR $OJXQRV GH ORV FRPDQGRV TXH HQ VX PD\RUtD VRQ
VLPLODUHVDORVGHODVYHUVLRQHVDQWHULRUHVVHOLVWDQHQOD7DEOD

7DEOD&RPDQGRVSDUDIRUPDWHRGHWH[WR
7DEOD
Propiedad Descripció n
ZLGWK 0DQHMDHODQFKRGHODFDMD
KHLJKW 0DQHMDODDOWXUDGHODFDMD
EDFNJURXQG $FWLYDODYLVXDOL]DFLyQGHODFDMDGHWH[WR
EDFNJURXQG&RORU &DPELDHOFRORUGHODFDMDGHWH[WR
ERUGHU $FWLYDRGHVDFWLYDHOERUGHGHODFDMDGHWH[WR
ERUGHU&RORU &DPELDHOFRORUGHOERUGHGHODFDMD3RUGHIDXOWHVQHJUD
ZRUG:UDS 3HUPLWHMXVWLILFDUHOWH[WRKDFLDDEDMRGHODFDMD
DXWR6L]H $PSOtD OD FDMD VHJ~Q HO WDPDxR GHO WH[WR 6H UHFRPLHQGD
XWLOL]DU ODV FRQVWDQWHV GH OD FODVH 7H[W)LHOG$XWR6L]H FRPR
VRQ 121( /()7 5,*7+ &(17(5 SDUD TXH HO FRPSLODGRU
SXHGDYDOLGDUODV
WH[W&RORU &DPELDHOFRORUGHOWH[WR

$VLPLVPR GHQWUR GH HVWD FODVH VH FXHQWD FRQ GLIHUHQWHV PpWRGRV SDUD
PRGLILFDU HO FRQWHQLGR GHO WH[WR OD PD\RUtD VRQ QXHYRV HQ $6  (QWUH RWURV VH
HQFXHQWUDQUHODFLRQDGRVHQOD7DEODSDUDPD\RUUHIHUHQFLDSXHGHFRQVXOWDUOD
GRFXPHQWDFLyQGHOSDTXHWH

7DEOD0pWRGRVSDUDPRGLILFDUHOFRQWHQLGRGHOWH[WR
7DEOD
Método Descripció n
DSSHQG7H[W  $xDGHXQDFDGHQDDOILQDOGHODFDMDGHWH[WR
UHSODFH7H[W  5HHPSOD]DWH[WRGHQWURGHODFDMDSRURWUD
VXEFDGHQD
UHSODFH6HOHFWHG7H[W  5HHPSOD]DHOWH[WRVHOHFFLRQDGRSRUXQD
VXEFDGHQD
JHW3DUDJUDSK/HQJWK LQGLFH  5HJUHVDHOQ~PHURGHFDUDFWHUHVGHXQSiUUDIR
GDGRHQHOtQGLFH
JHW)LUVW&KDU,Q3DUDJUDSK LQGLFH  ,QGLFDODSRVLFLyQGHOSULPHUFDUiFWHUGHXQ
SiUUDIRLQGLFDGRHQHOtQGLFH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )RUPDWRGHXQWH[WR

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6VHQRPEUDFRPRWH[WRIOD\VHJXDUGDHQOD
FDUSHWDGHWUDEDMR
• 6HFUHDXQDUFKLYR$FWLRQ6FULSWVHQRPEUDFRPR7H[WRDV\VHJXDUGDHQOD
FDUSHWDPLV&ODVHV
• (QHODUFKLYRWH[WRIODVHHVFULEHHQHOFDPSRGH'RFXPHQW&ODVVODFDGHQD
PLV&ODVHV7H[WR
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.text.*;

public class Texto extends Sprite {


public function Texto() {

var miTexto:TextField = new TextField;;


var miCadena:String = "Lorem ipsum dolor
sit amet, consectetuer adipiscing elit. Praesent id enim
rhoncus libero interdum luctus. Nam id nunc. Nullam
pharetra elit quis ipsum.";
miTexto.text = miCadena;
addChild(miTexto);
}
}
}

$OHMHFXWDUODSHOtFXODREVpUYHVHTXHODFDMDGHWH[WRDEDUFDïSL[HOHV\VH
HVWi MXVWLILFDQGR HQ IRUPD DXWRPiWLFD KDFLD DEDMR SHUR QR VH GHVSOLHJD WRGR HO
WH[WR /D FDMD GH WH[WR VyOR VH YLVXDOL]DUi DO PRPHQWR GH GDU HO DSSHQG&KLOG  OR
PLVPRTXHVXFHGHFRQORVRWURVREMHWRVGHODVFODVHVYLVXDOHV

$KRUD VH DxDGLUiQ DOJXQRV FRPDQGRV GH IRUPDWHR EiVLFR 'LFKRV FRPDQGRV
GHEHUiQVHUFRORFDGRVDQWHVGHODDVLJQDFLyQGHODFDGHQDDOWH[WRGHORFRQWUDULR
QRVHUiQWRPDGRVHQFXHQWD


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 


package misClases{
import flash.display.Sprite;
import flash.text.*;
public class Texto extends Sprite {
public function Texto() {

var miTexto:TextField = new TextField;;


var miCadena:String = "Lorem ipsum dolor
sit amet, consectetuer adipiscing elit. Praesent id enim
rhoncus libero interdum luctus. Nam id nunc. Nullam
pharetra elit quis ipsum. \nPhasellus sed enim. Nulla
facilisi..";

//Básicos
miTexto.width = 250;
miTexto.height = 300;
miTexto.multiline = true;
miTexto.wordWrap = true;
miTexto.border = true;
miTexto.background = true;

miTexto.text = miCadena;
addChild(miTexto);
}
}
}

2EVpUYHVHTXHDKRUDVHGHVSOLHJDHOWH[WRFRPSOHWRDVtFRPRHOERUGHQHJURGHOD
FDMDGHWH[WR6HDxDGHQORVFRPDQGRVSDUDHOPDQHMRGHFRORUHVGHOERUGHGHODV
IXHQWHV\GHOIRQGRGHODFDMDGHWH[WR$KRUDVHHVFULEHQODVVLJXLHQWHVOtQHDVHQWUH
ORVFRPDQGRVEiVLFRV\DQWHVGHODDVLJQDFLyQGHODFDGHQD

//Color
miTexto.borderColor = 0xff0000;
miTexto.backgroundColor = 0x006666;
miTexto.textColor = 0xffffff;

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )RUPDWRGHXQWH[WR

$OHMHFXWDUODSHOtFXODVHREVHUYDTXHDKRUDHOIRQGRGHODFDMDHVYHUGHHOERUGHHV
URMR\HOFRORUGHODIXHQWHHVEODQFR(QHVWHSXQWRVHDSOLFDQDOJXQRVPpWRGRVGH
$6SDUDHOPDQHMRGHWH[WR
 3ULPHURVHXWLOL]DUiHOPpWRGRDSSHQG%ODQN HOFXDOSHUPLWHDxDGLUWH[WRDO
ILQDOGHXQDFDMDGHWH[WR\DFUHDGDVHWLHQHWDPELpQHOPpWRGRUHSODFH7H[W SDUD
VXVWLWXLUWH[WRDSDUWLUGHXQDSRVLFLyQLQLFLDOKDVWDXQDSRVLFLyQILQDO\ORUHHPSOD]D
SRUXQWH[WRQXHYR
&RQ HO PpWRGR JHW3DUDJUDSK/HQJWK  VH REWLHQH OD ORQJLWXG GH XQ SiUUDIR
VHJ~Q HO Q~PHUR GH tQGLFH TXH VH OH SURSRUFLRQH 'HVSXpV GH OD DVLJQDFLyQ GH
FRORUHV \ GH OD DVLJQDFLyQ GH OD FDGHQD DO WH[WR VH HVFULEHQ ODV VLJXLHQWHV
VHQWHQFLDV

//Métodos
miTexto.appendText("\n...ESTO ES UNA MUESTRA DE LOS
METODOS");
miTexto.replaceText(0,5,"LOREM");
var ultimoCaracter:int = miTexto.getParagraphLength(0)
trace("El primer párrafo tiene "+ultimoCaracter+"
caracteres");
trace("El segundo párrafo inicia en el caracter
"+(ultimoCaracter+1));
trace("El segundo párrafo tiene
"+miTexto.getParagraphLength(ultimoCaracter)+"
caracteres.");


1yWHVH TXH VH OH DVLJQy XQ FDUDFWHU GH HVFDSH ´?Qµ SDUD JHQHUDU XQ UHWRUQR GH
FDUURGHQWURGHOWH[WR

)RUPDWRFRQ7H[W)RUPDW&ODVV

(VWDFODVH\DHVWDEDLPSOHPHQWDGDHQODVYHUVLRQHVDQWHULRUHVGH$68QDYHQWDMD
GH OD QXHYD YHUVLyQ HV TXH \D QR HV QHFHVDULR HO FRPDQGR VHW1HZ7H[W)RUPDW 
$OJXQDV GH ODV SURSLHGDGHV GH IRUPDWR FRQ 7H[W)RUPDW &ODVV VH SUHVHQWDQ HQ OD
7DEOD/DVSURSLHGDGHVSDUDPDQHMRGHSiUUDIRVVHPXHVWUDQHQOD7DEOD


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 

7DEOD3URSLHGDGHVGHODFODVH7H[W)RUPDW
7DEOD
Propiedad Descripció n
EROG 0DQHMDODVOHWUDVHQQHJULWDV
FRORU 0RGLILFDHOFRORUGHODIXHQWH
IRQW &RQWURODODIXHQWHGHOWH[WR
LWDOLF ,QGLFDVLODIXHQWHHVLWiOLFD
NHUQLQJ 9DORU ERROHDQR TXH LQGLFD VL VH DMXVWDQ ORV SL[HOHV
HQWUHORVFDUDFWHUHV WUXH RQR IDOVH 
OHWWHU6SDFLQJ (V XQ Q~PHUR HQWHUR TXH LQGLFD HO HVSDFLR HQWUH ORV
FDUDFWHUHV
VL]H (VHOWDPDxRHQSXQWRVGHORVFDUDFWHUHV3RUGHIDXOW
VXWDPDxRHV
XQGHUOLQH 9DORU ERROHDQR TXH LQGLFD VL HO WH[WR VH HQFXHQWUD
VXEUD\DGR WUXH RQR IDOVH 


7DEOD
7DEOD3URSLHGDGHVSDUDHOPDQHMRGHSiUUDIRV
Propiedad Descripció n
DOLJQ ,QGLFD OD DOLQHDFLyQ GHO SiUUDIR VHJ~Q ODV FRQVWDQWHV
GHODFODVH7H[W)RUPDW$OLJQ
EORFN,QGHQW ,QGLFDODLQGHQWDFLyQGHOSiUUDIRHQSL[HOHV
EXOOHW ,QGLFDVLHOWH[WRFRQWLHQHXQEXOOHW WUXH RQR IDOVH 
LQGHQW ,QGLFDODLQGHQWDFLyQGHOSULPHUFDUDFWHUGHXQSiUUDIR
OHDGLQJ (VHOHVSDFLRHQWUHOtQHDV
OHIW0DUJLQ (VHOQ~PHURGHSL[HOHVGHOPDUJHQL]TXLHUGR
ULJKW0DUJLQ (VHOQ~PHURGHSL[HOHVGHOPDUJHQGHUHFKR
WDE6WRSV (VXQDUUHJORFRQYDORUHVQXPpULFRVQRQHJDWLYRVSDUD
HOVDOWRGHODWHFOD>7DE@6XYDORUSRUGHIDXOWHV

1RWD

,QGHQWDFLyQ R LGHQWDFLyQ LQGHQWDWLRQ  HV XQ DQJOLFLVPR XVDGR HQ LQIRUPiWLFD TXH
VLJQLILFDPRYHUXQEORTXHGHWH[WRKDFLDODGHUHFKDLQVHUWDQGRHVSDFLRVRWDEXODGRUHV
SDUDVHSDUDUORGHOWH[WRDG\DFHQWHOR TXHHQHOiPELWRGHODLPSUHQWDVHGHQRPLQD
VDQJUDGRRVDQJUtD



$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )RUPDWRGHXQWH[WR

3DUD TXH DSDUH]FDQ ORV FDPELRV GH ORV HVWLORV HQ OD FDMD GH WH[WR GHEH
DSOLFDUVH HO IRUPDWR DQWHV GH PRGLILFDU RDxDGLUWH[WRORVSDVRV SDUDDSOLFDUXQ
IRUPDWRDXQDFDMDGHWH[WRVRQ

1. &UHDUXQREMHWR7H[W)RUPDW RWDPELpQSXHGHVHUXQDFDMDGHWH[WRFUHDGD
FRQHO,'( 
2. 3REODUHOREMHWRFRQYDORUHVSDUDODVSURSLHGDGHVGHODVWDEODVDQWHULRUHV
3. $SOLFDUHOIRUPDWRDODFDMDGHWH[WR

(OIRUPDWRSDUDDSOLFDUHOIRUPDWRGHWH[WRHV


cajadeTexto.setTextFormat(objetoTextFormat, indiceInicial,
indiceFinal);

/RVGRV~OWLPRVVRQRSFLRQDOHV6LQRVHLQFOX\HQHQODDVLJQDFLyQHOHIHFWRRFXUULUi
HQWRGRHOWH[WR6LVyORVHLQFOX\HHOtQGLFHLQLFLDO\QRHOILQDOHOIRUPDWRDSOLFDUiD
SDUWLUGHpVWHKDVWDHO~OWLPRFDUDFWHUGHOWH[WR

(MHPSOR

• 6H FDPELD HO 'RFXPHQWR GH FODVH HQ HO DUFKLYR WH[WRIOD SRU HO GH
PLV&ODVHV7H[WR
• 6H FUHD XQ QXHYR DUFKLYR $FWLRQ6FULSW \ VH JUDED HQ OD FDUSHWD PLV&ODVHV
FRQHOQRPEUHGH7H[WRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.text.*;
public class Texto1 extends Sprite {
private var miTexto:TextField;
private var miCadena:String = "Lorem ipsum dolor
sit amet, consectetuer adipiscing elit. Praesent id enim
rhoncus libero interdum luctus. Nam id nunc. Nullam
pharetra elit quis ipsum. Phasellus sed enim. Nulla
facilisi. \n\nUt pellentesque risus eget felis. Aliquam

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 


egestas nibh id metus. Phasellus eleifend nisi at ante. In


hac habitasse platea dictumst. Nunc auctor ligula eget
felis.";
public function Texto1() {

//Básicos
miTexto= new TextField;
miTexto.width = 250;
miTexto.height = 300;
miTexto.multiline = true;
miTexto.wordWrap = true;
miTexto.border = true;
miTexto.background = true;

//Asignación
miTexto.text = miCadena;

//
var ultimoCaracter:int =
miTexto.getParagraphLength(0);
var segundoParrafo:int =
miTexto.getParagraphLength(ultimoCaracter+1);
trace(ultimoCaracter);
trace(segundoParrafo);

//Formatos
var formato1:TextFormat = new TextFormat();
var formato2:TextFormat = new TextFormat();
formato1.color = 0xff0000;
formato2.color = 0x00ff00;
miTexto.setTextFormat(formato1);

miTexto.setTextFormat(formato2,ultimoCaracter+1,ultimoCaracter+segundoParrafo
+1);
addChild(miTexto);

}
}
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )RUPDWRGHXQWH[WR

/DSULPHUDSDUWHFUHDHOWH[WRFRPRVHYLRHQODVHFFLyQDQWHULRU3RVWHULRUPHQWHVH
FDOFXODQORVGLIHUHQWHVSiUUDIRV

6HFUHDQGRVIRUPDWRV\VHDVLJQDQDORVSiUUDIRV(OSULPHURVHDSOLFDDWRGR
HOWH[WR\DTXHQRVHOHLQGLFDQLLQLFLRQLILQ


miTexto.setTextFormat(formato1);


(Q HO VLJXLHQWH UHQJOyQ VH OH GD XQ FDUDFWHU GH LQLFLR \ XQR GH ILQ SRU OR TXH HO
~OWLPR FDUDFWHU VH FDPELD D YHUGH $O HMHFXWDU OD SHOtFXOD HO UHVXOWDGR GHEHUi VHU
TXHHOSULPHUSiUUDIRDSDUH]FDHQURMR\HOVHJXQGRHQYHUGH

)LJXUD3iUUDIRVFRQGLIHUHQWHIRUPDWR
)LJXUD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 


)RUPDWRFRQ+70/
2WUD PDQHUD GH GDUOH IRUPDWR D XQ WH[WR HV SRU PHGLR GH HWLTXHWDV +70/ HQ
YHUVLyQ /DVHWLTXHWDVTXHVHSXHGHQXWLOL]DUSDUDHOIRUPDWRVRQODVVLJXLHQWHV

7DEOD(WLTXHWDV+70/DGPLWLGDVHQ)ODVK
7DEOD
Etiqueta Descripció n
$! (WLTXHWDDQFODSDUDKDFHUXQKLSHUWH[WR
%! 0DQHMDODVQHJULWDVREROG
%5! 6DOWRGHOtQHDREUHDN
)217! &DPELDHOWLSRGHIXHQWH
,! 0DQHMDODVLWiOLFDV
,0*! 3XHGHGHVSOHJDUXQDLPDJHQ
/,! $xDGHXQEXOOHWDOSiUUDIR
3! (WLTXHWDTXHFUHDXQQXHYRSiUUDIR
63$1! 3HUPLWH UHODFLRQDU XQ &66 SRU PHGLR GHO SDUiPHWUR
&/$66
7(;7)250$7! 0DQHMDORVPiUJHQHVGHUHFKRHL]TXLHUGRODLGHQWDFLyQ
HQWUHRWUDVSURSLHGDGHVGHXQSiUUDIR
8! 0DQHMDHOVXEUD\DGRGHXQWH[WR

/RVSDVRVSDUDGDUOHIRUPDWRDXQWH[WRHQ+70/VRQ XQDYH]FUHDGDODFDMD
GHWH[WR 

1. &UHDUODFDGHQDFRQODVHWLTXHWDV+70/
2. $VLJQDUODFDGHQDFRQ+70/DODFDMDGHWH[WRSRUPHGLRGHOSDUiPHWUR
KWPO7H[W

(MHUFLFLR

• 6HFDPELDHOGRFXPHQWRGHFODVHHQHODUFKLYRWH[WRIODSRUHOGH
PLV&ODVHV7H[WR
• 6HFUHDXQQXHYRDUFKLYR$FWLRQ6FULSW\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUHGH7H[WRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )RUPDWRFRQ+70/


package misClases{
import flash.display.Sprite;
import flash.text.*;
public class Texto2 extends Sprite {
private var miTexto:TextField;
private var miCadena:String = "<p><b>Lorem ipsum
dolor sit amet,</b></p><br><font
color='#ff0000'>consectetuer adipiscing elit. Praesent id
enim rhoncus libero interdum luctus. Nam id nunc. Nullam
pharetra elit quis ipsum. Phasellus sed enim. Nulla
facilisi.</font><img src='imagen.jpg' WIDTH='100'
HEIGHT='100'><br><br><font color='#0000ff'>Ut pellentesque
risus eget felis. Aliquam egestas nibh id metus. Phasellus
eleifend nisi at ante. In hac habitasse platea dictumst.
Nunc auctor ligula eget felis.</font>";
public function Texto2() {
//Básicos
miTexto= new TextField;
miTexto.width = 250;
miTexto.height = 300;
miTexto.multiline = true;
miTexto.wordWrap = true;
miTexto.border = true;
miTexto.background = true;
//Asignación
miTexto.htmlText = miCadena;
addChild(miTexto);
}
}
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 

/DVDOLGDGHHVWHJXLyQVHUi


)LJXUD7H[WRIRUPDWHDGRFRQHWLTXHWDV+70/
)LJXUD

)RUPDWRFRQ&66
8QD PDQHUD GH WHQHU PiV FRQWURO VREUH HO GLVHxR GHO WH[WR HV FRQ ORV HVWLORV HQ
FDVFDGDR&66 (QWUHVXVPD\RUHVYHQWDMDVHVTXHHVSRVLEOHVHSDUDUHOWH[WRGHO
GLVHxR SXHV SXHGHQ DOPDFHQDUVH ORV HVWLORV HQ XQ DUFKLYR H[WHUQR &66 /DV
HWLTXHWDVGHWLSR&66TXHDGPLWH)ODVK3OD\HUVHPXHVWUDQHQOD7DEOD

7DEOD(WLTXHWDV&66DGPLWLGDVHQ)ODVK
7DEOD
Etiqueta Descripció n
FRORU (VHOFRORUGHODIXHQWH(OIRUPDWRHVKH[DGHFLPDO1R
VHDFHSWDQODVFDGHQDVWLSREOXHUHGHWFpWHUD
GLVSOD\ 6yORVRSRUWDORVYDORUHVLQOLQHEORFN\QRQH
IRQWIDPLO\ (VXQDOLVWDGH)XHQWHVVHSDUDGDVSRUFRPDVTXHSXHGHWRPDUHO
WH[WR
IRQWVW\OH (V HO WDPDxR HQ SL[HOHV GH OD IXHQWH 6yOR FRQWLHQH VX SDUWH
QXPpULFDDGLIHUHQFLDGHXQ&66HVWiQGDUQRVHLQFOX\HHOVXEILMR
S[RSW
 &RQWLQ~D

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )RUPDWRFRQ&66

7DEOD
7DEOD  &RQWLQXDFLyQ 

Etiqueta Descripció n
)RQWLWDOLF &RQWUROD OD LQFOLQDFLyQ GH OD IXHQWH 3XHGH UHFRQRFHU ORV
YDORUHVQRUPDOHLWDOLF
IRQWZHLJKW &RQWURODHODQFKRGHODVOHWUDV3XHGHUHFRQRFHUORVYDORUHV
GHQRUPDO\EROG
NHUQLQJ 6RSRUWD ORV YDORUHV WUXH \ IDOVH (VWD SURSLHGDG VyOR
IXQFLRQD SDUD ODV IXHQWHV HPEHELGDV $OJXQDV IXHQWHV QR
VRSRUWDQHVWDSURSLHGDG
OHDGLQJ (V OD FDQWLGDG GH SL[HOHV HQWUH ODV OtQHDV GH XQ WH[WR 6L HO
YDORUHVQHJDWLYRODVPLVPDVVHFRODSVDQ1RVHDQDOL]DHO
WLSRGHXQLGDGHV S[RSW 3XQWRV\SL[HOHVVRQHTXLYDOHQWHV
OHWWHUVSDFLQJ (V OD FDQWLGDG GH SL[HOHV GLVWULEXLGRV HTXLYDOHQWHPHQWH
HQWUH FDUDFWHUHV 1R VH UHFRQRFH OD SDUWH GH ODV XQLGDGHV
S[RSW VyORODSDUWHQXPpULFD
PDUJLQOHIW 0DUJHQL]TXLHUGRGHOWH[WRHQSL[HOHV
0DUJLQULJWK 0DUJHQGHUHFKRGHOWH[WRHQSL[HOHV
WH[WDOLJQ 5HFRQRFHORVYDORUHVOHIWULJKWFHQWHU\MXVWLI\
WH[WGHFRUDWLRQ 0DQHMDHOVXEUD\DGRGHOWH[WR
WH[WLQGHQW (VHOQ~PHURGHSL[HOHVSDUDODLQGHQWDFLyQ


/RV HVWLORV HQ FDVFDGD SXHGHQ VHU LQWHUQRV R H[WHUQRV 3ULPHUR VH DQDOL]DUi
FyPRDSOLFDUHVWLORVHQFDVFDGDLQWHUQRV


8QDYH]FUHDGDODFDMDGHWH[WRORVSDVRV SDUDGDUOHIRUPDWRDXQWH[WRFRQ
&66LQWHUQRVVRQ

 &UHDUXQREMHWR6W\OH6KHHW
var estilo:StyleSheet = new StyleSheet();

 &UHDUXQREMHWRJHQpULFRGRQGHVHDOPDFHQDUiQORVHVWLORV
var estiloObj:Object = new Object();

 3REODUHOREMHWRJHQpULFRFRQORVYDORUHVGHORVHVWLORV
estiloObj.fontSize = "bold";
estiloObj.color = "#FF0000";

 (QOD]DUHOREMHWRGHKRMDGHHVWLORFRQHOREMHWR\IRUPDUXQD´FODVHµ
estilo.setStyle(".colorado", estiloObj);


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 

1RWD_

8QDFODVHHVXQWLSRGHHVWLORGHFDVFDGDTXHFXHQWDFRQXQSXQWRFRPRLQLFLRGHVX
LGHQWLILFDGRU\TXHSXHGHVHUDSOLFDGRYDULDVYHFHVHQXQGRFXPHQWR


 $VLJQDUHOHVWLORHQFDVFDGDDOWH[WRSRUPHGLRGHODSURSLHGDGVW\OH6KHHW

miTexto.styleSheet = estilo;

 3DUDDSOLFDUHOHVWLORHQHOWH[WRVHGHEHUiXWLOL]DUODHWLTXHWDVSDQ
FODVV µFRORUDGRµ!

var miCadena:String = "<span class='colorado'>Lorem ipsum


dolor sit amet,</b></p><br>consectetuer adipiscing elit.
Praesent id enim rhoncus libero interdum luctus. Nam id
nunc. Nullam pharetra elit quis ipsum. Phasellus sed enim.
Nulla facilisi.</span>

 3RU~OWLPRVHDVLJQDHOWH[WRDODFDMDSRUPHGLRGHODSURSLHGDGKWPO7H[W
 PL7H[WRKWPO7H[W PL&DGHQD

(MHUFLFLRIRUPDWRFRQ&66LQWHUQRV

• &DPELDU HO GRFXPHQWR GH FODVH HQ HO DUFKLYR WH[WRIOD SRU HO GH
PLV&ODVHV7H[WR
• &UHDUXQQXHYRDUFKLYR$FWLRQ6FULSW\JUDEDUORHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUHGH7H[WRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.text.*;
public class Texto3 extends Sprite {
//
var estilo:StyleSheet = new StyleSheet();
var estiloObj:Object = new Object();

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )RUPDWRFRQ&66


//
private var miTexto:TextField;
private var miCadena:String = "<span
class='colorado'>Lorem ipsum dolor sit
amet,</b></p><br>consectetuer adipiscing elit. Praesent id
enim rhoncus libero interdum luctus. Nam id nunc. Nullam
pharetra elit quis ipsum. Phasellus sed enim. Nulla
facilisi.</span><img src='imagen.jpg' WIDTH='100'
HEIGHT='100'><br><br><font color='#0000ff'>Ut pellentesque
risus eget felis. Aliquam egestas nibh id metus. Phasellus
eleifend nisi at ante. In hac habitasse platea dictumst.
Nunc auctor ligula eget felis.</font>";
//
public function Texto3() {
estiloObj.fontSize = "bold";
estiloObj.color = "#FF0000";
estilo.setStyle(".colorado", estiloObj);
//

//Básicos
miTexto= new TextField;
miTexto.width = 250;
miTexto.height = 300;
miTexto.multiline = true;
miTexto.wordWrap = true;
miTexto.border = true;
miTexto.background = true;
//Asignación
miTexto.styleSheet = estilo;
miTexto.htmlText = miCadena;
addChild(miTexto);
}
}
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 

(MHUFLFLRIRUPDWRFRQ&66H[WHUQRV

8QDYH]FUHDGDODFDMDGHWH[WRSDUDGDUOHIRUPDWRDXQWH[WRFRQ&66H[WHUQRVVH
UHDOL]DQORVVLJXLHQWHVSDVRV
• 6HFDPELDHO'RFXPHQWRGHFODVHHQHODUFKLYRWH[WRIODSRUHOGH
PLV&ODVHV7H[WR
• 6HFUHDXQQXHYRDUFKLYR$FWLRQ6FULSW\VHJUDEDHQODFDUSHWDPLV&ODVHV
FRQHOQRPEUHGH7H[WRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.text.TextField;
import flash.events.Event;
import flash.text.TextFieldAutoSize;
import flash.text.StyleSheet;
import flash.net.URLLoader;
import flash.net.URLRequest;

public class Texto4 extends Sprite {


//
public function Texto4() {
var loader:URLLoader = new URLLoader( );
loader.addEventListener(Event.COMPLETE,
onCargaCSS);
var carga:URLRequest = new
URLRequest("texto4.css");
loader.load(carga);
}
private function onCargaCSS(event:Event):void {
var css:StyleSheet = new StyleSheet( );
css.parseCSS(URLLoader(event.target).data);
var texto:TextField = new TextField();
texto.styleSheet = css;
texto.htmlText = "<span
class='colorado'>Lorem ipsum dolor sit amet, consectetuer

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 )RUPDWRFRQ&66


adipiscing elit. </span>Morbi tortor purus, aliquet a,


ornare ac, suscipit a, est. Nullam hendrerit molestie erat.
Nunc nulla tortor, ullamcorper et, elementum vel, fringilla
sed, dui. Praesent fermentum interdum orci.";
texto.autoSize = TextFieldAutoSize.LEFT;
texto.wordWrap = true;
texto.width = 200;
addChild(texto);
}
}
}

'HEHH[LVWLUHODUFKLYRWH[WRFVVHQVXFDUSHWDGHORFRQWUDULRGHEHUiLQGLFDUOHHO
FDPLQR GH DFFHVR DO PLVPR (Q HVWH HMHPSOR HO DUFKLYR FRQWLHQH ORV VLJXLHQWHV
HVWLORV


p {
font-family: _sans;
color: #0000FF;
}
.colorado {
font-weight: bold;
font-style: italic;
color: #FF0000;
}


2EVpUYHVH TXH HO SULPHU HVWLOR PRGLILFD D OD HWLTXHWD S! (O VHJXQGR FUHD XQD
FODVH HQORVWpUPLQRVGHOOHQJXDMH&66 FRQQRPEUHFRORUDGR3DUDODDSOLFDFLyQGH
HVWD~OWLPDKD\TXHXWLOL]DUXQDHWLTXHWDVSDQ!&XDQGRVHDVLJQDXQHVWLORDOD
HWLTXHWD SRU HMHPSOR S! QR HV QHFHVDULD OD HWLTXHWD VSDQ! $O HMHFXWDU HO
GRFXPHQWR)ODVKHOUHVXOWDGRGHEHUiVHUHOVLJXLHQWH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 



)LJXUD7H[WRIRUPDWHDGRFRQ&66
)LJXUD

7H[WRVGHHQWUDGD
'HVGH$FWLRQ6FULSWWDPELpQSRGHPRVFUHDUWH[WRVGHHQWUDGDR7H[W,QSXW3ULPHUR
KD\ TXH KDFHU  OD FDMD GH WH[WR  \ GHVSXpV LQGLFDU HQ OD SURSLHGDG W\SH 7DPELpQ
WHQHPRVRWUDVSURSLHGDGHVFRPRHOFRORUGHODFDMDREDFNJURXQG \HOERUGHSDUD
GDUOHHVWLOR2WUDVSURSLHGDGHVODVYHUHPRVHQODVLJXLHQWHWDEOD
7DEOD3URSLHGDGHVGHODVFDMDVGHHQWUDGD
7DEOD
3URSLHGDG 'HVFULSFLyQ
W\SH ,QGLFDHOWLSRGHFDMDGHWH[WRVLHVGHHQWUDGD ,1387 
R GLQiPLFD '<1$0,&  'H SUHIHUHQFLD KD\ TXH XWLOL]DU ODV
FRQVWDQWHVGHODFODVH7H[W)LHOG7\SH
ERUGHU $FWLYD HO FXDGUR GH OD FDMD GH HQWUDGD 6XV YDORUHV
VHUiQYHUGDGHUR WUXH RIDOVR IDOVH 
ERUGHU&RORU &DPELDHOFRORUGHOERUGHGHODFDMDGHWH[WR
EDFNJURXQG $FWLYDHOIRQGRGHODFDMDGHOWH[WR
SDVVZRUG ,PSLGHYHUORVFDUDFWHUHVTXHLQWURGXFHHOXVXDULR\ORV
VXVWLWX\HSRUFDUDFWHUHVQHXWURVFRPRSHTXHxRVFtUFXORV
UHVWULFW 5HVWULQJH ORV FDUDFWHUHV TXH VH SXHGHQ LQWURGXFLU \
WDPELpQORVTXHQRVHSXHGHQLQWURGXFLU
PD[&KDUV 1~PHUR Pi[LPR GH FDUDFWHUHV TXH VH SXHGHQ
LQWURGXFLUHQODFDMDGHHQWUDGD


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 7H[WRVGHHQWUDGD

(MHUFLFLR

• 6HFDPELDHO'RFXPHQWRGHFODVHHQHODUFKLYRWH[WRIODSRUHOGH
PLV&ODVHV7H[WR
• 6HFUHDXQQXHYRDUFKLYR$FWLRQ6FULSW\VHJUDEDHQODFDUSHWDPLV&ODVHV
FRQHOQRPEUHGH7H[WRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextFieldType;

public class Texto5 extends Sprite {


//
public function Texto5() {
inicio()
}
private function inicio():void {
var texto1:TextField = new TextField();
texto1.text = "Nombre:";
texto1.x = 10;
texto1.y = 10;
addChild(texto1);

var texto2:TextField = new TextField();


texto2.text = "Edad:";
texto2.x = 10;
texto2.y = 40;
addChild(texto2);

var textoEntrada1:TextField = new


TextField();
textoEntrada1.type = TextFieldType.INPUT;
textoEntrada1.x = 65;
textoEntrada1.y = 10;
textoEntrada1.border = true;
textoEntrada1.borderColor = 0xff0000;
textoEntrada1.background = true;
textoEntrada1.backgroundColor = 0xffcc00;
textoEntrada1.height = 20;

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 


textoEntrada1.width = 150;
textoEntrada1.maxChars = 20;
addChild(textoEntrada1);

var textoEntrada2:TextField = new


TextField();
textoEntrada2.type = TextFieldType.INPUT;
textoEntrada2.x = 65;
textoEntrada2.y = 40;
textoEntrada2.border = true;
textoEntrada2.borderColor = 0xff0000;
textoEntrada2.background = true;
textoEntrada2.backgroundColor = 0xffcc00;
textoEntrada2.height = 20;
textoEntrada2.width = 20;
textoEntrada2.restrict = "0-9";
textoEntrada2.maxChars = 2;
addChild(textoEntrada2);
}
}
}

(YHQWRVGHODVFDMDVGHWH[WR

(QORVFDPSRVGHHQWUDGD\DVHDFUHDGRVFRQ$FWLRQ6FULSWRGHVGHHO,'(SRGHPRV
GHWHFWDU FXiQGR HO XVXDULR VHOHFFLRQD OD FDMD GH WH[WR GH HQWUDGD )2&86B,1  \
FXiQGRHODSXQWDGRUGHOPRXVHGHOXVXDULRGHMDODFDMDGHHQWUDGD )2&86B287 
(VWRVHUYLUiHQWUHRWUDVFRVDVSDUDYDOLGDUODHQWUDGDGHOXVXDULR


(MHUFLFLR

• 6HFDPELDHO'RFXPHQWRGHFODVHHQHODUFKLYRWH[WRIODSRUHOGH
PLV&ODVHV7H[WR
• 6HFUHDXQQXHYRDUFKLYR$FWLRQ6FULSW\VHJUDEDHQODFDUSHWDPLV&ODVHV
FRQHOQRPEUHGH7H[WRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 7H[WRVGHHQWUDGD

package misClases{
import flash.display.Sprite;
import flash.text.TextField;
import flash.text.TextField;
import flash.text.TextFieldType;

public class Texto5 extends Sprite {

var textoEntrada1:TextField = new TextField();


var textoEntrada2:TextField = new TextField();
//
public function Texto6() {
inicio()
}
private function inicio():void {
var texto1:TextField = new TextField();
texto1.text = "Nombre:";
texto1.x = 10;
texto1.y = 10;
addChild(texto1);

var texto2:TextField = new TextField();


texto2.text = "Edad:";
texto2.x = 10;
texto2.y = 40;
addChild(texto2);

textoEntrada1.type = TextFieldType.INPUT;
textoEntrada1.x = 65;
textoEntrada1.y = 10;
textoEntrada1.border = true;
textoEntrada1.borderColor = 0xff0000;
textoEntrada1.background = true;
textoEntrada1.backgroundColor = 0xffcc00;
textoEntrada1.height = 20;
textoEntrada1.width = 150;
textoEntrada1.restrict = "a-zA-Z ";
textoEntrada1.maxChars = 26;
addChild(textoEntrada1);

textoEntrada2.type = TextFieldType.INPUT;
textoEntrada2.x = 65;
textoEntrada2.y = 40;
textoEntrada2.border = true;

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

7H[WR 


textoEntrada2.borderColor = 0xff0000;
textoEntrada2.background = true;
textoEntrada2.backgroundColor = 0xffcc00;
textoEntrada2.height = 20;
textoEntrada2.width = 20;
textoEntrada2.restrict = "0-9";
textoEntrada2.maxChars = 2;
addChild(textoEntrada2);

textoEntrada1.addEventListener(FocusEvent.FOCUS_IN,
onFocusIn);
textoEntrada1.addEventListener(FocusEvent.FOCUS_OUT,
onFocusOut);

function onFocusIn(e:FocusEvent):void {
trace("Captura el nombre");
}

function onFocusOut(event:FocusEvent):void {
if(textoEntrada1.text == ""){
trace("Campo obligatorio");
}
}
}
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 $PDQHUDGHFRQFOXVLyQ

$PDQHUDGHFRQFOXVLyQ

(QHVWHFDStWXORDSUHQGLyODVFODVHVUHODFLRQDGDVFRQHOWH[WRSDUD$FWLRQ6FULSW

• &ODVHVLQYROXFUDGDVHQHOPDQHMRGHOWH[WR
• )RUPDWRGHXQWH[WR
• &RPDQGRVSDUDIRUPDWHDUWH[WR
• 0pWRGRVSDUDPRGLILFDUHOFRQWHQLGRGHOWH[WR
• 3URSLHGDGHVGHODFODVH7H[W)RUPDW
• 3URSLHGDGHVSDUDHOPDQHMRGHSiUUDIRV
• )RUPDWRFRQ+70/
• (WLTXHWDV+70/DGPLWLGDVHQ)ODVK
• )RUPDWRFRQ&66
• 7H[WRVGHHQWUDGD
• 3URSLHGDGHVGHODVFDMDVGHHQWUDGD

(Q HO SUy[LPR FDStWXOR DQDOL]DUHPRV XQD KHUUDPLHQWD SRGHURVD SDUD HO
GHVDUUROORGHDSOLFDFLRQHV\H[SHULHQFLDVHQ)ODVKODFODVH;0/.



$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


XML
8



,QWURGXFFLyQ
6LELHQHVFLHUWRTXHVHSXHGHDFFHGHUDORVGRFXPHQWRV;0/GHVGH)ODVK FRQ
$FWLRQ6FULSW\ FRQ$6HOPDQHMRGH;0/WXYRXQFDPELRUDGLFDO SDUDELHQ 
DSHJiQGRVHDOHVWiQGDU(&0$6FULSWSDUD;0/PHMRUFRQRFLGRFRPR(;ORFXDOOR
KDFHPXFKRPiVVHQFLOORTXHODYHUVLyQDQWHULRUTXHVHEDVyHQHOHVWiQGDU:&
'20/DVFODVHVLQYROXFUDGDVHQODYHUVLyQ$6VRQODVTXHPXHVWUDOD7DEOD
7DEOD&ODVHVGHODQXHYDYHUVLyQGH$6
7DEOD
&ODVH
&ODVH 'HVFULSFLyQ
'HVFULSFLyQ
;0/ /DQXHYDFODVHFRQWLHQHSURSLHGDGHV\PpWRGRVQHFHVDULRV
SDUD PDQLSXODU ORV REMHWRV ;0/ DSHJDGRV D ORV HVWiQGDUHV
GH(&0$6FULSWSDUD;0/ (; 
;0//LVW &RQWLHQHPpWRGRVSDUDDQDOL]DUHOHPHQWRVOHtGRVSDUFLDOHV
RHQWHURVGHVGHXQDFRQVXOWD;0/
41DPH /RV REMHWRV 41DPH UHSUHVHQWDQ QRPEUHV FRPSOHWRV GH
HOHPHQWRV \ DWULEXWRV ;0/ &DGD REMHWR 41DPH WLHQH XQ
QRPEUH ORFDO \ XQ HVSDFLR GH QRPEUHV 8QLIRUP 5HVRXUFH
,GHQWLILHU 85, 
1DPHVSDFH /D FODVH 1DPHVSDFH FRQWLHQH PpWRGRV \ SURSLHGDGHV SDUD
GHILQLU\WUDEDMDUFRQHVSDFLRVGHQRPEUHV 1DPHVSDFH 


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QWURGXFFLyQ

/DVFODVHVGHQWURGH$6TXHPDQHMDODYHUVLyQDQWHULRUGH;0/VHOLVWDQ
HQOD7DEOD/DFODVH;0/IXHUHQRPEUDGDD;0/'RFXPHQW

7DEOD&ODVHVHQ$6TXHPDQHMDODYHUVLyQDQWHULRUGH;0/
7DEOD
&ODVH
&ODVH 
;0/'RFXPHQW /D FODVH ;0/'RFXPHQW UHSUHVHQWD HO REMHWR ;0/ TXH
HVWDEDSUHVHQWHHQ$FWLRQ6FULSW6XQRPEUHVHFDPELy
HQ $FWLRQ6FULSW  SDUD ;0/'RFXPHQW SDUD HYLWDU
FRQIOLFWRV GH QRPEUHV FRQ OD QXHYD FODVH ;0/ GH
$FWLRQ6FULSW
;0/1RGH /D FODVH ;0/1RGH UHSUHVHQWD HO REMHWR ;0/ H[LVWHQWH HQ
$FWLRQ6FULSW  \ TXH SDVy D OODPDUVH DVt HQ $FWLRQ6FULSW



7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
57,),&$&,Ð1
(QVXH[DPHQ$&(SXHGDDSDUHFHUXQDSUHJXQWDTXHGLFH¢4XpEHQHILFLRVWLHQHHO
PRGHOR(;HQ$FWLRQ6FULSW"
/D UHVSXHVWD VHUtD TXH ORV REMHWRV ;0/ VRQ WUDWDGRV HQ IRUPD QDWLYD \ SXHGHQ VHU
DQDOL]DGRVORVQRGRVVLQUHIHULUVHDODHVWUXFWXUDFRPRYHUHPRVDORODUJRGHOFDStWXOR

/DVEDVHV

8Q DUFKLYR ;0/ H;WHQVLEOH 0DUNXS /DQJXDJH  HV XQD HVWUXFWXUD MHUiUTXLFD SDUD
DOPDFHQDULQIRUPDFLyQ SRU PHGLRGHHWLTXHWDV(VWiEDVDGRHQ HO OHQJXDMH +70/
SHUR D GLIHUHQFLD GH pVWH HO ;0/ QR FRQWLHQH GLUHFWDPHQWH HVWLORV VyOR GDWRV
DJUXSDGRVHQHWLTXHWDV
(V SDUWH GH XQD HWLTXHWD JHQpULFD TXH HQJORED D RWUDV HWLTXHWDV OODPDGDV
´QRGRVµ/DUHSUHVHQWDFLyQGHXQGRFXPHQWR;0/SXHGHVHUHOGHXQiUEROGRQGH
ODHWLTXHWDJHQpULFDHVODUDt]/RVQRGRVVHUtDQODUHSUHVHQWDFLyQGHODVUDPDVGHO
PLVPR 6XSyQJDVH TXH VH GHVHD DOPDFHQDU OD LQIRUPDFLyQ GH VXV OLEURV /D
HWLTXHWDJHQpULFDVHUtD

<libros>
</libros>

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

&RPRVHSXHGHREVHUYDUODVHWLTXHWDVVRQVLPLODUHVDODVGH+70/&RQWLHQHQORV
VtPERORVGHPHQRUTXH\PD\RUTXH ! \GHQWURGHHOODVXQLGHQWLILFDGRU6HWLHQH
FRPR HWLTXHWD GH FLHUUH DO PLVPR LGHQWLILFDGRU VyOR TXH pVWH OOHYD XQD GLDJRQDO
HQWUHHOVtPEROR´PD\RUTXHµ\HOLQLFLRGHOLGHQWLILFDGRU
'HQWUR GH HVWD HWLTXHWD JHQpULFD VH LQWURGXFLUi OD LQIRUPDFLyQ GH ORV OLEURV
FRPR VXEHWLTXHWDV R ´QRGRVµ (Q HO VXSXHVWR GH TXH VH WXYLHUDQ WUHV OLEURV OD
HVWUXFWXUDEiVLFDVHUtDODVLJXLHQWH

<libros>
<libro></libro>
<libro></libro>
<libro></libro>
</libros>


2EVpUYHVHTXHORVQRGRVWLHQHQHOPLVPRLGHQWLILFDGRUHOFXDOHVGLIHUHQWHDOGHOD
HWLTXHWD JHQpULFD (Q HVWH FDVR OD HWLTXHWD JHQpULFD HVWi HQ SOXUDO \ ORV QRGRV HQ
VLQJXODU(VWDSUiFWLFDQRHVREOLJDWRULDSHURYDULRVGHVDUUROODGRUHVODXWLOL]DQ

$KRUD VH GHEH HVFULELU OD LQIRUPDFLyQ GH FDGD OLEUR GHQWUR GHO QRGR SRU
HMHPSOR

<libro>
<título>El Quijote de la Mancha</título>
<autor>Miguel de Cervantes Saavedra</autor>
<editorial>Clásicos de la lengua</editorial>
<ISBN>109345671234</ISBN>
</libro>


/RV QRGRV LQWHUQRV WDPELpQ WLHQHQ HWLTXHWDV GH DSHUWXUD \ GH FLHUUH (O YDORU GHO
QRGRVHHVFULEHHQWUHHOODV\VHFRQVLGHUDQFRPRFDGHQDV LQFOXVRVLVRQQ~PHURV 
VLQQHFHVLGDGGHHVFULELUORHQWUHFRPLOODV



$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QWURGXFFLyQ

'HQWUR GH XQD HWLTXHWD GH DSHUWXUD SXHGH HVFULELUVH LQIRUPDFLyQ OD FXDO VH
FRQRFH FRPR DWULEXWR /RV YDORUHV GH ORV DWULEXWRV VH HVFULEHQ HQWUH FRPLOODV VLQ
LPSRUWDUTXHVHDQQ~PHURVRSDODEUDVSRUHMHPSOR

<libro>
<título pag=”654” >El Quijote de la Mancha</título>
<autor>Miguel de Cervantes Saavedra</autor>
<editorial>Clásicos de la lengua</editorial>
<ISBN>109345671234</ISBN>
</libro>


/RVHVSDFLRVHQEODQFRTXHVLUYHQFRPRVDQJUtDDORVQRGRVHQUHDOLGDGVyORVLUYHQ
SDUDVXOHFWXUD'HKHFKRXQGRFXPHQWR;0/HVXQDFDGHQDFRQWLQXDODFXDOVHUtD
GLItFLOGHOHHUSDUDQRVRWURV SHURQRSDUDODVFRPSXWDGRUDV 

<libro><título pag=”654” >El Quijote de la


Mancha</título><autor>Miguel de Cervantes
Saavedra</autor><editorial>Clásicos de la
lengua</editorial><ISBN>109345671234</ISBN>
</libro>

$QWHVGHODHWLTXHWDUDt]VHGHEHHVFULELUXQDLQVWUXFFLyQGHSURFHVR

<?xml version="1.0" encoding="ISO-8859-1" ?>


,62  HV XQD QRUPD GH OD ,62 TXH GHILQH OD FRGLILFDFLyQ GHO DOIDEHWR ODWLQR
LQFOX\HQGROHWUDVDFHQWXDGDVxo\OHWUDVHVSHFLDOHVFRPR‰‘QHFHVDULDVSDUDOD
HVFULWXUD GH ODV VLJXLHQWHV OHQJXDV RULJLQDULDV GH (XURSD RFFLGHQWDO DOHPiQ
DUDJRQpVFDWDOiQGDQpVHVFRFpVHVSDxROIHURpVILQpVIUDQFpVJDpOLFRJDOOHJR
LQJOpV LVODQGpV LWDOLDQR QHHUODQGpV QRUXHJR SRUWXJXpV VXHFR \ YDVFR 6L QR VH
WLHQH HVWD HWLTXHWD SXHGHQ WHQHUVH SUREOHPDV SDUD OD OHFWXUD GH SDODEUDV
DFHQWXDGDV\FRQHxHV
$XQTXH HO OHQJXDMH ;0/ HV PXFKR PiV HODERUDGR FRQ HVWRV HOHPHQWRV VH
HVWiOLVWRSDUDFUHDUOHHU\H[SORWDUODLQIRUPDFLyQGHGRFXPHQWRV;0/FRQ$6

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

&UHDUREMHWRV;0/FRQ$6
3ULPHURHOHQIRTXHVHUiFUHDUXQGRFXPHQWR;0/LQWHUQDPHQWHHQ)ODVKHVGHFLU
QRVHOHHUiGHQLQJ~QDUFKLYRH[WHUQR
• 6HDEUHXQDUFKLYRQXHYRSDUD$6\VHJUDEDFRPR;0/IODHQODFDUSHWD
GHWUDEDMR
• $KRUD VH DEUH XQ DUFKLYR SDUD $FWLRQ6FULSW \ VH JUDED HQ OD FDUSHWD
PLV&ODVHV FRQ HO QRPEUH GH ;0/HMHPSOR SURFXUDQGR QR JUDEDU ORV
DUFKLYRVGHFODVHVSURSLDVFRQHOPLVPRQRPEUHGHFODVHVGH$FWLRQ6FULSW
SDUDHYLWDUSUREOHPDV 
• (Q HO DUFKLYR )/$ GHEH YHULILFDUVH TXH VH HQFXHQWUH HQ HO PRGR HVWULFWR
GHFRPSLODFLyQ\VHHVFULEHODVLJXLHQWHFDGHQDHQHOFDPSR'RFXPHQWRGH
FODVHPLV&ODVHV;0/HMHPSOR
• (QHODUFKLYRGHODFODVHVHHVFULEHHOVLJXLHQWHFyGLJR


package misClases{
import flash.display.Sprite;
import flash.xml.*;
public class XMLejemplo extends Sprite {
public function XMLejemplo() {
//1. Directo en la asignación
var ejemplo1:XML = <libros>
<libro>
<título>El Quijote</título>
<autor>Cervantes</autor>
</libro>
</libros>;
trace(ejemplo1);
}
}
}


/RSULPHURTXHVHKDFHHVLPSRUWDUODVFODVHVGH;0/6HFUHDHOREMHWRHMHPSOR
FRPR XQ ;0/ \ VH OH HVWi DVLJQDQGR GLUHFWDPHQWH XQ SHTXHxR GRFXPHQWR ;0/
2EVpUYHVH TXH HVWRV QRGRV QR OOHYDQ FRPLOODV VyOR ORV GHOLPLWD HO SXQWR \ FRPR
ILQDO


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

$OSXEOLFDUHODUFKLYR)ODVKVHGHEHUiWHQHUODVLJXLHQWHVDOLGD

<libros>
<libro>
<título>El Quijote</título>
<autor>Cervantes</autor>
</libro>
</libros>


3RGUtDGHFLUVHTXHHVWDIRUPDGHFUHDUREMHWRV;0/HV´DOYXHORµ$KRUDVHVXVWLWX\H
HOFyGLJRDQWHULRU RVHFRPHQWD SDUDODFUHDFLyQGHXQREMHWR;0/SRUPHGLRGH
XQDFDGHQD

package misClases{
import flash.display.Sprite;
import flash.xml.*;

public class XMLejemplo extends Sprite {


public function XMLejemplo() {
//2. por medio de una cadena
var cadena:String = "<libros><libro>”;
cadena += “<título>Cien años de soledad</título>”;
cadena += “<autor>Gabriel García Márquez</autor>”;
cadena += “</libro></libros>";
var ejemplo2:XML = new XML(cadena);
trace(ejemplo2);
}
}
}


$OSXEOLFDUHODUFKLYRVHGHEHUiWHQHUODVLJXLHQWHVDOLGD

<libros>
<libro>
<título>Cien años de soledad</título>
<autor>Gabriel García Márquez</autor>
</libro>
</libros>

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

0XFKDV YHFHV VH QHFHVLWD FUHDU XQ GRFXPHQWR FRQ GDWRV TXH SURSRUFLRQD HO
XVXDULRGHFiOFXORVSRUORFXDOVLHPSUHHV~WLODUPDUODFDGHQDFRQYDULDEOHV3DUD
HOORVHFRPHQWDRVHVXVWLWX\HHOFyGLJRDQWHULRUSRUHOVLJXLHQWH

package misClases{
import flash.display.Sprite;
import flash.xml.*;
public class XMLejemplo extends Sprite {
public function XMLejemplo() {
//3. Con variables 1
var autor:String = "James Joyce";
var titulo:String = "Ulises";
var cadena:String =<libros><libro><titulo>"+titulo;
cadena +=
"</titulo><autor>"+autor+"</autor></libro></libros>";
var ejemplo3:XML = new XML(cadena);
trace(ejemplo3);
}
}
}

1RWD

(QHVWRVHMHPSORVVHSDUWHQODVFDGHQDVSDUDIDFLOLWDUVXOHFWXUDSHURHQHOFyGLJRQR
HVQHFHVDULRKDFHUOR

/DVDOLGDGHEHUiVHUODVLJXLHQWH

<libros>
<libro>
<título>Ulises</título>
<autor>James Joyce</autor>
</libro>
</libros>


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

([LVWH RWUD IRUPD GH DUPDU HO REMHWR ;0/ FRQ YDULDEOHV HYLWDQGR FRQFDWHQDU
FDGHQDV3DUDHOORVHFRPHQWDRVXVWLWX\HHOFyGLJRDQWHULRU SRU HOVLJXLHQWHHQ HO
DUFKLYRGHFODVH

package misClases{
import flash.display.Sprite;
import flash.xml.*;
public class XMLejemplo extends Sprite {
public function XMLejemplo() {
//4. Con variables 2
var autor:String = "La Divina Comedia";
var titulo:String = "Dante";
var cadena:String =
<libros><libro><titulo>{titulo}</titulo><autor>{autor}</auto
r></libro></libros>;
var ejemplo4:XML = new XML(cadena);
trace(ejemplo4);
}
}
}


1yWHVH TXH VH HVWi DVLJQDQGR XQD FDGHQD SHUR QR VH XWLOL]DQ FRPLOODV \ SDUD
LQFOXLUORVYDORUHVGHODVYDULDEOHVVHXVDQODVOODYHV(OUHVXOWDGRGHEHUiVHU

<libros>
<libro>
<título>Dante</título>
<autor>La Divina Comedia</autor>
</libro>
</libros>

$xDGLUQRGRV;0/FRQ$6

$KRUD TXH \D VH WLHQH HO REMHWR HO VLJXLHQWH SDVR VHUi DxDGLUOH GDWRV 3DUD HOOR
H[LVWHQ YDULDV IRUPDV GH KDFHUOR 6H HOLPLQD R FRPHQWD HO FyGLJR GHO HMHUFLFLR
DQWHULRU\VHHVFULEHHOVLJXLHQWH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

package misClases{
import flash.display.Sprite;
import flash.xml.*;

public class XMLejemplo extends Sprite {


public function XMLejemplo() {
//5. Añadiendo datos
var ejemplo5:XML = <libros/>
trace(ejemplo5);
ejemplo5.libro1 = <libro><título>El
principito</título><autor>Saint Exupery</autor></libro>;
ejemplo5.libro2 = <libro><título>Crimen y
castigo</título><autor>Dostoievsky</autor></libro>;
trace(ejemplo5)
}
}
}


2EVpUYHVHFyPRFRQODQRWDFLyQSXQWRVHSXHGHQDxDGLUQRGRVDXQGRFXPHQWR/D
VDOLGDGHEHUiVHUVLPLODUDODVLJXLHQWH

<libros>
<libro>
<título>El principito</tìtulo>
<autor>Saint Exupery</autor>
</libro>
<libro>
<título>Crimen y castigo</título>
<autor>Dostoievsky</autor>
</libro>
</libros>


7DPELpQVHSXHGHQLQVHUWDUSDUpQWHVLVFXDGUDGRV6LVHGHVHDVHSXHGHDxDGLUHO
VLJXLHQWHFyGLJR DOILQDOGH ODIXQFLyQ;0/HMHPSOR SDUDTXHVH YHDFyPRVH YDQ
LQVHUWDQGRORVQRGRV HQHVWHHMHPSORVHRPLWHHOFyGLJRGHFODVHVXSRQLHQGRTXH
VHOHYDDLQVHUWDU 

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

ejemplo5["libro"+3] = <libro><título>Yo
robot</título><autor>Asimov</autor></libro>;
trace(ejemplo5);


$OHMHFXWDUODSHOtFXODVHGHEHUiWHQHUODVLJXLHQWHVDOLGD

<libros>
<libro>
<título>El principito</título>
<autor>Saint Exupery</autor>
</libro>
<libro>
<título>Crimen y castigo</título>
<autor>Dostoievsky</autor>
</libro>
<libro>
<título>Yo robot</título>
<autor>Asimov</autor>
</libro>
</libros>


6HFDPELDODYDULDEOHGHQWURGHORVSDUpQWHVLVFXDGUDGRVGHD\REVpUYHQVHORV
UHVXOWDGRV&RPR\DH[LVWtDXQOLEURORVGDWRVGHOPLVPRVRQVXVWLWXLGRV

(Q$6KD\GRVPpWRGRVSDUDLQVHUWDUXQQRGRLQVHUW&KLOG%HIRUHLQVHUWDU
HO QRGR DQWHV GH XQ QRGR GHWHUPLQDGR HLQVHUW&KLOG$IWHU LQVHUWDU GHVSXpV GH XQ
QRGRGHWHUPLQDGR/DVLQWD[LVGHDPERVPpWRGRVHVODVLJXLHQWH

objetoXML.insertChildBefore(nodo1:Object, nodo2:Object);


(O SULPHU QRGR HV OD UHIHUHQFLD GRQGH VH LQVHUWDUi DQWHV HO QRGR /D VLQWD[LV GHO
VHJXQGRPpWRGRHV

objetoXML.insertChildAfter(nodo1:Object, nodo2:Object);


(OSULPHUQRGRHVODUHIHUHQFLDGRQGHVHLQVHUWDUiGHVSXpVHOQRGR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

6HDxDGHHOVLJXLHQWHFyGLJRSDUDREVHUYDUFyPRVHDxDGHQORVQRGRVVHJ~Q
XQQRGRGHUHIHUHQFLD

ejemplo5 = ejemplo5.insertChildBefore(ejemplo5.libro[0],
<libro><título>El
Quijote</título><autor>Cervantes</autor></libro>);
ejemplo5 = ejemplo5.insertChildAfter(ejemplo5.libro[2],
<libro><título>Cien años de soledad</título><autor>Gabriel
García Márquez</autor></libro>);
trace(ejemplo5);


$KRUD (O 4XLMRWH VHUi HO SULPHU QRGR \ HO OLEUR GH *DUFtD 0iUTXH] GHVSXpV GH
&ULPHQ\FDVWLJR

<libros>
<libro>
<título>El Quijote</título>
<autor>Cervantes</autor>
</libro>
<libro>
<título>El principito</título>
<autor>Saint Exupery</autor>
</libro>
<libro>
<título>Crimen y castigo</título>
<autor>Dostoievsky</autor>
</libro>
<libro>
<título>Cien años de soledad</título>
<autor>Gabriel García Márquez</autor>
</libro>
<libro>
<título>Yo robot</título>
<autor>Asimov</autor>
</libro>
</libros>

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

7DPELpQVHWLHQHQPpWRGRVSDUDDxDGLUQRGRVDOLQLFLR\DOILQDOGHXQGRFXPHQWR
;0/ FRQ HO PpWRGR DSSHQG&KLOG VH DxDGH XQ QRGR DO ILQDO GHO GRFXPHQWR (O
PpWRGRSUHSHQG&KLOGDxDGHXQQRGRDOLQLFLRGHOGRFXPHQWR;0/6HSXHGHDxDGLU
HOVLJXLHQWHFyGLJRDOILQDOGHODIXQFLyQ

//8. appendChild, prepend


ejemplo5 = ejemplo5.appendChild(<libro><título>La
Odisea</título><autor>Homero</autor></libro>);
ejemplo5 = ejemplo5.prependChild(<libro><título>La
Ilíada</título><autor>Homero</autor></libro>);
trace(ejemplo5);


$O HMHFXWDU OD SHOtFXOD VH SRGUi REVHUYDU TXH /D 2GLVHD VHD HO ~OWLPR QRGR \ /D
,OtDGDHOSULPHUR3RUFXHVWLRQHVGHHVSDFLRVyORVHPRVWUDUiQHVWRVQRGRV

<libros>
<libro>
<título>La Ilíada</título>
<autor>Homero</autor>
</libro>

<título>La Odisea</título>
<autor>Homero</autor>
</libro>
</libros>

$xDGLUDWULEXWRV;0/FRQ$6

$KRUDVHYHUiFyPRDxDGLUDWULEXWRVDODVHWLTXHWDVGHORVQRGRV3DUDHOORVHXWLOL]D
ODQRWDFLyQSXQWRFRQXQDDUURED6HSXHGHHVFULELUHOVLJXLHQWHFyGLJRDOILQDOGHOD
IXQFLyQ6HDxDGLUiQGRVDWULEXWRVHQFDGDQRGRSRUPHGLRGHXQFLFORIRU

//9. Añadir argumentos


for (var i:int = 0; i<7; i++) {
ejemplo5.libro[i].@id=i;
ejemplo5.libro[i].@pag=100*i+i;
}
trace(ejemplo5)


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

$OHMHFXWDUODSHOtFXODVHREVHUYDFyPRVHDxDGLHURQORVDWULEXWRVDORVSULPHURV
QRGRV

<libros>
<libro id="0" pag="0">
<título>La Ilíada</título>
<autor>Homero</autor>
</libro>
<libro id="1" pag="101">
<título>El Quijote</título>
<autor>Cervantes</autor>
</libro>

</libros>


3DUDKDFHUHOGRFXPHQWRXQREMHWR;0//LVWVHXWLOL]DHOFRPDQGRHOHPHQWV 
3RUHMHPSORVHFRPHQWDQODVVHQWHQFLDVWUDFHTXHVHHQFXHQWUDQHQHOJXLyQ
\HQODSDUWHILQDOVHHVFULEHODVLJXLHQWHVHQWHQFLD

trace(ejemplo5.elements());


6HHMHFXWDODSHOtFXOD\VHREVHUYDTXHDKRUDVHPXHVWUDXQDOLVWDGHQRGRV

<libro id="0" pag="0">


<título>La Ilíada</título>
<autor>Homero</autor>
</libro>
<libro id="1" pag="101">
<título>El Quijote</título>
<autor>Cervantes</autor>
</libro>


$KRUDVHFRPHQWDHVWD~OWLPDVHQWHQFLD\VHHVFULEHQODVVLJXLHQWHVOtQHDVDOILQDO
GHODIXQFLyQ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

trace(ejemplo5.elements("*").length());
trace(ejemplo5.elements("*")[0].toXMLString());
trace(ejemplo5.elements("libro")[1].toXMLString());


/DVDOLGDVHUiODVLJXLHQWH

<libro id="0" pag="0">


<título>La Ilíada</título>
<autor>Homero</autor>
</libro>
<libro id="1" pag="101">
<título>El Quijote</título>
<autor>Cervantes</autor>
</libro>


(OQ~PHURFRUUHVSRQGHDORVQRGRVHQHOGRFXPHQWR/RVVLJXLHQWHVVRQORVQRGRV
 HOSULPHUR \ HOVHJXQGR 


7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
$XQTXH SDUHFH XQD QRWDFLyQ VDFDGD GH RWUR OHQJXDMH XQD SUHJXQWD TXH SXHGH
DSDUHFHU HQ WX H[DPHQ $&( HV TXH WH PXHVWUHQ XQ QRGR GH XQ REMHWR ;0/ \ TXH
LQGLTXHV OD IRUPD GH H[WUDHU HO YDORU GH XQ QRGR /D UHVSXHVWD HV
REMHWR;0/QRGR#DWULEXWR


$KRUDVHFRQMXQWDHOPpWRGRHOHPHQWVFRQHOFLFORIRUHDFK6HFRPHQWDQODV
VHQWHQFLDVWUDFHDQWHULRUHV\VHHVFULEHHOVLJXLHQWHFyGLJR

//11. for each con elements


for each (var libro:XML in ejemplo5.elements()) {
var autor:String = libro.autor.toString();
trace(autor);
var atributos:XMLList = libro.attributes();

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

for each (var atrib:XML in atributos) {


trace(atrib);
}
}


(O SULPHU FtUFXOR DQDOL]D ORV QRGRV GHO OLEUR HO VHJXQGR  ORV DWULEXWRV /D SULPHUD
SDUWHGHODVDOLGDVHUtDODVLJXLHQWH

Homero
0
0
Cervantes
1
101
Saint Exupery
2
202
Dostoievsky
3
303


,JXDOPHQWHVHFRPHQWDHOFyGLJRDQWHULRU\VHHVFULEHHOVLJXLHQWHHQODIXQFLyQ

//12. for each con elements


for each (var libro:XML in ejemplo5.elements()) {
var autor:String = libro.autor.toString();
trace(autor);
trace(libro.attribute("*").toString());
trace("--------------");
}


(O SULPHU WUDFHPXHVWUDHO QRPEUHGHODXWRUHOVHJXQGRPXHVWUDDPERVDWULEXWRV
HQXQDVRODFDGHQD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

Homero
00
--------------
Cervantes
1101
--------------
Saint Exupery
2202
--------------
Dostoievsky
3303
--------------


(QHVWDQXHYDYHUVLyQVHSXHGHEXVFDUGHQWURGHORVGRFXPHQWRVGHPDQHUDPX\
IiFLO

//13.
trace(ejemplo5.libro.(autor=="Asimov").título);
trace(ejemplo5.libro.(@pag > "500").título);


(Q OD SULPHUD VHQWHQFLD VH EXVFD HO WtWXOR GHO DXWRU FRQ QRPEUH ´$VLPRYµ /D
VLJXLHQWH VHQWHQFLD EXVFD HO WtWXOR GH ORV QRGRV FX\RV DWULEXWRV REVpUYHVH OD
DUURED VHDQPD\RUHVGH/DVDOLGDGHHVWDVLQVWUXFFLRQHVHV

Yo robot
<título>Yo robot</título>
<título>La Odisea</título>

%RUUDU\PRGLILFDUQRGRV\DWULEXWRV

(Q HVWD YHUVLyQ GH $FWLRQ6FULSW HV PX\ VHQFLOOR ERUUDU XQ QRGR XQ VXEQRGR R XQ
DWULEXWREDVWDXQFRPDQGRGHOHWH3RUHMHPSORVHFRPHQWDQODVVHQWHQFLDVWUDFH
GH ORV HMHPSORV DQWHULRUHV \ VH HVFULEHQ ORV VLJXLHQWHV FRPDQGRV DO ILQDO GH OD
IXQFLyQ


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

delete ejemplo5.libro[0];
delete ejemplo5.libro[1].@pag;
delete ejemplo5.libro[2].autor;
trace(ejemplo5);


$OHMHFXWDUODSHOtFXODVHREWHQGUiXQDVDOLGDFRPRODVLJXLHQWH

<libros>
<libro id="1" pag="101">
<título>El Quijote</título>
<autor>Cervantes</autor>
</libro>
<libro id="2">
<título>El principito</título>
<autor>Saint Exupery</autor>
</libro>
<libro id="3" pag="303">
<título>Crimen y castigo</título>
</libro>


2EVpUYHVH TXH HO SULPHU QRGR /D ,OtDGD KD VLGR HOLPLQDGR 3RU HOOR (O 4XLMRWH VH
FRQYLHUWH HQ HO QRGR  \ GHO QRGR  (O 3ULQFLSLWR VH HOLPLQD HO DWULEXWR SDJ
SDJ 3RU
~OWLPRHOVXEQRGR$XWRUHVHOLPLQDGRGHOQRGR&ULPHQ\FDVWLJR

0RGLILFDUQRGRVWDPELpQHVPX\VHQFLOOR3ULPHURVHWLHQHTXHLQGLFDUHOQRGR
RHODWULEXWR\DVLJQDUOHHOYDORUGHVHDGR6HFRPHQWDODVHQWHQFLDWUDFHGHOEORTXH
DQWHULRU\VHHVFULEHHQVHJXLGDHOVLJXLHQWHFyGLJR

//15.
ejemplo5.libro[0].título = "El Quijote de la Mancha";
ejemplo5.libro[0].autor = "Miguel de Cervantes Saavedra";
ejemplo5.libro[0].@pag = 880;
trace(ejemplo5);


$OHMHFXWDUODSHOtFXODVHSRGUiQREVHUYDUORVFDPELRVHQHOSULPHUQRGR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

<libros>
<libro id="1" pag="880">
<título>El Quijote de la Mancha</título>
<autor>Miguel de Cervantes Saavedra</autor>
</libro>

/HFWXUDGHXQDUFKLYR;0/

3DUDOHHUXQDUFKLYRH[WHUQRVHQHFHVLWDUiQODVFODVHV85//RDGHU\85/5HTXHVW/D
SULPHUD SHUPLWH OHHU DUFKLYRV GH WLSR WH[WR ELQDULRV R DUFKLYRV GH YDULDEOHV
6H XWLOL]D SRU OR JHQHUDO SDUD DSOLFDFLRQHV TXH UHTXLHUHQ XQ SURFHVR GH GDWRV 6H
SXHGHPRQLWRUHDUHOSURFHVRGHFDUJDFRQODVSURSLHGDGHVE\WHV/RDGHG\E\WHV7RWDO
\WDPELpQVHSXHGHFRQWURODUSRUPHGLRGHHYHQWRV

/D FODVH 85/5HTXHVW FDSWXUD WRGD OD LQIRUPDFLyQ GH XQD OODPDGD D XQD
VROLFLWXG +773 3RU ~OWLPR VH QHFHVLWDUi OD FODVH (YHQW (O DUFKLYR TXH VH OHHUi HV
[PO([WHUQR[PO(OLQLFLRGHOPLVPRHV
[PO([WHUQR[PO

<libros>
<libro ISBN="0909090909">
<título>La Ilíada</título>
<autor>
<apellido>Homero</apellido>
<nombre/>
</autor>
</libro>
<libro ISBN="0234567889">
<título>El principito</título>
<autor>
<apellido>Saint Exupery</apellido>
<nombre/>
</autor>
</libro>
<libro ISBN="56768895445">

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

<título>El Quijote</título>
<autor>
<apellido>Cervantes</apellido>
<nombre>Miguel</nombre>
</autor>
</libro>

</libro>


(QHODUFKLYR)ODVHFDPELDHOFDPSR'RFXPHQW&ODVVSRUPLV&ODVHV;0/H[WHUQR
6HDEUHXQQXHYRDUFKLYRGH$FWLRQ6FULSW\VHJUDEDHQODFDUSHWDPLV&ODVHV
FRQHOQRPEUH;0/H[WHUQR


7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
8QD SUHJXQWD TXH SXHGH DSDUHFHU HQ VX H[DPHQ GH FHUWLILFDFLyQ HV ¢&RQ TXp
HOHPHQWR SXHGH FDUJDU XQ REMHWR ;0/" &RPR OR KHPRV YLVWR HVH REMHWR HV XQ
85//RDGHU


6HHVFULEHHOVLJXLHQWHFyGLJRHQHODUFKLYRGHFODVH

package misClases{
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;

public class XMLexterno extends Sprite {


private var xmlExterno:XML;
private var loader:URLLoader = new URLLoader();

public function XMLexterno() {


var request:URLRequest = new

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

URLRequest("xmlExterno.xml");
loader.load(request);
loader.addEventListener(Event.COMPLETE,
onComplete);
}
function onComplete(event:Event):void {
var loader:URLLoader = event.target as
URLLoader;
if (loader != null) {
xmlExterno = new XML(loader.data);
trace(xmlExterno.toXMLString());
} else {
trace("¡No se puede cargar el
archivo!");
}
}
}
}


3ULPHURVHFUHDHOREMHWR;0/ [PO([WHUQR \HOREMHWRGHFDUJD ORDGHU 
'HQWURGH ODIXQFLyQVHFUHDHOREMHWR TXHFRQWURODUiODGHVFDUJDGHODUFKLYR
UHTXHVW \VHOHLQGLFDHODUFKLYRDEDMDU [PO([WHUQR[PO 
(QODVLJXLHQWHLQVWUXFFLyQVHLQGLFDTXHLQLFLHODFDUJD\VHLQGLFDHOREMHWRTXH
FRQWURODUi OD GHVFDUJD UHTXHVW  (Q OD ~OWLPD OtQHD GH OD IXQFLyQ VH OH LQGLFD OD
IXQFLyQFDOO%DFNSDUDFXDQGRODFDUJDVHDWHUPLQDGD

(QODIXQFLyQRQ&RPSOHWHTXHUHFLEHHOREMHWRHYHQWVHUHFLEHHOHVWDGRGHOD
FDUJD HQ HO REMHWR ORDGHU 6L HVWH REMHWR HV QXOR VLJQLILFD TXH OD FDUJD QR IXH
H[LWRVD 'H OR FRQWUDULR VH FRQYLHUWH HO SDUiPHWUR GDWD HQ XQ REMHWR ;0/
)LQDOPHQWH VH PXHVWUD HO FRQWHQLGR GHO REMHWR ;0/ $KRUD SXHGHQ DSOLFDUVH ORV
PpWRGRV\SURSLHGDGHVYLVWRVHQODSULPHUDSDUWHGHOFDStWXOR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
3'(&(57,),&$&,Ð1
8QDSUHJXQWDHQWXH[DPHQ$&(SRGUtDVHU¢&yPRWUDEDMDUtDVFRQORVGDWRVDQWHVGH
TXHWHUPLQHODFDUJDVLHODUFKLYRHVPX\JUDQGH"ODUHVSXHVWDHVSRUPHGLRGHXQ
REMHWR85/6WUHDP\ODSURSLHGDGE\WHV$YDLODEOH

(MHPSORGHVDUUROORGHXQMXHJRGHWULYLD

$KRUD KDJDPRV XQD DSOLFDFLyQ SDUD XQ MXHJR GH WULYLD VREUH ODV FDSLWDOHV GHO
PXQGR /HHUHPRV XQ DUFKLYR ;0/ FRQ FDGD XQD GH ODV  SUHJXQWDV 7RGRV ORV
UHJLVWURVWLHQHQWUHVRSFLRQHV(QHVWDWULYLDVyORVHUHDOL]DXQDSUHJXQWDDODYH]$O
VHU FRQWHVWDGD FRPR FRUUHFWD VH DYDQ]D D OD VLJXLHQWH KDVWD WHUPLQDU /R
LPSRUWDQWHHQHOHMHUFLFLRHVODOHFWXUD\WUDWDPLHQWRGHODUFKLYR;0/
• $EUDHODUFKLYRWULYLDIODGHHMHPSOR
• (QHODUFKLYRWHQGUiORVFDPSRVGHWH[WR\ERWRQHVQHFHVDULRVSDUD
GHVFDUJDUODVSUHJXQWDVHQODSDQWDOOD


)LJXUD1RPEUHGHODVLQVWDQFLDVGHOHMHUFLFLR
)LJXUD

• (QODFDUSHWDGDWRVVHWLHQHHODUFKLYRSUHJXQWDV[PO/DHVWUXFWXUDGHODV
SUHJXQWDVHVODVLJXLHQWH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

)LJXUD(MHPSORGHXQDSUHJXQWDGHODUFKLYR;0/
)LJXUD
• 6HFUHDXQQXHYRDUFKLYR$FWLRQ6FULSW\VHJUDEDHQODFDUSHWDPLV&ODVHV
FRQHOQRPEUHGH7ULYLDDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.events.EventDispatcher;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.net.URLRequestMethod;
import flash.net.URLLoaderDataFormat;
import flash.events.IOErrorEvent;

public class Trivia extends Sprite {


protected var enviar:URLRequest = new
URLRequest();
protected var recibir:URLLoader = new
URLLoader();
public var data:*;
private var archivo:String =
"datos/preguntas.xml";

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

private var preguntas_array:Array = new Array();


private var numReg:uint;
private var numPreg:uint;

public static const


CARGA_TERMINADA:String="cargaTerminada";

public function Trivia() {


//
enviar=new URLRequest(archivo);
//

recibir.dataFormat=URLLoaderDataFormat.TEXT;

recibir.addEventListener(Event.COMPLETE,onDatosCargados
);

recibir.addEventListener(IOErrorEvent.IO_ERROR,onErrorC
arga);
//
recibir.load(enviar);
//
a_btn.addEventListener(MouseEvent.CLICK,
onSelecciona);
b_btn.addEventListener(MouseEvent.CLICK,
onSelecciona);
c_btn.addEventListener(MouseEvent.CLICK,
onSelecciona);

siguiente_btn.addEventListener(MouseEvent.CLICK,
onSiguiente);
//
siguiente_btn.visible = false;
}

private function onSiguiente(e:MouseEvent):void {


numPreg++
if(numPreg <= preguntas_array.length){
proximaPregunta();
} else {


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 &UHDUREMHWRV;0/FRQ$6

resultado_txt.text = "Gracias por


realizar esta trivia";
}
}

protected function
onSelecciona(e:MouseEvent):void {
var boton:String = e.target.name;
var correcto:Boolean = false;
if(boton=="a_btn" &&
preguntas_array[numPreg].ok=="1"){
correcto = true;
}
if(boton=="b_btn" &&
preguntas_array[numPreg].ok=="2"){
correcto = true;
}
if(boton=="c_btn" &&
preguntas_array[numPreg].ok=="3"){
correcto = true;
}
if(correcto){
resultado_txt.text = "Correcto"
siguiente_btn.visible = true;
} else {
resultado_txt.text = "Fíjate bien,
ésa no es la respuesta"
}
}

protected function
onDatosCargados(event:Event):void {
XML.ignoreWhitespace=true;
data= new XML(recibir.data);
preguntas_array = [];
numPreg = 0;
//Hace el array de preguntas
numReg = data.pregunta.length();
//Evalúa el no de preg. en el archivo

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

;0/ 

var objeto:Object;
for (var i = 0; i<numReg; i++) {
//Genera Vector y vacía variables
objeto = new Object();
objeto.num =
data.pregunta[i].num.text();
objeto.texto =
data.pregunta[i].texto.text();
objeto.op1 =
data.pregunta[i].opcion1.text();
objeto.op2 =
data.pregunta[i].opcion2.text();
objeto.op3 =
data.pregunta[i].opcion3.text();
objeto.ok =
data.pregunta[i].correcta.text();
objeto.km =
data.pregunta[i].km.text();
preguntas_array.push(objeto)
}
proximaPregunta();
}

protected function proximaPregunta() {


siguiente_btn.visible = false;
resultado_txt.text = "";
numPreg_txt.text =
(numPreg+1)+"/"+preguntas_array.length;
pregunta_txt.text =
preguntas_array[numPreg].texto;
opcion1_txt.text =
preguntas_array[numPreg].op1;
opcion2_txt.text =
preguntas_array[numPreg].op2;
opcion3_txt.text =
preguntas_array[numPreg].op3;
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 $PDQHUDGHFRQFOXVLyQ

protected function onErrorCarga(event:Event):void


{
trace("Error en carga");
}
}
}

$PDQHUDGHFRQFOXVLyQ

8QD GH ODV FODVHV PiV LPSRUWDQWHV SDUD GHVDUUROODU DSOLFDFLRQHV FRQ )ODVK HV OD
FODVH;0/GHODTXHDSUHQGLy
• /DVEDVHVGH;0/
• &yPRFUHDUREMHWRV;0/FRQ$6
• &yPRDxDGLUQRGRV;0/FRQ$6
• &yPRERUUDU\PRGLILFDUQRGRV\DWULEXWRV
• &yPRUHDOL]DUODOHFWXUDGHXQDUFKLYR;0/

&RQHVWDVEDVHVGHVDUUROOyXQMXHJRGHWULYLD

&RPR VH SXGR DSUHFLDU HV PX\ SRWHQWH \ VL HO OHFWRU FRQRFH OD YHUVLyQ
DQWHULRUQRWDUiTXHHVWDYHUVLyQHVPXFKRPiVVHQFLOOD

$KRUDFRQRFHUHPRVXQDFODVHPX\FRPSOHWD\TXHQRVD\XGDUiDFUHDUHIHFWRV
PX\LQWHUHVDQWHVODFODVH6KD
6KDSH
6KDSH
SH





$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


Dibujo con
con
ActionScript 3.0 9



,QWURGXFFLyQ
(QODVYHUVLRQHVDQWHULRUHVGH$FWLRQ6FULSWVHXWLOL]DEDHO$3,GHGLEXMRHQXQFOLSGH
SHOtFXODYDFtR(QHVWDYHUVLyQVHGLEXMDUiHQREMHWRVGHODFODVH6KDSH
6KDSHORVFXDOHV
6KDSH
VRQPiVOLJHURVSRUORTXHHVQHFHVDULRLPSRUWDUODFODVHSDUDGLEXMDUHQHOORV
(OSULPHUSDVRHVLPSRUWDUODFODVHTXHVHHQFXHQWUDHQHOSDTXHWHGLVSOD\6H
UHTXLHUHFUHDUXQREMHWRGHODFODVH6KDSH\VHGLEXMDUiHQODSURSLHGDGJUDSKLFV
/RVREMHWRV6KDSHVRQD~QPiVSHTXHxRVTXHORVREMHWRV6SULWHVLQHPEDUJRORV
SULPHURVQRSXHGHQUHFLELUHYHQWRVGHOPRXVH

0pWRGROLQH6W\OH 

(VWH PpWRGR SHUPLWH HO HVWLOR GH OD SOXPD FRQ OD TXH VH GLEXMDUi &X\D VLQWD[LV
JHQHUDOHV

shape.graphics.lineStyle([grosor de la línea [, color RGB


[,alfa]]]);

&RPRVHSXHGHREVHUYDUORVSDUiPHWURVVRQRSFLRQDOHV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QWURGXFFLyQ


1RWD

(VXQDFRQYHQFLyQWLSRJUiILFDTXHORVSDUiPHWURVRSFLRQDOHVHQXQDVLQWD[LVJHQHUDO
VHDQHVFULWRVHQWUHFRUFKHWHV

• *URVRUGHOtQHD,QGLFDHOJURVRUGHODOtQHDGHGLEXMRHQSXQWRV\WLHQHXQUDQJRGH
D6LQRLQGLFDQLQJ~QYDORUODOtQHDQRVHGLEXMD(OHVXQYDORUPX\ILQR\
XQ YDORU VXSHULRU D  )ODVK WRPDUi  'HVSXpV GH YHU ORV GRV VLJXLHQWHV
PpWRGRVVHHQVD\DUiXQHMHPSOR
• &RORU 5*% (V HO YDORU HQ KH[DGHFLPDO FRQ HO FXDO VH GLEXMDUi OD OtQHD HQ OD
FRPSRVLFLyQGHFRORUHV5RMR 5HG 9HUGH *UHHQ \$]XO %OXH 3RUHMHPSORHOURMR
HV [)) HO YHUGH [)) \ HO $]XO [)) (O FRORU SRU GHIDXOW HV HO
QHJUR[
• $OID(VHOYDORUHQWHURHQWUH\SDUDHOPDQHMRGHOFDQDODOIDGHOFRORU3RU
GHIDXOWHODOIDHV VyOLGR 

0pWRGRPRYH7R 

(VWHPpWRGRSHUPLWHPRYHUVHHQODVFRRUGHQDGDVGHOREMHWRGHGLEXMR\DVHDFOLS
GH SHOtFXOD 6SULWH R 6KDSH 5HFXpUGHVH TXH OD FRRUGHQDGD RULJHQ HQ )ODVK HV OD
HVTXLQDVXSHULRUL]TXLHUGD(OHMH´[µHVKRUL]RQWDO\HOHMH´\µHVYHUWLFDO/DVLQWD[LV
JHQHUDOHV

shape.graphics.moveTo(x, y);

3RU HMHPSOR VL VH GDQ FRRUGHQDGDV GH    HQ HVH SXQWR )ODVK LQLFLDUi
FXDOTXLHULQVWUXFFLyQGHGLEXMRTXHVHOHLQGLTXH

0pWRGROLQH7R 

&RQ HVWH PpWRGR VH SXHGH WUD]DU XQD OtQHD GHVGH HO SXQWR GHWHUPLQDGR KDVWD HO
SXQWRTXHVHOHLQGLTXHHQODVFRRUGHQDGDVGHOPpWRGROLQH7R 6XVLQWD[LVJHQHUDO
HVODVLJXLHQWH

shape.graphics.lineTo(x, y);

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

'RQGH ´[µ HV HO YDORU KRUL]RQWDO \ ´\µ HV HO YDORU YHUWLFDO &RPR VH PHQFLRQy ODV
FRRUGHQDGDVRULJHQVHHQFXHQWUDQHQODHVTXLQDVXSHULRUL]TXLHUGDHQUHODFLyQFRQ
HO FOLS GH SHOtFXOD 6L VH WRPD FRPR EDVH D URRW ODV FRRUGHQDGDV VRQ ODV PLVPDV
TXHODSHOtFXODSULQFLSDO

(MHUFLFLRGLEXMDUGRVWULiQJXORV
(QHVWHHMHUFLFLRGLEXMDUHPRVXQSDUGHWULiQJXORVFRQHO$3,GHGLEXMR
• 6HDEUHXQDUFKLYR$6\VHQRPEUD'LEXMRIODHQODFDUSHWDGHWUDEDMR
• (QHOFDPSR'RFXPHQW&ODVVVHHVFULEHHOQRPEUHGHODUFKLYRGHFODVHTXH
VHKDUiHQXQPRPHQWRPLV&ODVHV'LEXMR
• 6HDEUH XQDUFKLYR $FWLRQ6FULSW\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHVWHDUFKLYRVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.display.Shape;

public class Dibujo extends Sprite {


public function Dibujo() {
var altura:uint = 100;
var triangulo:Shape = new Shape();
// Triángulo rojo
triangulo.graphics.lineStyle(5,0xFF0000)
triangulo.graphics.moveTo(altura/2, 0);
triangulo.graphics.lineTo(altura, altura);
triangulo.graphics.lineTo(0, altura);
triangulo.graphics.lineTo(altura/2, 0);
// Triángulo verde
triangulo.graphics.lineStyle(5,0x00FF00)
triangulo.graphics.moveTo(200 + altura/2,);
triangulo.graphics.lineTo(200 + altura, altura);
triangulo.graphics.lineTo(200, altura);
triangulo.graphics.lineTo(200 + altura/2, 0);
addChild(triangulo);
}
}
}

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRGLEXMDUGRVWULiQJXORV


7,3'(&(57,),&$&,Ð
7,3'(&(57,),&$&,Ð1
(O $3, GH GLEXMR QR HV XQR GH ORV IDYRULWRV HQ ODV SUHJXQWDV GH ORV H[iPHQHV GH
FHUWLILFDFLyQ8QDGHODVSUHJXQWDVDOUHVSHFWRHVODIXQFLyQGHODSURSLHGDG*UDSKLFV

(OUHVXOWDGRGHEHUiVHUXQWULiQJXORURMR\RWURYHUGHFRPRORPXHVWUDOD)LJ

)LJXUD7ULiQJXORVGLEXMDGRVFRQHO$3,GHGLEXMR
)LJXUD

0pWRGRVEHJLQ)LOO \HQG)LOO 

(VWRVPpWRGRVSHUPLWHQUHOOHQDUXQREMHWRTXHVHKDFUHDGRFRQORVRWURVPpWRGRV
GHGLEXMR6HPDUFDHOLQLFLRGHOUHOOHQRFRQHOPpWRGREHJLQ)LOO \VHFRQFOX\HFRQ
HQG)LOO /DVLQWD[LVGHORVPpWRGRVHV

shape.graphics.beginFill(color, alfa);
Sentencias de dibujo
shape.graphics.endFill();

• FRORU(VHOFRORUHQQRWDFLyQKH[DGHFLPDOLJXDODORVRWURVPpWRGRV
FRORU
• DOID
DOID (V HO YDORU HQWHUR GH  D  GRQGH  HV VyOLGR \  HV
FRPSOHWDPHQWHWUDQVSDUHQWH\VLQFRORU

6LHOREMHWRQRHVFHUUDGRQRVHHIHFWXDUiHOUHOOHQR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

(MHPSORFRQWRUQHDU\UHOOHQDUGRVWULiQJXORV

$KRUD KDUHPRV D ORV GRV WULiQJXORV SHUR HVWD YH] ORV FRQWRUQRV GH ODV OtQHDV VRQ
QHJURV\HOUHOOHQRVHUiURMR\YHUGHUHVSHFWLYDPHQWH
• (QHODUFKLYRGLEXMRIODVHFDPELDHO'RFXPHQWFODVVSRUHODUFKLYRTXHVH
FUHDUiHQVHJXLGDPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$FWLRQ6FULSW\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUH'LEXMRDV
• 6HHVFULEHHOVLJXLHQWHJXLyQHQHODUFKLYRGHFODVH

package misClases{
import flash.display.Sprite;
import flash.display.Shape;

public class Dibujo01 extends Sprite {


public function Dibujo02() {
var altura:uint = 100;
var triangulo:Shape = new Shape();
// Triángulo rojo
triangulo.graphics.lineStyle(5,0x000000);
triangulo.graphics.beginFill(0xff0000);
triangulo.graphics.moveTo(altura/2, 0);
triangulo.graphics.lineTo(altura, altura);
triangulo.graphics.lineTo(0, altura);
triangulo.graphics.lineTo(altura/2, 0);
// Triángulo verde
triangulo.graphics.lineStyle(5,0x000000);
triangulo.graphics.beginFill(0x00ff00);
triangulo.graphics.moveTo(200 + altura/2, 0);
triangulo.graphics.lineTo(200 + altura, altura);
triangulo.graphics.lineTo(200, altura);
triangulo.graphics.lineTo(200 + altura/2, 0);
addChild(triangulo);
}
}
}




$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRGLEXMDUGRVWULiQJXORV

(OUHVXOWDGRVHDSUHFLDHQOD)LJ

)LJXUD7ULiQJXORVFRQUHOOHQR
)LJXUD

6L IDOWDUD OD ~OWLPD OtQHD ORV PpWRGRV EHJLQ)LOO  \ HQG)LOO  ´FRPSOHWDUiQµ OD IRUPD
JHRPpWULFD\HIHFWXDUiQHOUHOOHQR3DUDIDPLOLDUL]DUVHFRQHVWRVPpWRGRVFiPELHVH
HOFRORU\HODOID

0pWRGRVEHJLQ*UDGLHQW)LOO \HQG)LOO 

&RQHOPpWRGREHJLQ*UDGLHQW)LOO VHPDUFDHOLQLFLRGHXQUHOOHQRGHJUDGDGRGHQWUR
GH XQD ILJXUD FUHDGD FRQ ORV PpWRGRV GH GLEXMR (VWD RSHUDFLyQ VH FLHUUD FRQ HO
PpWRGRHQG)LOO YLVWRHQODVHFFLyQDQWHULRU
/DVLQWD[LVGHEHJLQ*UDGLHQW)LOO HV

Shape.graphics.beginGradientFill(tipo de relleno, colores,


alfas, ratios, matriz);

/RVSDUiPHWURVVRQ
• WLSR GH UHOOHQR
UHOOHQR 6H WLHQHQ GRV RSFLRQHV ´OLQHDUµ TXH HV XQ GHJUDGDGR
OLQHDO\´UDWLRµTXHHVXQGHJUDGDGRFLUFXODU
• FRORUHV
FRORUHV$UUHJORGHFRORUHVHQIRUPDWRKH[DGHFLPDOTXHVHXWLOL]DUiQHQHO
GHJUDGDGRGHODIRUPDGLEXMDGD
• DOIDV(VXQDUUHJORFRQORVYDORUHVDOIDHQFRUUHVSRQGHQFLDFRQODPDWUL]GH
DOIDV
FRORUHV/RVYDORUHVYDQGHOD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

• UDWLRV
UDWLRV (V XQ DUUHJOR UHODFLRQDGR FRQ OD PDWUL] GH FRORUHV 6RQ Q~PHURV
HQWHURVTXHYDQGHODO(VWHYDORULQGLFDODDQFKXUDHQHOTXHHOFRORU
VHPXHVWUDDOFLHQSRUFLHQWR
• PDWUL](VHOFRQMXQWRGHSDUiPHWURVGHWUDQVIRUPDFLyQ\SXHGHVHUGHGRV
PDWUL]
WLSRV
 7LSRDEFGHIJKL
 7LSRWLSRGH0DWUL][\ZKU

(MHUFLFLRFXDGURFRQFRORUHVGHVYDQHFLGRV
• $EUDXQDUFKLYR$FWLRQ6FULSW*XiUGHORHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUHGH'LEXMRDV
• (QHVWHDUFKLYRHVFULEDHOVLJXLHQWHFyGLJR


package misClases{
import flash.display.*;
import flash.geom.Matrix;

public class Dibujo03 extends Sprite{


public function Dibujo02() {
var tipo:String = GradientType.LINEAR;
var colores:Array = [0xFF0000, 0xFFFF00];
var alphas:Array = [1, 1];
var ratios:Array = [0, 255];
var metodo:String = SpreadMethod.PAD;
var interpolacion:String =
InterpolationMethod.LINEAR_RGB;
var focalPtRatio:Number = 0;
var matrix:Matrix = new Matrix();
var ancho:Number = 50;
var altura:Number = 100;
var rotacion:Number = Math.PI/4;// 90°
var tx:Number = 25;
var ty:Number = 0;
matrix.createGradientBox(ancho, altura,
rotacion, tx, ty);
var cuadro:Shape = new Shape;
cuadro.graphics.beginGradientFill(tipo,

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRFXDGURFRQFRORUHVGHVYDQHFLGRV

colores,
alphas,
ratios,
matrix,
metodo,
interpolacion,
focalPtRatio);
cuadro.graphics.drawRect(0, 0, 100, 100);
addChild(cuadro);
}
}
}


(OUHVXOWDGRHVXQGHVYDQHFLGRGHYHUGHDURMR
var colores:Array = [0xFF0000, 0xFFFF00];

'HFRORUHVVyOLGRV

var alphas:Array = [1, 1];


/DFRPELQDFLyQGHORVFRORUHVLQLFLDHQ\WHUPLQDODWUDQVIRUPDFLyQHQOD~OWLPD
SDUWH  

var ratios:Array = [0, 255];


/DPDWUL]LQGLFD

matrix.createGradientBox(ancho, altura, rotacion, tx,


ty);

(OUHVXOWDGRGHEHVHUDOJRSDUHFLGRDODSDQWDOODTXHPXHVWUDOD)LJ

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

)LJXUD&XDGURUHOOHQRFRQJUDGLHQWH GHJUDGDGR 
)LJXUD

2WURHMHPSORGHJUDGLHQWHVVHSXHGHHQFRQWUDUHQHODUFKLYR'LEXMRDV

0pWRGRGUDZ5HFW

&RQHVWHPpWRGRVHSRGUiGLEXMDUIiFLOPHQWHXQUHFWiQJXOR/DVLQWD[LVGHOPLVPR
HVH[FOXVLYRGH$6

shape.graphics.drawRect(x:Number, y:Number, ancho:Number,


largo:Number);


$QWHVGHXVDUHVWHPpWRGRHVQHFHVDULRGHILQLUHOWLSRGHOtQHDGHOFRQWRUQR\HOWLSR
GHUHOOHQR8QHMHPSORGHOPLVPRSXHGHVHUHOVLJXLHQWH

(MHUFLFLRGHILQLUOtQHDGHFRQWRUQR\WLSRGHUHOOHQR
• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRGHILQLUOtQHDGHFRQWRUQR\WLSRGHUHOOHQR


package misClases{
import flash.display.Sprite;
import flash.display.Shape;

public class Dibujo04 extends Sprite {


public function Dibujo04() {
var lado:uint = 100;
var cuadrado:Shape = new Shape();
cuadrado.graphics.beginFill(0xFF0000,
0.25);
cuadrado.graphics.drawRect(0, 0, lado,
lado);
cuadrado.graphics.beginFill(0x00FF00, 0.5);
cuadrado.graphics.drawRect(200, 0, lado,
lado);
cuadrado.graphics.beginFill(0x0000FF, 1);
cuadrado.graphics.drawRect(400, 0, lado,
lado);
cuadrado.graphics.endFill();
addChild(cuadrado);
}
}
}


/DVDOLGDGHEHUiVHUODTXHPXHVWUDOD)LJ

)LJXUD&XDGUDGRVFRQHOFDQDODOID
)LJXUD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

0pWRGRFXUYH7R 

(VWH PpWRGR HV KHUHQFLD GH ODV YHUVLRQHV DQWHULRUHV GH $FWLRQ6FULSW \ FRQ pO VH
SXHGHQKDFHUFXUYDV/DVLQWD[LVJHQHUDOHV


Shape.graphics.curveTo(controlX ,controlY ,anclajeX


,anclajeY)

• FRQWURO;
FRQWURO; 1~PHUR HQWHUR TXH HVSHFLILFD XQD SRVLFLyQ KRUL]RQWDO
UHODWLYDDOSXQWRGHUHJLVWURGHOFOLSGHSHOtFXODSULQFLSDOGHOSXQWRGH
FRQWURO
• FRQWURO< 1~PHUR HQWHUR TXH HVSHFLILFD XQD SRVLFLyQ YHUWLFDO UHODWLYD
FRQWURO<
DOSXQWRGHUHJLVWURGHOFOLSGHSHOtFXODSULQFLSDOGHOSXQWRGHFRQWURO
• DQFODMH; 1~PHUR HQWHUR TXH HVSHFLILFD XQD SRVLFLyQ KRUL]RQWDO
UHODWLYDDOSXQWRGHUHJLVWURGHOFOLSGHSHOtFXODSULQFLSDOGHOVLJXLHQWH
SXQWRGHDQFODMH
• DQFODMH<
DQFODMH< 1~PHURHQWHURTXHHVSHFLILFDXQDSRVLFLyQYHUWLFDOUHODWLYD
DOSXQWRGHUHJLVWURGHOFOLSGHSHOtFXODSULQFLSDOGHOVLJXLHQWHSXQWRGH
DQFODMH

(MHUFLFLRGLEXMDUXQDFXUYDDSDUWLUGHWUHVSXQWRV
(OFyGLJRSDUDXQDFXUYDFRQVXVUHVSHFWLYRVWUHVSXQWRVHVHOVLJXLHQWH
• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.display.Shape;
public class Dibujo05 extends Sprite {
public function Dibujo05() {
var cuadrado:Shape = new Shape();

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRGLEXMDUXQDFXUYDDSDUWLUGHWUHVSXQWRV

cuadrado.graphics.lineStyle(5,0x000000);
cuadrado.graphics.moveTo(300,300 );
cuadrado.graphics.curveTo(400,300,400,200
);
addChild(cuadrado);
}
}
}


$OHMHFXWDUODSHOtFXODVHREWHQGUiODFXUYDFRQORVWUHVSXQWRVTXHPXHVWUDOD)LJ


)LJXUD'LEXMRGHXQDFXUYD
)LJXUD

$OSULQFLSLRFXHVWDXQSRFRXELFDUDFDGDXQRGHORVSDUiPHWURV/DVLJXLHQWH
LPDJHQSXHGHD\XGDUQRVSDUDFRPSUHQGHUHVWHPpWRGR


)LJXUD
)LJXUD(MHPSORGHXQVHJPHQWRGHFXUYD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

(MHUFLFLRFtUFXORDSDUWLUGHFXDWURFXUYDV
6LVHGHVHDKDFHUXQFtUFXOR QRPX\SHUIHFWR VHQHFHVLWDQFXDWURFXUYDV
• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.display.Shape;

public class Dibujo06 extends Sprite {


public function Dibujo06() {
var curva:Shape = new Shape();
curva.graphics.lineStyle(5,0x000000);
curva.graphics.moveTo(200,200 );
curva.graphics.curveTo(300,200,300,100 );
curva.graphics.curveTo(300,0,200,0 );
curva.graphics.curveTo(100,0,100,100 );
curva.graphics.curveTo(100,200,200,200 );
addChild(curva);
}
}
}


(OUHVXOWDGRVHUiHOFtUFXORTXHPXHVWUDOD)LJ

)LJXUD
)LJXUD8QFtUFXORUHDOL]DGRDSDUWLUGHFXDWURVHJPHQWRVGHFXUYD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRFtUFXORUHDOL]DGRFRQRFKRVHJPHQWRV

'HEH UHFRUGDUVH TXH )ODVK XWLOL]D ODV FXUYDV GH %H]LHU FXDGUiWLFDV )LJ  
SDUD KDFHU FXUYDV YHFWRULDOHV 3DUD VLPXODU XQ FtUFXOR HV QHFHVDULR RFKR GH HVWDV
FXUYDV&RQODVFXUYDVGH%H]LHUF~ELFDV )LJ ODVFXDOHVXWLOL]DQODPD\RUtDGH
ORVSDTXHWHVGHGLVHxRWDQVyORVRQQHFHVDULDVFXDWURFXUYDV(VSRUHVRTXHHQHO
HMHPSORDQWHULRUHO´FtUFXORµVHYHXQSRFRDIHFWDGR

)LJXUD
)LJXUD(MHPSORVGHFXUYDVGH%H]LHU

'RQGHHOSXQWR´DµHVHORULJHQHQTXHVHHQFXHQWUDODSOXPDYLUWXDOHOSXQWR
´Eµ VRQ ORV SXQWRV GH FRQWURO ORV GRV SULPHURV SDUiPHWURV  \ HO SXQWR ´Fµ HV OD
FRRUGHQDGDILQDORGHDQFODMH
3DUD XQ FtUFXOR PiV DSUR[LPDGR KHFKR FRQ RFKR FXUYDV VH UHTXLHUH PiV
PDWHPiWLFDV

(MHUFLFLRFtUFXORUHDOL]DGRFRQRFKRVHJPHQWRV
• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.display.Shape;

public class Dibujo07 extends Sprite {


public function Dibujo07() {
var cuadrado:Shape = new Shape();

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

// definir x en el punto
//central del círculo
var x:Number = 200;
// definir y en el punto central
//del círculo
var y:Number = 200;
// el radio es la mitad del ancho,
// así que 100/2 = 50.
var radio:Number = 50;
// cada segmento es de 45 grados,
// por lo tanto convertir a radianes.
var theta:Number = (45/180)*Math.PI;
// esto obtiene el radio del
// punto de control
var ctrlradio:Number = radio/Math.cos(theta/2);
// definir lineStyle
cuadrado.graphics.lineStyle(5,0x000000);
//se inicia el círculo en el
//extremo derecho.
cuadrado.graphics.moveTo(x+radio, y);
// comenzar el dibujo en el ángulo 0;
var angulo:Number = 0;
var anguloMid:Number = 0;
var cx:Number = 0;
var cy:Number = 0;
var px:Number = 0;
var py:Number = 0;
// este bucle dibuja el círculo
// en 8 segmentos
for (var i = 0; i<8; i++) {
// incrementar los ángulos
angulo += theta;
anguloMid = angulo-(theta/2);
// calcular el punto de control
Cx = +Math.cos(anguloMid)*(ctrlradio);
Cy = +Math.sin(anguloMid)*(ctrlradio);
// calcular el punto final

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRFtUFXORUHDOL]DGRFRQRFKRVHJPHQWRV

px = x+Math.cos(angulo)*radio;
py = y+Math.sin(angulo)*radio;
// dibujar el segmento de círculo
cuadrado.graphics.curveTo(cx,cy,px,
py);
}
addChild(cuadrado);
}
}
}


(OUHVXOWDGRVHUiDOJRPiVSDUHFLGRDXQFtUFXORFRPRHOTXHVHYHHQOD)LJ

)LJXUD
)LJXUD&tUFXORUHDOL]DGRFRQRFKRVHJPHQWRV
([LVWHRWUDIRUPDGHKDFHUXQIDOVRFtUFXOR\DTXHHQUHDOLGDGQRHVXQFtUFXOR
VLQRXQJUDQSXQWRHQODSDQWDOOD3XHVWRTXHODGLVWDQFLDPtQLPDSDUDGLEXMDUXQ
WUD]RYLVLEOHSDUD)ODVKHVGHSL[HOHV\TXHSRUGHILQLFLyQ)ODVKUHGRQGHDODV
HVTXLQDVGHORVWUD]RVVLVHKDFHXQWUD]RORVXILFLHQWHPHQWHSHTXHxRHQORQJLWXG
SHURFRQXQDOtQHDPX\JUXHVD DUULEDGHSL[HOHVHQHOSLQFHO HOUHVXOWDGRVHUi
XQJUDQSXQWRTXHDSDUHQWDVHUXQFtUFXORSHURTXHQRORHV\DTXHVLVHGHIRUPDQ
VXVHVFDODVHOUHVXOWDGRVHUiXQDOtQHDDPSOLDGD

(MHUFLFLR

• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.display.Shape;

public class Dibujo07 extends Sprite {


public function Dibujo07() {
var circulo:Shape = new Shape();
circulo.graphics.lineStyle(150,0xFF0000);
circulo.graphics.moveTo(200,200);
circulo.graphics.lineTo(200.15,200);
addChild(circulo);
}
}
}


(OUHVXOWDGRVHUiFRPRHOGHOD)LJ

)LJXUD
)LJXUD8QFtUFXORTXHHQUHDOLGDGHVXQHQRUPHSXQWR

1RWD

6LVHGHVHDXQDH[SOLFDFLyQPiVH[WHQVDGHODVFXUYDVGH%H]LHUHQ)ODVKSXHGH
FRQVXOWDUVHODILFKDWpFQLFDQ~PHURGH)ODVKDXQTXHHVSDUDODYHUVLyQQR
SLHUGHYDOLGH]

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRFtUFXORFRQHOPpWRGRGUDZ&LUFOH 

0pWRGRGUDZ&LUFOH 

8QPpWRGRPXFKRPiVVHQFLOORH[FOXVLYRGH$6HVGUDZ&LUFOH3ULPHURVHGHEH
HVWDEOHFHU HO WLSR GH OtQHD FRQ OLQH6W\OH R OLQH*UDGLHQW6W\OH  \ VX UHOOHQR EHJLQ)LOO
EHJLQ%LWPDS)LOOREHJLQ*UDGLHQW)LOO RDOPHQRVXQRGHHOORV6XVSDUiPHWURVVRQ

shape.graphics.drawCircle(x:Number, y:Number, radio:Number);

8QHMHPSORVHQFLOORGHVXXVRHVHOVLJXLHQWH

(MHUFLFLRFtUFXORFRQHOPpWRGRGUDZ&LUFOH 
• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.display.Shape;
import flash.text.*;

public class Dibujo08 extends Sprite {


public function Dibujo08() {
var circulo:Sprite = new Sprite();
circulo.graphics.beginFill(0xFFCC00);
circulo.graphics.drawCircle(30, 30, 30);
var cadena:TextField = new TextField();
cadena.width = 200;
cadena.text = "HOLA";
cadena.x = 10;
cadena.y = 20;
circulo.addChild(cadena);
this.addChild(circulo);
}
}
}


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

(OUHVXOWDGRGHEHUiVHUXQFtUFXORDPDULOORFRQODOH\HQGD+2/$FRPRHOGHOD
)LJ  /RV FRQWRUQRV GH ODV OtQHDV WDPELpQ SXHGHQ WHQHU JUDGLHQWHV R
GHJUDGDGRVFRPRVHYHUiFRQHOVLJXLHQWHPpWRGR

)LJXUD&tUFXORUHDOL]DGRFRQHOPpWRGRGUDZ&LUFOH
)LJXUD


7,3'(&(57,),$&,Ð
7,3'(&(57,),$&,Ð1
8QDSRVLEOHSUHJXQWDHQHOH[DPHQGHFHUWLILFDFLyQ$&(HVVREUHORVQXHYRPpWRGRVGH
GLEXMRSRUHMHPSRGUDZ&LUFOHGUDZ(OOLSVHHWFpWHUD

0pWRGROLQH*UDGLHQW6W\OH 

&RPR VH KDEtD PHQFLRQDGR FRQ HVWH PpWRGR VH SXHGH FUHDU XQD OtQHD FRQ
JUDGLHQWHV DO LJXDO TXH SXHGH KDFHUVH FRQ HO ,'( GH )ODVK $QWHV GH VX XVR VH
GHEH XWLOL]DU XQ PpWRGR OLQH6W\OH  GH OR FRQWUDULR OD OtQHD VH PDQWHQGUi HQ
XQGHILQHG6XVLQWD[LVHV

shape.graphics.beginGradienFill(tipo de relleno, colores,


alfas, ratios, matriz , método:String, interpolación:String,
foco:Number);


/RV SDUiPHWURV VRQ VLPLODUHV D ORV GH EHJLQ)LOO SRU OR FXDO QR VH H[SOLFDUiQ 3DUD
PD\RU GHWDOOH VH SXHGH LU D OD D\XGD GHO SDTXHWH 8Q HMHPSOR GHO XVR GH HVWH
PpWRGRHVHOVLJXLHQWH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRFXDGURFRQGHJUDGDGRV

(MHUFLFLRFXDGURFRQGHJUDGDGRV
• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.*;
import flash.geom.Matrix;

public class Dibujo10 extends Sprite {


public function Dibujo10() {
var miShape:Shape = new Shape();
var matriz:Matrix = new Matrix();
matriz.createGradientBox(200, 40, 0, 0, 0);
miShape.graphics.lineStyle(5, 0);

miShape.graphics.lineGradientStyle(GradientType.LINEAR,
[0xFF0000,0x00FF00, 0x0000FF],
[1, 1, 1],
[0, 128, 255],
matriz);
miShape.graphics.drawRect(0, 0, 200, 40);
this.addChild(miShape);
}
}
}

(OUHVXOWDGRGHEHUiVHUFRPRHOTXHVHDSUHFLDHQOD)LJ

)LJXUD
)LJXUD&XDGURFRQGHJUDGDGRV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

0pWRGRGUDZ(OLSVH 

(O PpWRGR GUDZ(OOLSVH  HV PX\ VLPLODU DO GHO FtUFXOR FRQ OD GLIHUHQFLD GH TXH HQ
OXJDUGHGDUXQUDGLRVHOHGDUiXQYDORUSDUDHOODUJR\RWURSDUDHODQFKR

shape.graphics.drawEllipse(x:Number, y:Number, ancho:Number,


alto:Number);

8QHMHPSORVHQFLOORGHOXVRGHHVWHPpWRGRHVHOVLJXLHQWH

(MHUFLFLRGLEXMDUXQDHOLSVH
• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.display.Shape;

public class Dibujo10 extends Sprite {


public function Dibujo10() {
var elipse:Sprite = new Sprite();
elipse.graphics.beginFill(0xFFCC00);
elipse.graphics.drawEllipse(0,0, 200,130);
this.addChild(elipse);
}
}
}


)LJXUD8QDHOLSVHDPDULOOD
)LJXUD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHUFLFLRGLEXMDUXQDHOLSVH

0pWRGREHJLQ%LWPDS)LOO 

(VWHPpWRGRUHOOHQDUiHOiUHDGHGLEXMRFRQXQPDSDGHELWV6XVLQWD[LVHV

shape.graphics.beginBitmapFill(bitmap:BitmapData,
matrix:Matrix, repeat:Boolean, smooth:Boolean);

(MHUFLFLR

• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.*;
import flash.geom.*;

public class Dibujo12 extends Sprite {


public function Dibujo11() {
var bmpd:BitmapData = new
BitmapData(20,20);
var rect1:Rectangle = new
Rectangle(0,0,10,10);
var rect2:Rectangle = new Rectangle(0, 10,
10, 20);
var rect3:Rectangle = new Rectangle(10, 0,
20, 10);
var rect4:Rectangle = new Rectangle(10, 10,
20, 20);
bmpd.fillRect(rect1, 0xAA0000FF);
bmpd.fillRect(rect2, 0xAA00FF00);
bmpd.fillRect(rect3, 0xAAFF0000);
bmpd.fillRect(rect4, 0xAA999999);
//Preparar el relleno
var matrix:Matrix = new Matrix();
matrix.rotate(Math.PI/8);

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

var repeat:Boolean = true;


var smoothing:Boolean = true;
//
var elipse:Sprite = new Sprite();
elipse.graphics.beginFill(0xFFCC00);
elipse.graphics.beginBitmapFill(bmpd,
matrix, repeat, smoothing);
elipse.graphics.drawEllipse(0,0, 200,130);
elipse.graphics.endFill();
this.addChild(elipse);
}
}
}


6HREWHQGUiXQDHOLSVHFRQXQUHOOHQRFXDGULFXODGRFRPRHOGHOD)LJ

)LJXUD8QDHOLSVHFRQUHOOHQRGHELWPDS
)LJXUD

0RYLPLHQWRGHVKDSHVFRQGLEXMRV

(VWRV PpWRGRV VH SXHGHQ DSOLFDU SDUD GLEXMDU REMHWRV PiV FRPSOLFDGRV FRPR ODV
FXUYDVVLQXVRLGDOHV

(MHUFLFLRGLEXMRGHXQDIXQFLyQVHQRLGDO
• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

  (MHPSORGLEXMRGHXQDIXQFLyQVHQRLGDO

package misClases{
import flash.display.*;
import flash.geom.Matrix;

public class Dibujo13 extends Sprite {


public function Dibujo13() {
var posicionSeno = 100;
var posicionCoseno = 200;
var colorSeno:uint = 0xFF0000;
var colorCoseno:uint = 0x00FF00;
var multiplicador:Number = 20;
var amplitud:Number = 5;
var i:uint;
for (i = 1; i < stage.stageWidth; i++) {
var sinPosY:Number = Math.sin(i /
amplitud) * multiplicador;
var cosPosY:Number = Math.cos(i /
amplitud) * multiplicador;
graphics.beginFill(colorSeno);
graphics.drawRect(i, posicionSeno +
sinPosY, 2, 2);
graphics.beginFill(colorCoseno);
graphics.drawRect(i, posicionCoseno
+ cosPosY, 2, 2);
}
}
}
}


(OUHVXOWDGRGHEHUiVHUHOTXHPXHVWUDOD)LJ

)LJXUD
)LJXUD'LEXMRGHXQDIXQFLyQVHQRLGDO

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

0pWRGRFOHDU 

(VWHPpWRGRERUUDHOFRQWHQLGRGHXQDIRUPDEiVLFDRVKDSHTXHVHKD\DUHDOL]DGR
FRQHO$3,GHGLEXMR7DPELpQOLPSLDORVYDORUHVGHORVPpWRGRVOLQH6W\OH\EHJLQ)LOO
6XVLQWD[LVHV

shape.graphics.clear();


&RPRHMHPSORVHKDUiXQDVHQFLOODDQLPDFLyQGHXQVKDSHTXHVHPRYHUiHQIRUPD
FLUFXODU 6L QR VH XWLOL]DUD HO PpWRGR FOHDU  VH HQFLPDUtDQ ORV SHTXHxRV FtUFXORV
VLPXODQGRXQFtUFXORFRQWLQXR

(MHUFLFLR

• 6HFDPELDHOSDUiPHWUR&ODVV'RFXPHQWHQHO,QVSHFWRUGHSURSLHGDGHVGH
ODSHOtFXODGLEXMDIODSRUHOGHPLV&ODVHV'LEXMR
• 6HDEUHXQDUFKLYR$6QXHYR\VHJXDUGDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUH'LEXMRDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.display.Shape;
import flash.events.*;

public class Dibujo14 extends Sprite {


public function Dibujo14() {
stage.frameRate = 31;
var grados:Number = 0;
var radio:Number = 80;
var radiosatelite:Number = 6;
var contenedor:Sprite = new Sprite();
contenedor.x = stage.stageWidth / 2;
contenedor.y = stage.stageHeight / 2;
addChild(contenedor);
var bolita:Shape = new Shape();

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHPSORGLEXMRGHXQDIXQFLyQVHQRLGDO

contenedor.addChild(bolita);
addEventListener(Event.ENTER_FRAME,
onEnterFrame);
function onEnterFrame(event:Event):void {
grados += 4;
var radianes:Number =
convierteRadianes(grados);
var posX:Number = Math.sin(radianes)
* radio;
var posY:Number = Math.cos(radianes)
* radio;
bolita.graphics.clear();
bolita.graphics.beginFill(0);
bolita.graphics.drawCircle(posX,
posY, radiosatelite);
}
function
convierteRadianes(grados:Number):Number {
return grados * Math.PI / 180;
}
}
}
}

6H REWHQGUi XQ SHTXHxR FtUFXOR TXH GD YXHOWDV HQ HO HVFHQDULR $KRUD HOLPLQH OD
OtQHDGHQWURGHORQ(QWHU)UDPHTXHERUUDHOREMHWRHVGHFLUHOFOHDU 2EVpUYHVHHO
UHVXOWDGR


7,3'(&(57,),&$&,Ð
7,3'(&(57,),&$&,Ð1
2WUDSUHJXQWDTXHOHSXHGHQKDFHUHQVXH[DPHQGHFHUWLILFDFLyQ$&(R$&$HVFRQ
UHVSHFWRDODPDQHUDGHFUHDURHOLPLQDUORVFRQWHQLGRVGHXQJUiILFR(OPpWRGRFOHDU 
VHUtDODUHVSXHVWD

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

(MHPSORWUD]RGHXQDJUiILFDGHOtQHDV
(QHVWHHMHUFLFLRKDUHPRVXQDJUiILFDWRPDQGRODVOHFWXUDVGHXQDUUHJORJHQHUDGR
HQIRUPDDOHDWRULD\HIHFWXDUHPRVXQDJUiILFDGHOtQHDV
• (QWUH D OD SiJLQD GHO OLEUR \ EDMH HO DUFKLYR JUDILFDIOD HQ HO FXDO \D VH
WLHQHQORVREMHWRVQHFHVDULRVSDUDODJUDILFDFLyQ
• (OREMHWRPiVLPSRUWDQWHHVHOFOLSGHSHOtFXODJUDILFD6KDSHTXHHVGRQGH
FRQVWUXLUHPRVODJUiILFD\HOFXDOVHHQFXHQWUDHQHOSXQWR  GHOGLEXMR
GHODJUiILFD
• &RPRVHPHQFLRQyDOLQLFLRGHOFDStWXORHOSXQWR  GHFXDOTXLHUREMHWR
HQ)ODVKVHHQFXHQWUDHQODHVTXLQDVXSHULRUL]TXLHUGDSRUORTXHHQHVWH
FDVR OD JUiILFD WHQGUi SXQWRV QHJDWLYRV FRQ UHVSHFWR DO SXQWR GH UHJLVWUR
GHOREMHWRPHQFLRQDGR


)LJXUD/RVQRPEUHVGHLQVWDQFLDGHORVREMHWRV
)LJXUD


• (VFULEDHQHOFDPSRGH'RFXPHQW&ODVVODFODVHPLV&ODVHV*UDILFD
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.events.Event;

dynamic public class Grafica extends Sprite {;


var datos_array:Array;

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHPSORWUD]RGHXQDJUiILFDGHOtQHDV


var rangoGrafica:Number;
var rangoS:Number;
//

function Grafica() {
datos_array = new Array();
rangoGrafica=8;
graficaShape.alpha=0;
iniciaGrafica();
}

public function iniciaGrafica():void {


var meses_array:Array=new
Array("E","F","M","A","M","J","Ju","A","S","O","N","D");
var mes:int=0;
//
for (var i = 0; i<meses_array.length; i++) {
//

datos_array.push(Math.floor(Math.random()*30));
this["mes"+i+"_mc"].text=meses_array[i];
this["anio"+i+"_mc"].text=datos_array[i];
}
dibujaGrafica();
}
function dibujaGrafica() {
//var datos_array:Array=co_dp.toArray();
var primerPunto:Boolean=true;
var rango_X:int=-40;
var rango_Y:int=0;
var dato:Number;
//
graficaShape.graphics.lineStyle(3, 0xff6600, 1);
//
for (var hh:int=0; hh < datos_array.length; hh++)
{

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

'LEXMRFRQ$FWLRQ6FULSW 

rango_X=hh*40;
dato=datos_array[hh];
rango_Y=(dato*rangoGrafica)*-1;
//
if (primerPunto) {

graficaShape.graphics.moveTo(rango_X, rango_Y);
primerPunto=false;
} else {

graficaShape.graphics.lineTo(rango_X, rango_Y);
}
}
graficaShape.graphics.endFill();
addEventListener(Event.ENTER_FRAME, fadeIn);
}
private function fadeIn(e:Event):void {
graficaShape.alpha+=.05;
if (graficaShape.alpha>=1) {
graficaShape.alpha=1;
removeEventListener(Event.ENTER_FRAME,
fadeIn);
}
}
}
}


2WUR SXQWR LPSRUWDQWH HV OD HVFDOD GH OD JUiILFD 6L REVHUYD OD VHSDUDFLyQ HQWUH
XQLGDG\XQLGDGHQODJUiILFDUHSUHVHQWDGDSRUODVOtQHDVGHODL]TXLHUGDHVGH
SL[HOHV<ODVHSDUDFLyQHQWUHODVOtQHDVGHODVRUGHQDGDVHVGHSL[HOHV(VWRQRV
SHUPLWH FDOFXODU ORV SXQWRV HQ OD JUiILFD SHUR UHFXHUGH TXH VRQ LQYHUVDV SRU HVR
ODVPXOWLSOLFDPRVSRUî(OUHVXOWDGRGHQXHVWUDJUiILFDVHUiHOVLJXLHQWH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (MHPSORWUD]RGHXQDJUiILFDGHOtQHDV



)LJXUD
)LJXUD/DJUiILFDGLEXMDGD

$PDQHUDGHFRQFOXVLyQ

(O$3,GHGLEXMRQRVSHUPLWLUiKDFHUPXFKRVHIHFWRV\DSOLFDFLRQHVGHIRUPDUiSLGD
\ OLJHUD DXQTXH D YHFHV LPSOLFD WHFOHDU XQ SRFR PiV GH FyGLJR \ ´GLEXMDU FRQ
Q~PHURVµHQHVWHFDStWXORFRQRFLPRVORVPpWRGRV
• EHJLQ%LWPDS)LOO 
• EHJLQ)LOO 
• EHJLQ*UDGLHQW)LOO 
• FOHDU 
• FXUYH7R 
• GUDZ&LUFOH 
• GUDZ(OLSVH 
• GUDZ5HFW
• HQG)LOO 
• OLQH*UDGLHQW6W\OH 
• OLQH6W\OH 
• OLQH7R 
• PRYH7R 

(Q HO VLJXLHQWH FDStWXOR GHGLFDUHPRV PiV DWHQFLyQ D ORV Q~PHURV SDUD KDFHU TXH
ODVFRVDVVHPXHYDQGHVGH$FWLRQ6FULSW

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD


Animación con
ActionScript 10



,QWURGXFFLyQ
/D DQLPDFLyQ KD VLGR OD UD]yQ GH VHU GH )ODVK 'HVGH OD DQLPDFLyQ FXDGUR SRU
FXDGUR SDVDQGR SRU OD LQWHUSRODFLyQ GH PRYLPLHQWR GH OD OtQHD GH WLHPSR ODV
DQLPDFLRQHVPiVLPSDFWDQWHVVHKDQUHDOL]DGRFRQ$FWLRQ6FULSW(QXQSULQFLSLRVH
HIHFWXDED HO PRWRU HQJLQH  FRQ OD PLVPD OtQHD GH WLHPSR /XHJR VH WXYR HO
PDQHMDGRU GH HYHQWRV RQ(QWHU)UDPH DVt FRPR OD LQVWUXFFLyQ VHW,QWHUYDO  FRQ ODV
TXHVHWHQtDPD\RUFRQWURO \H[DFWLWXGGHWLHPSR 7DPELpQGHVGHODYHUVLyQVH
FXHQWD FRQ OD FODVH 7ZHHQ \ HO SDTXHWH (DVLQJ ORV FXDOHV SHUPLWHQ PDQLSXODU
DQLPDFLRQHV FRQ DFHOHUDFLyQ \ HODVWLFLGDG HQ IRUPD VHQFLOOD &RQ $FWLRQ6FULSW 
DKRUDVHWHQGUiQQXHYDVKHUUDPLHQWDVGHDQLPDFLyQSHURHVLPSRUWDQWHLQLFLDUFRQ
ODFOiVLFDDQLPDFLyQGHXQDSHORWDTXHUHERWDHQODSDQWDOOD

(MHUFLFLR

• 6HDEUHXQDUFKLYR)ODVK$6VHOHQRPEUDDQLPDFLRQIOD\VHJXDUGDHQ
ODFDUSHWDGHWUDEDMR
• 6HFUHDXQDUFKLYR$FWLRQ6FULSWVHOHQRPEUD$QLPDFLRQDV\VHJXDUGDHQ
ODFDUSHWDPLV&ODVHV
• (QHODUFKLYRDQLPDFLRQIODVHHVFULEHHQHOFDPSRGH'RFXPHQW&ODVVOD
FDGHQDPLV&ODVHV$QLPDFLRQ
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 ,QWURGXFFLyQ

package misClases{
import flash.display.Sprite;
import flash.events.Event;

public class Animacion1 extends Sprite {


//
var bolita:Sprite = new Sprite();
var dx:Number = 5;

public function Animacion1() {

bolita.graphics.beginFill(0xff0000,100);
bolita.graphics.drawCircle(0,0,10);
bolita.graphics.endFill();

bolita.x = 100;
bolita.y = 100;

addChild(bolita);

addEventListener(Event.ENTER_FRAME,
onEnterFrame);

}
private function onEnterFrame(event:Event):void {
bolita.x += dx;
}
}
}


(OUHVXOWDGRVHUiXQDSHORWLWDTXHVHGHVSOD]DUiGHL]TXLHUGDDGHUHFKD6LHQOXJDU
GH VXPDU VH UHVWD D OD SRVLFLyQ GH ´[µ HO UHVXOWDGR VHUtD HO LQYHUVR OD SHORWLWD
DYDQ]DUtDGHGHUHFKDDL]TXLHUGD

 6LHQOXJDUGHPRYHUODEROLWDHQHOHMHGHODV´[µVHKLFLHUDHQHOHMH´\µDO
VXPDUDODFRRUGHQDGD´\µODEROLWDVHGHVSOD]DUtDGHDUULEDKDFLDDEDMR\DTXHHO
RULJHQGHODVFRRUGHQDGDVHQ)ODVKVHHQFXHQWUDHQODHVTXLQDVXSHULRUL]TXLHUGD
3RUOyJLFDVLVHUHVWDODEROLWDVHGHVSOD]DUtDKDFLDODSDUWHVXSHULRUGHODSDQWDOOD
(QWRGRVORVFDVRVODEROLWDVH´VDOGUtDµGHOHVFHQDULR

 1RKD\ TXHGHWHQHUVHHQORVGHWDOOHVGHODVYDOLGDFLRQHVSDUDDYDQ]DUHQ
ODVFXHVWLRQHVQXHYDVHQ$6(QOXJDUGHOPDQHMDGRUGHHYHQWRV(17(5B)5$0(
VHXWLOL]DUiODQXHYDFODVH7LPHUTXHVHHQFXHQWUDHQIODVKXWLOV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
$GPLQLVWUHELHQVXWLHPSRGXUDQWHHOH[DPHQ\DTXHDOFRQFOXLUHOPLVPRHOH[DPHQ
VHFLHUUD\VHFDOLILFD/DVSUHJXQWDVVLQFRQWHVWDUVHFRQVLGHUDQPDODV

(MHUFLFLR

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVVSRUODFDGHQD
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUHGH$QLPDFLRQDV
• (QHVWHDUFKLYRVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.display.Stage;
import flash.utils.Timer;

public class Animacion2 extends Sprite {


//
var bolita:Sprite = new Sprite();
var dx:Number = 5;
var dy:Number = 5;

public function Animacion2() {

bolita.graphics.beginFill(0xff0000,100);
bolita.graphics.drawCircle(0,0,10);
bolita.graphics.endFill();

bolita.x = 100;
bolita.y = 100;

addChild(bolita);

var cronometro:Timer = new Timer(30);


cronometro.addEventListener("timer",
onTimer);
cronometro.start()

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0RYHUXQREMHWRDXQDFRRUGHQDGDHVSHFtILFD

}
private function onTimer(event:TimerEvent):void {
bolita.x += dx;
bolita.y += dy;

if (bolita.x > 550 || bolita.x < 0) {


dx *= -1;
}
if (bolita.y > 400 || bolita.y < 0) {
dy *= -1;
}
}
}
}


$OHMHFXWDUODSHOtFXODVHYHUiFyPRUHERWDHOSHTXHxRFtUFXORURMR

0RYHUXQREMHWRDXQDFRRUGHQDGDHVSHFtILFD
(Q DOJXQDV DQLPDFLRQHV \ MXHJRV GHVDUUROODGRV HQ )ODVK HV QHFHVDULR PRYHU XQ
REMHWR D XQD FRRUGHQDGD HVSHFtILFD 3DUD HOOR VH UHTXLHUH ´LQWHUSRODUµ ORV SXQWRV
HQWUH ODV FRRUGHQDGDV RULJHQ [ \  \ ODV FRRUGHQDGDV GHVWLQR [ \  \ VH
QHFHVLWDODVLJXLHQWHIyUPXODSDUDFDGDXQRGHORVHOHPHQWRVGHODFRRUGHQDGD


x = x2 * n/100 + x1*(100-n)/100;
y = y2 * n/100 + y1*(100-n)/100;

$TXtHOWUXFRHVODYDULDEOH´QµODFXDOWLHQHTXHDXPHQWDUGHVGHFHURKDVWDFLHQHV
GHFLU VHUi HO HTXLYDOHQWH D XQ SRUFHQWDMH (O SULPHU HOHPHQWR OD YDULDEOH ´Qµ
DXPHQWD GH  D  (O VHJXQGR HOHPHQWR GH OD HFXDFLyQ LUi GLVPLQX\HQGR OD
FRRUGHQDGD LQLFLDO KDVWD HO FHUR (QWRQFHV VH QHFHVLWD XQD IRUPD GH DYDQ]DU
QXHVWUD YDULDEOH ´Qµ GHVGH FHUR KDVWD FLHQ $Vt TXH VH KDUi XQ HMHUFLFLR FRQ XQD
ILJXUDDOHDWRULDTXHWLHQHTXHYLDMDUDOFHQWURGHODSDQWDOOD(OPRWRUGHpVWDHVXQ
REMHWR7LPHU


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

(MHUFLFLR

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVVSRUODFDGHQD
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUHGH$QLPDFLRQDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.display.Stage;
import flash.utils.Timer;

public class Animacion3 extends Sprite {


//
var bolita:Sprite = new Sprite();
var n:Number = 0;
var x2:Number = 250;
var y2:Number = 200;
var x1:Number = Math.random()*500;
var y1:Number = Math.random()*400;

public function Animacion3() {

bolita.graphics.beginFill(0xff0000,100);
bolita.graphics.drawCircle(0,0,10);
bolita.graphics.endFill();

bolita.x = x1;
bolita.y = y1;

addChild(bolita);

var cronometro:Timer = new Timer(30);


cronometro.addEventListener("timer",
onTimer);
cronometro.start();

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0RYHUXQREMHWRDXQDGLUHFFLyQGHWHUPLQDGD

private function onTimer(event:TimerEvent):void {


n++;
if (n<=100) {
bolita.x = x2 * n/100 + x1*(100-
n)/100;
bolita.y = y2 * n/100 + y1*(100-
n)/100;
}
}
}
}


6HHMHFXWDYDULDVYHFHVODSHOtFXOD\VHYHUiTXHHOSHTXHxRFtUFXORVLHPSUHUHJUHVD
DOFHQWURGHOHVFHQDULR


7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1

6LHQWXH[DPHQGHFHUWLILFDFLyQQRHVWiVVHJXURHQXQDUHVSXHVWDPiUFDODFRPRGXGD
\UHJUHVDDHOODFXDQGRWHUPLQHVGHFRQWHVWDUHOH[DPHQ1RGHMHVQLQJXQDUHVSXHVWD
VLQFRQWHVWDU

0RYHUXQREMHWRDXQDGLUHFFLyQGHWHUPLQDGD
$OJXQDV YHFHV VH GHVHD TXH XQ REMHWR VH PXHYD HQ FLHUWD GLUHFFLyQ (Q
DOJXQRV MXHJRV ORV REMHWRV GHEHQ PRYHUVH FRQ FLHUWR iQJXOR SRU HMHPSOR FXDQGR
VRQGLVSDUDGRVSRUXQFDxyQRGDUGRVSDUDUHYHQWDUORVJORERVTXHSDVDQ

 6HWLHQHHQWRQFHVXQiQJXORXQDSRVLFLyQLQLFLDO\XQDYHORFLGDG3DUDHOOR
VHQHFHVLWDQDOJXQDVIyUPXODVGHWULJRQRPHWUtD/DURWDFLyQGHXQREMHWRHQ)ODVK
HVWi GDGD HQ JUDGRV \ ODV IyUPXODV GH WULJRQRPHWUtD GH OD FODVH 0DWK
0DWK GDQ VXV
UHVXOWDGRV HQ UDGLDQHV SRU OR FXDO HV QHFHVDULR SDVDU GH XQD PHGLGD D RWUD HQ
IRUPD FRQVWDQWH 3DUD FRQYHUWLU GH UDGLDQHV D JUDGRV VH XWLOL]DUi OD VLJXLHQWH
IyUPXOD

grados = radianes * 180 / PI


//Si se despeja, el cálculo de los radianes será:
radianes = grados * PI / 180

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

3DUDHQFRQWUDUHOHOHPHQWRHQ[VHUHTXLHUHHOFRVHQR\SDUDHOHOHPHQWRHQ\HO
VHQR\DTXHQRVHWLHQHXQDFRRUGHQDGDILQDO

(MHPSOR

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVVSRUODFDGHQD
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUHGH$QLPDFLRQDV

(QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.display.Stage;
import flash.utils.Timer;

public class Animacion4 extends Sprite {


//
var bolita:Sprite = new Sprite();
var n:Number = 0;
var angulo:Number = Math.random()*360;
var velocidad:Number = Math.random()*5 + 2;
var radianes:Number = angulo * Math.PI / 180;

public function Animacion4() {

bolita.graphics.beginFill(0xff0000,100);
bolita.graphics.drawCircle(0,0,10);
bolita.graphics.endFill();

bolita.x = 250;
bolita.y = 200;

addChild(bolita);
var cronometro:Timer = new Timer(30);
cronometro.addEventListener("timer",

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 0RYHUXQREMHWRHQIRUPDFLUFXODU

onTimer);
cronometro.start();

}
private function onTimer(event:TimerEvent):void {
var xx:Number = Math.cos(radianes) *
velocidad;
var yy:Number = Math.sin(radianes) *
velocidad;
bolita.x += xx;
bolita.y += yy;
}
}
}

0RYHUXQREMHWRHQIRUPDFLUFXODU
&RQODVIXQFLRQHVWULJRQRPpWULFDVVLHQOXJDUGHPXOWLSOLFDUDODVIXQFLRQHVGHVHQR
\FRVHQRSRUXQDYHORFLGDGVHYDUtDHOiQJXORVHWHQGUiXQPRYLPLHQWRFLUFXODU

(MHPSOR
(MHPSOR
• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVV
'RFXPHQW&ODVVSRUODFDGHQD
'RFXPHQW&ODVV 
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHV
FRQHOQRPEUHGH$QLPDFLRQDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ

package misClases{
import flash.display.Sprite;
import flash.display.Shape;
import flash.events.*;

var grados:Number = 0;
var radio:Number = 80;
var radiosatelite:Number = 5;
var contenedor:Sprite = new Sprite();
var bolita:Shape = new Shape();

public function Animacion5() {


contenedor.x = stage.stageWidth / 2;
contenedor.y = stage.stageHeight / 2;

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

contenedor.addChild(bolita);
addEventListener(Event.ENTER_FRAME,
onEnterFrame);

}
function onEnterFrame(e:Event):void {
grados += 10;
var radianes:Number =
convierteRadianes(grados);
var posX:Number = Math.sin(radianes) *
radio;
var posY:Number = Math.cos(radianes) *
radio;
bolita.graphics.clear();
bolita.graphics.beginFill(0);
bolita.graphics.drawCircle(posX, posY,
radiosatelite);
}
public function
convierteRadianes(grados:Number):Number {
return grados * Math.PI / 180;
}
}
}


7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
3DUDDOJXQDVYHUVLRQHVKD\GLVSRQLEOHODYHUVLyQHQHVSDxROGHOH[DPHQ&XLGDGRODV
WUDGXFFLRQHVVRQPX\ORFDOLVWDV\DOJXQDVYHFHVODWUDGXFFLyQGHWpUPLQRVSXHGHOOHJDU
D FRQIXQGLUOH 6L QR PDQHMD HO SDTXHWH \ OD WHUPLQRORJtD HQ HVSDxRO HV PHMRU TXH
FRQWHVWHHOH[DPHQHQLQJOpV

(DVLQJ
(O HDVLQJ VXDYL]DGR DWHQXDFLyQ FRORFDU DOJR HQ IRUPD GHOLFDGD \ VXDYH  HV XQ
FOiVLFRHQODDQLPDFLyQFRQ$FWLRQ6FULSW&RQVLVWHHQGHWHUPLQDUODGLVWDQFLDHQWUH
GRV SXQWRV PXOWLSOLFDGR SRU XQ IDFWRU (VWH IDFWRU HV XQ Q~PHUR IUDFFLRQDO TXH
HTXLYDOHDGLYLGLUORHQWUHXQHQWHUR/RDQWHULRUHVSRUTXHSXHGHYHUVHHVWDPLVPD
IyUPXOD \D VHD FRPR PXOWLSOLFDFLyQ SRU XQ IDFWRU GHFLPDO R OD GLYLVLyQ HQWUH XQ
HQWHUR (Q SRFDV SDODEUDV VH DJUHJDUi ´SRFR D SRFRµ OD GLVWDQFLD KDVWD OOHJDU DO
SXQWRILQDO/DIyUPXODSDUDFDGDHOHPHQWRGHOSODQRHV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 (DVLQJ

(puntoOriginal – puntoFinal) * factor

(MHPSOR

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVVSRUODFDGHQD
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUHGH$QLPDFLRQDV
• (QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.display.Stage;
import flash.utils.Timer;

public class Animacion6 extends Sprite {


//
var bolita:Sprite = new Sprite();
var factor:Number = 0.05;

public function Animacion6() {

bolita.graphics.beginFill(0xff0000,100);
bolita.graphics.drawCircle(0,0,10);
bolita.graphics.endFill();

bolita.x = 250;
bolita.y = 200;

addChild(bolita);

var cronometro:Timer = new Timer(30);


cronometro.addEventListener("timer",
onTimer);
cronometro.start();
}
private function onTimer(event:TimerEvent):void {
var xx:Number = (mouseX - bolita.x) *

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

factor;
var yy:Number = (mouseY - bolita.y) *
factor;
bolita.x += xx;
bolita.y += yy;
}
}
}

$FHOHUDFLyQ
/DDFHOHUDFLyQHVXQSURFHVRDFXPXODWLYRHVGHFLUHQOXJDUGHHQFRQWUDUXQSXQWR
RXQiQJXORVHDFXPXODUiHQXQDYDULDEOHXQDGLVWDQFLDSDUDPRYHUXQREMHWROR
FXDO KDUi TXH DO SULQFLSLR VH PXHYD HQ IRUPD OHQWD \ SRVWHULRUPHQWH DXPHQWH VX
YHORFLGDG (VWH HIHFWR VH FRQMXQWDUi FRQ XQ GHVSOD]DPLHQWR DQJXODU HQ IRUPD
DOHDWRULDSDUWLHQGRGHOFHQWURGHOHVFHQDULR

(MHPSOR

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVV
'RFXPHQW&ODVVSRUODFDGHQD
'RFXPHQW&ODVV 
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUHGH$QLPDFLRQDV

(QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.display.Stage;
import flash.utils.Timer;

public class Animacion7 extends Sprite {

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 $FHOHUDFLyQ

//
var bolita:Sprite = new Sprite();
var factor:Number = 0.3;
var angulo:Number = Math.random() * 360;
var dx:Number = 0;
var dy:Number = 0;

public function Animacion7() {

bolita.graphics.beginFill(0xff0000,100);
bolita.graphics.drawCircle(0,0,10);
bolita.graphics.endFill();

bolita.x = 250;
bolita.y = 200;

addChild(bolita);
var cronometro:Timer = new Timer(30);
cronometro.addEventListener("timer",
onTimer);
cronometro.start();
}
private function onTimer(event:TimerEvent):void {
var radians:Number = angulo * Math.PI /
180;
var fx:Number = Math.cos(radians)*factor;
var fy:Number = Math.sin(radians)*factor;
//
dx += fx;
dy += fy;
//
bolita.x += dx;
bolita.y += dy;
}
}
}

7,3'(&(57,),&$&,Ð1
7,3'(&(57,),&$&,Ð1
(Q ORV H[iPHQHV GH FHUWLILFDFLyQ $&( SRU OR JHQHUDO GDQ PXFKR SHVR D ODV QXHYDV
FDUDFWHUtVWLFDV GHO SDTXHWH \ D $FWLRQ6FULSW 5HSDVH ODV QXHYDV FDUDFWHUtVWLFDV SXHV
VHJXUDPHQWH OH SUHJXQWDUiQ PXFKR GH HOODV 7DPELpQ KDFHQ PXFKR pQIDVLV HQ HO
PDQHMRGHYLGHR

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

2WURVPRYLPLHQWRV
,JXDOPHQWH FRQ XQ SRFR GH PDWHPiWLFDV VH SRGUiQ KDFHU RWURV WLSRV GH PRYL
PLHQWRV SRU HMHPSOR PRYLPLHQWR RVFLODWRULR RYDO R GH XQD SDUiEROD 3DUD HO
PRYLPLHQWR RVFLODWRULR VH SXHGH XWLOL]DU OD IXQFLyQ VHQR R HO FRVHQR \D TXH
SURSRUFLRQDQXQYDORUHQWUH\î HQIRUPDVHFXHQFLDOQRHQIRUPDDOHDWRULD 6LD
HVWHYDORUVHOHPXOWLSOLFDSRUXQDFRQVWDQWHQXPpULFDSRUHMHPSORVHWHQGUiHO
PRYLPLHQWR GHVHDGR (Q XQ LQFLVR VH REVHUYDUi TXH VL HQ DPERV HOHPHQWRV VH
FDOFXODVXFRRUGHQDGDFRQHOVHQR\HOFRVHQRHOPRYLPLHQWRVHUiFLUFXODU

(MHPSORPRYLPLHQWRHQIRUPDFLUFXODU

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVVSRUODFDGHQD
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUHGH$QLPDFLRQDV


addChild(bolita);

var cronometro:Timer = new Timer(30);


cronometro.addEventListener("timer",
onTimer);
cronometro.start();
}
private function onTimer(event:TimerEvent):void {
bolita.x = 200 + Math.cos(angulo) * factor;

angulo += 0.03
}
}
}


6L VH GHVHD TXH OD EROLWD DYDQFH VHJ~Q OD IXQFLyQ VH SRGUi WRPDU HQ FXHQWD HO
JXLyQFRQHOTXHVHGLEXMyODIXQFLyQFRVHQR(QHVWHFDVRVHKDUiTXHODSHORWLWD
EDMHSRUHOHVFHQDULRHQIRUPDVHQRLGDO

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 2WURVPRYLPLHQWRV

(MHPSORPRYLPLHQWRHQIRUPDVHQRLGDO

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVVSRUODFDGHQD
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHV
FRQHOQRPEUHGH$QLPDFLRQDV
(QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ
package misClases{
import flash.display.Sprite;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.display.Stage;
import flash.utils.Timer;

public class Animacion9 extends Sprite {


//
var bolita:Sprite = new Sprite();
var factor:Number = 200;
var angulo:Number = 0;
var amplitud:Number = 5

public function Animacion9() {


bolita.graphics.beginFill(0xff0000,100);
bolita.graphics.drawCircle(0,0,10);
bolita.graphics.endFill();
addChild(bolita);
var cronometro:Timer = new Timer(30);
cronometro.addEventListener("timer",
onTimer);
cronometro.start();
}
private function onTimer(event:TimerEvent):void {
var cosPosY:Number = Math.cos(angulo) *
factor;
bolita.x = stage.stageWidth/ 2 + cosPosY;
bolita.y = angulo*20;
angulo += 0.05
}
}
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

HQ RWUR HMHUFLFLR VH HIHFW~D XQ PRYLPLHQWR FLUFXODU PXOWLSOLFDQGR SRU XQ PLVPR
IDFWRUHOSURGXFWRGHOODVIXQFLRQHVVHQR\FRVHQR6LVHOHGDDFDGDXQDGHHOODV
GLIHUHQWHYDORUHOUHVXOWDGRVHUiXQPRYLPLHQWRRYDO

(MHPSORPRYLPLHQWRRYDO

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVVSRUODFDGHQD
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQHO
QRPEUHGH$QLPDFLRQDV

(QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.display.Shape;
import flash.utils.Timer;
import flash.events.*;

public class Animacion10 extends Sprite {


var grados:Number = 0;
var radioX:Number = 150;
var radioY:Number = 100
var radiosatelite:Number = 5;
var bolita:Shape = new Shape();

public function Animacion10() {

bolita.graphics.beginFill(0xff0000,100);
bolita.graphics.drawCircle(0,0,10);
bolita.graphics.endFill();
addChild(bolita);

var cronometro:Timer = new Timer(30);


cronometro.addEventListener("timer",
onTimer);
cronometro.start();

}


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 2WURVPRYLPLHQWRV

private function onTimer(event:TimerEvent):void {


grados +=2;
var radianes:Number =
convierteRadianes(grados);
var posX:Number = Math.sin(radianes) *
radioX;
var posY:Number = Math.cos(radianes) *
radioY;
bolita.x = 250+posX;
bolita.y = 200+posY;
}
public function
convierteRadianes(grados:Number):Number {
return grados * Math.PI / 180;
}
}
}

2WURPRYLPLHQWRTXHSXHGHVHUGHXWLOLGDGHVHOFRPSOHWDPHQWHDOHDWRULR3DUDHOOR
VHFDPELDQORVHOHPHQWRVDQ~PHURVDOHDWRULRV

(MHPSORPRYLPLHQWRDOHDWRULR

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVVSRUODFDGHQD
PLV&ODVHV$QLPDFLRQ
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUHGH$QLPDFLRQDV

(QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ
package misClases{
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Stage;
import flash.utils.Timer;
import flash.events.*;

public class Animacion11 extends Sprite {


var radianesX:Number = 0;


$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

var radioY:Number = 200;


var bolita:Shape = new Shape();

public function Animacion11() {

bolita.graphics.beginFill(0xff0000,100);
bolita.graphics.drawCircle(0,0,10);
bolita.graphics.endFill();
addChild(bolita);

var cronometro:Timer = new Timer(30);


cronometro.addEventListener("timer",
onTimer);
cronometro.start();

}
private function onTimer(event:TimerEvent):void {
var posX:Number = Math.sin(radianesX) *
radioX;
var posY:Number = Math.cos(radianesY) *
radioY;
bolita.x = stage.stageWidth/2 + posX;
bolita.y = stage.stageHeight/2 + posY;
radianesX += Math.random()/5;
radianesY += Math.random()/5;
}
}
}

2WURWLSRGHPRYLPLHQWRHVTXHXQREMHWRVLJDDOFXUVRU(QHVWHFDVRHOHOHPHQWRD
HQFRQWUDU HV HO iQJXOR GDGRV GRV SXQWRV HO SXQWR GH UHJLVWUR GHO REMHWR \ ODV
FRRUGHQDGDV GHO DSXQWDGRU GHO PRXVH 3DUD HQFRQWUDU HO iQJXOR VH XWLOL]DUi HO
PpWRGRDWDQ
DWDQ GHODFODVH0DWK
DWDQ 0DWK&RPRHVWHPpWRGRUHJUHVDHOiQJXORHQUDGLDQHV
0DWK
VHWLHQHTXHFRQYHUWLUDJUDGRV\DTXHODSURSLHGDGURWDWLRQ
URWDWLRQVyORDFHSWDJUDGRV\QR
URWDWLRQ
UDGLDQHV(VWDIyUPXODHV~WLOHQMXHJRVSRUHMHPSORFXDQGRVHWLHQHXQFDxyQTXH
GLVSDUDDGLIHUHQWHVREMHWRVTXHVHPXHYHQHQHOHVFHQDULRRHOFOiVLFRHQTXHORV
RMRV GHO SHUVRQDMH VH PXHYHQ FRQ HO PRYLPLHQWR GHO FXUVRU 9pDVH HO VLJXLHQWH
HMHUFLFLR

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 2WURVPRYLPLHQWRV

(MHPSORPRYLPLHQWRDOFRPSiVGHOFXUVRU

• 6HFDPELDHOFDPSRGH'RFXPHQW&ODVVSRUODFDGHQD
PLV&ODVHV$QLPDFLRQ
• (QHVWHHMHUFLFLRVHGLEXMDXQUHFWiQJXORGHOJDGRGHDSUR[LPDGDPHQWHï
SL[HOHV\VHFRQYLHUWHHQFOLSGHSHOtFXODFRQHOSXQWRGHUHJLVWURHQOD
SDUWHLQIHULRUGHOPLVPR
• 6HQRPEUDODLQVWDQFLDFRPRUHFWiQJXOR
• 6HDEUHXQQXHYRDUFKLYRGHFODVH\VHJUDEDHQODFDUSHWDPLV&ODVHVFRQ
HOQRPEUHGH$QLPDFLRQDV

(QHODUFKLYRGHFODVHVHHVFULEHHOVLJXLHQWHJXLyQ


package misClases{
import flash.display.Sprite;
import flash.display.MovieClip;
import flash.display.Stage;
import flash.utils.Timer;
import flash.events.*;

public class Animacion12 extends Sprite {

public function Animacion12() {


var cronometro:Timer = new Timer(30);
cronometro.addEventListener("timer",
onTimer);
cronometro.start();
}
private function onTimer(event:TimerEvent):void {
var posX:Number = mouseX - rectangulo.x;
var posY:Number = mouseY - rectangulo.y;
var radianes:Number = Math.atan2(posY,
posX);
rectangulo.rotation = radianes * 180 /
Math.PI;
}
}
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

-XHJRFRQXQWDQTXHTXHXWLOL]DPRYLPLHQWRV
DQJXODGRV
(Q HVWH HMHPSOR KDUHPRV XQ MXHJR VHQFLOOR FRQ XQ WDQTXH HO FXDO QRV SHUPLWLUi
XWLOL]DU ORV PRYLPLHQWRV DQJXODGRV GHO SUHVHQWH FDStWXOR $XQTXH \D XWLOL]DPRV
DOJXQRV PpWRGRV GH IRUPD SUiFWLFD DOJXQRV PpWRGRV FRPR HO VHQR \ HO FRVHQR
DTXtOHVGDUHPRVXQSRFRPiVGHVRSRUWHHQODWHRUtD

• 3DUDORVPRYLPLHQWRVOLQHDOHVXWLOL]DPRVODVSURSLHGDGHV[\\HQVXVFXDWUR
YDULDFLRQHV DUULEDDEDMRGHUHFKDHL]TXLHUGD SRUPHGLRGHGRVYDULDEOHV
G[\G\

• 6LQHPEDUJRSDUDORVPRYLPLHQWRVDQJXODGRV GLVSDURVFDUURVQDYHVHWF 
HVWDVYDULDEOHVQRVRQVXILFLHQWHV

• 3DUD HOOR QHFHVLWDUHPRV GH DOJXQRV PpWRGRV GH OD FODVH 0DWK 0DWKVLQ
VHQR 0DWKFRV FRVHQR \0DWKDWDQ DUFRWDQJHQWH 

• (O VLJXLHQWH JUiILFR QRV D\XGDUi D H[SOLFDU OD UHODFLyQ HQWUH HO VHQR \ HO
FRVHQR

)LJXUD&tUFXORGHODVIXQFLRQHVVHQRLGDOHV
)LJXUD

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 -XHJRFRQXQWDQTXHTXHXWLOL]DPRYLPLHQWRVDQJXODGRV

3XQWR
3XQWR


(OSXQWRUHSUHVHQWDHOiQJXORFHUR

6LHOiQJXORHVFHURHOFRVHQRHV\HOVHQRHV

(QHVWHSXQWR[WLHQHXQYDORUGH\\XQYDORUGH

6LXQREMHWRVHPXHYHHQXQiQJXORGHVHGHVSOD]DUtDXQDXQLGDG
KDFLDODGHUHFKD
3XQWR
3XQWR


6LXQREMHWRVHGHVSOD]DUDDJUDGRVHOFRVHQRHV\HOVHQRHV

(QHVWHSXQWR[WLHQHXQYDORUGH\\XQYDORUGH

6LXQREMHWRVHPXHYHHQXQiQJXORGHJUDGRVVHGHVSOD]DUtDXQD
XQLGDGKDFLDDEDMR
3XQWR
3XQWR


6LXQREMHWRVHGHVSOD]DUDDJUDGRVHOFRVHQRHVî\HOVHQRHV
GH
• (QHVWHSXQWR[WLHQHXQYDORUGH\\XQYDORUGH
• 6LXQREMHWRVHPXHYHHQXQiQJXORGHJUDGRVVHGHVSOD]DUtDXQD
XQLGDGKDFLDODL]TXLHUGD
3DVR
3DVR


6LXQREMHWRVHGHVSOD]DUDDJUDGRVHOFRVHQRHV\HOVHQRHV
GHî
• (QHVWHSXQWR[WLHQHXQYDORUGH\\XQYDORUGHî
• 6LXQREMHWRVHPXHYHHQXQiQJXORGHJUDGRVVHGHVSOD]DUtDXQD
XQLGDGKDFLDDUULED
5DGLDQHVYV*UDGRV
5DGLDQHVYV*UDGRV

• /RV JUDGRV \ ORV UDGLDQHV VRQ GRV IRUPDV GLVWLQWDV GH UHSUHVHQWDU
iQJXORV
• /RV UDGLDQHV VRQ iQJXORV UHSUHVHQWDGRV HQ UHODFLyQ FRQ OD FRQVWDQWH
3,
• 8QFtUFXORFRPSOHWRVRQJUDGRV
• 8QFtUFXORFRPSOHWRHQUDGLDQHVVRQ 3,
• 3RUORWDQWR
JUDGRV  3,UDGLDQHV
6LGHVSHMDPRV

JUDGR   3, 

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

UDGLiQ   3, 

/DSURSLHGDGURWDWLRQ
/DSURSLHGDGURWDWLRQ
URWDWLRQ

• /DURWDFLyQHQ$FWLRQ6FULSWHVOD~QLFDSURSLHGDGWULJRQRPpWULFDTXHVH
UHSUHVHQWDHQJUDGRV
• 7RGDVODVGHPiVIXQFLRQHVUHJUHVDQYDORUHVHQUDGLDQHV
• /DSURSLHGDGURWDFLyQUHJUHVDYDORUHVHQWUHîD
• 3RUORWDQWRKD\TXHFRQYHUWLUORVUDGLDQHVDJUDGRV\YLFHYHUVDFRQODV
IXQFLRQHVTXHVHYLHURQSUHYLDPHQWH


8VRVGHOVHQR\GHOFRVHQR
8VRVGHOVHQR\GHOFRVHQR

3DUDLOXVWUDUHVWDVIXQFLRQHVKDJDXQDUFKLYR)ODVK$FWLRQ6FULSWXQD
SHOtFXOD)ODVKFRQHOQRPEUHWDQTXHIOD

'LEXMHXQSHTXHxRWDQTXHGHïHQHOFHQWURGHOHVFHQDULR.

)LJXUD8QSHTXHxRWDQTXH
)LJXUD

• &UHH XQD FODVH GHO PLVPR QRPEUH FRQ PD\~VFXOD  6iOYHOD HQ OD
FDUSHWD PLV&ODVHV \ UHODFLyQHOD HQ HO 'RFXPHQW &ODVV GH OD SHOtFXOD
FRPRPLV&ODVHV7DQTXH


$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 -XHJRFRQXQWDQTXHTXHXWLOL]DPRYLPLHQWRVDQJXODGRV

/DFODVHSULQFLSDO
/DFODVHSULQFLSDO

package misClases{
import flash.display.MovieClip;
import flash.events.Event;
import flash.events.KeyboardEvent;
public class Tanque extends MovieClip{
public function Tanque(){
}
}
}

(OPRWRUGHOWDQTXH

• 'HQWUR GH OD IXQFLyQ FRQVWUXFWRUD DxDGD XQOLVWHQHU (17(5B)5$0( \


GHWHFWHHOWHFODGR(QHVWHFDVRKDUHPRVTXHHOWDQTXHDYDQFHRJLUHD
GHUHFKD R L]TXLHUGD PLHQWUDV ODV WHFODV GH ODV IOHFKDV UHVSHFWLYDV VH
PDQWHQJDQSUHVLRQDGDV


//Motor del tanque


addEventListener(Event.ENTER_FRAME, mover);
//Responder al teclado
stage.addEventListener(KeyboardEvent.KEY_DOWN,teclaAbajo);
stage.addEventListener(KeyboardEvent.KEY_UP,teclaArriba);

/DIXQFLyQWHFOD$EDMR

• +DJDODVEDQGHUDVGHFRQWUROSDUDHOPRYLPLHQWRGHOWDQTXHIXHUDGH
ODVIXQFLRQHVDUULEDGHODFODVHFRQVWUXFWRUD
• SULYDWHYDUL]TXLHUGDGHUHFKDDUULED%RROHDQ
• +DJD XQD IXQFLyQ WHFOD$EDMR SDUD ´HQFHQGHUµ ODV EDQGHUDV FRUUHV
SRQGLHQWHV

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

public function teclaAbajo(e:KeyboardEvent) {


if (e.keyCode == 37) {
izquierda = true;
} else if (e.keyCode == 39) {
derecha = true;
} else if (e.keyCode == 38) {
arriba = true;
}
}

/DIXQFLyQWHFOD$UULED

• +DJDPRV OD IXQFLyQ TXH ´DSDJXHµ ODV EDQGHUDV FXDQGR HO XVXDULR
OHYDQWHODWHFOD

public function teclaArriba(e:KeyboardEvent) {


if (e.keyCode == 37) {
izquierda = false;
} else if (e.keyCode == 39) {
derecha = false;
} else if (e.keyCode == 38) {
arriba = false;
}
}

0RYHUHOWDQTXH

• $KRUDKDUHPRVODIXQFLyQTXHPRGLILFDUiODSRVLFLyQGHOWDQTXH\DVHD
TXHJLUHDODL]TXLHUGDGHUHFKDRDYDQFH(VWHWDQTXHQRWLHQHUHYHUVD

public function mover(e:Event) {


if (izquierda) {
tanque.rotation -= 5;
}
if (derecha) {

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 -XHJRFRQXQWDQTXHTXHXWLOL]DPRYLPLHQWRVDQJXODGRV

tanque.rotation += 5;
}
if (arriba) {
adelante();
}
}

$YDQ]DUHOWDQTXH

• /D IXQFLyQ DGHODQWH  HV XQ SRFR PiV FRPSOHMD (Q HOOD HVWDPRV
FDOFXODQGR ODV FRRUGHQDGDV FRQ ODV IXQFLRQHV VHQR \ FRVHQR VHJ~Q
H[SOLFDPRV HQ OD SULPHUD SDUWH /D ´YHORFLGDGµ HVWi GDGD SRU XQ
Q~PHUR SRU HO FXDO PXOWLSOLFDPRV D ODV IXQFLRQHV WULJRQRPpWULFDV
UHIHULGDV

public function adelante() {


var velocidad:Number = 5.0;
var angulo:Number =
2*Math.PI*(tanque.rotation/360);
var dx:Number = velocidad*Math.cos(angulo);
var dy:Number = velocidad*Math.sin(angulo);
tanque.x += dx;
tanque.y += dy;
}

(MHFXWH OD SHOtFXOD \ PXHYD HO WDQTXH SDUD DGHODQWH R JtUHOR D OD L]TXLHUGD R D OD
GHUHFKD ,QFOXVR SXHGH KDFHU TXH VH PXHYD SUHVLRQDQGR VLPXOWiQHDPHQWH KDFLD
DGHODQWH\TXHJLUHHQDOJXQDGLUHFFLyQ

(MHPSORWDQTXHHVWiWLFR

$KRUD KDUHPRV TXH HO WDQTXH VH TXHGH HVWiWLFR D OD PLWDG GHO HVFHQDULR \ VyOR
JLUDUi VLJXLHQGR DO FXUVRU 3DUD HOOR XWLOL]DUHPRV RWUD LPSRUWDQWH IXQFLyQ WULJRQR
PpWULFDHODUFRWDQJHQWH

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

0RYHUVHDXQDSRVLFLyQ

• (Q HO HMHPSOR DQWHULRU FDOFXODPRV XQ iQJXOR \ EXVFDPRV OD GLVWDQFLD
HQ [\ \ SDUD PRYHUQRV (V GHFLU QRV GDEDQ XQ iQJXOR \ QRVRWURV
HQFRQWUiEDPRVXQDFRRUGHQDGDKDFLDGyQGHPRYHUQRV
• $KRUDVXSRQJDPRVTXHWHQHPRVXQSXQWRHVGHFLU [\ \QHFHVLWDPRV
HQFRQWUDUHOiQJXOR
• 3DUDHOORQRVSRGHPRVDX[LOLDUFRQHOVLJXLHQWHGLDJUDPD


)LJXUD6HJPHQWRVHQWUHGRVSXQWRV
)LJXUD

(ODUFRWDQJHQWH

• 3DUD HQFRQWUDU HO iQJXOR GDGRV GRV SXQWRV GLJDPRV S [\  \ S
[\ XWLOL]DUHPRVRWUDIXQFLyQWULJRQRPpWULFDOODPDGDDUFRWDQJHQWH
• 6L REVHUYDPRV HO WULiQJXOR \ VHSDUDPRV ORV HOHPHQWRV GH ORV GRV
SXQWRVSRGHPRVIRUPDUGRVVHJPHQWRVHQWUHORVSXQWRV
 [[ \ \\ 
• &RQ HVWRV GRV YDORUHV HO DUFRWDQJHQWH LQYHUVR 0DWKDWDQ  QRV
UHJUHVDUiXQiQJXORHQUDGLDQHV
• 8QD YH] FRQ HO iQJXOR HQ UDGLDQHV DSOLFDUtDPRV HO PLVPR DOJRULWPR
TXHHODQWHULRURVLPSOHPHQWHURWDUHOREMHWR
• &RQODVKHUUDPLHQWDVFHQWUHHOWDQTXHHQHOHVFHQDULR
• 4XLWH FRPR 'RFXPHQW &ODVV D OD FODVH 7DQTXH R PRGLItTXHOD FRPR
7DQTXH
• &UHHODVLJXLHQWHFODVHGHQWURGHODFDUSHWDPLV&ODVHV

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH

 -XHJRFRQXQWDQTXHTXHXWLOL]DPRYLPLHQWRVDQJXODGRV

package misClases{
import flash.display.MovieClip;
import flash.events.Event;

public class Tanque2 extends MovieClip{


public function Tanque2(){
}
}
}


+DJD XQ HYHQWR (17(5B)5$0( SDUD JLUDU HO REMHWR GHQWUR GH OD IXQFLyQ
FRQVWUXFWRUD

addEventListener(Event.ENTER_FRAME, sigueCursor);

/DIXQFLyQVLJXH&XUVRUGHEHUiKDFHUFXDWURFRVDV

 &DOFXODUORVVHJPHQWRVHQWUHHOFHQWURGHHVFHQDULR\HOFXUVRUGHO
PRXVH
 &DOFXODUHOiQJXORFRQHVRVVHJPHQWRV
 &RQYHUWLUHOiQJXORGHUDGLDQHVDJUDGRV
 5RWDUHOREMHWR


private function sigueCursor(e:Event) {


//Calcula segmentos
var dx:Number = mouseX - tanque.x;
var dy:Number = mouseY - tanque.y;

//Determina el ángulo y lo convierte


var radianes:Number = Math.atan2(dy,dx);
var grados:Number = 360*(radianes/(2*Math.PI));

//Apuntar al cursor
tanque.rotation = grados;
}

$FWLRQ6FULSW²)UDQFLVFR$UFH $OIDRPHJD

$QLPDFLyQFRQ$FWLRQ6FULSW 

$PDQHUDGHFRQFOXVLyQ

(QHVWH~OWLPRFDStWXORVHUHYLVyOD$QLPDFLyQFRQ$FWLRQ6FULSW

&RQRFH

• &yPRPRYHUXQREMHWRDXQDFRRUGHQDGDHVSHFtILFD
• &yPRPRYHUXQREMHWRDXQDGLUHFFLyQGHWHUPLQDGD
• &yPRPRYHUXQREMHWRHQIRUPDFLUFXODU
• /DRSHUDFLyQGH(DVLQJ VXDYL]DGR 
• /D$FHOHUDFLyQ
• <RWURVPRYLPLHQWRV

'HVDUUROOy XQ MXHJR FRPSOHWR FRQ XQ WDQTXH TXH XWLOL]D PRYLPLHQWRV
DQJXODGRVDOTXHGHVSXpVDQLPySDUDPRYHUORGHGLVWLQWDVIRUPDV

&RQ HVWR KHPRV DEDUFDGR OD SURJUDPDFLyQ FRQ $FWLRQ6FULSW GHVGH OR PiV EiVLFR
SDUD KDFHU XQD FODVH OD OLVWD GH YLVXDOL]DFLyQ HO QXHYR PRGHOR GH HYHQWRV OD
OHFWXUDGHDUFKLYRV;0/KDVWDWHUPLQDUHQODDQLPDFLyQSRUPHGLRGH$FWLRQ6FULSW
(OFDPLQRHVODUJR\HVSHUDPRVKDEHUVHUYLGRGHDOJR5HFXHUGHTXHORTXHQRVH
SUDFWLFDQRVHDSUHQGH

$OIDRPHJD $FWLRQ6FULSW²)UDQFLVFR$UFH


Vous aimerez peut-être aussi