Hace unos días comence a aprender AS3, me he visto videos tutoriales y he leido foros... pero aún se me hace un poco complicado entender el lenguaje.
Estoy creando una página para una productora, que tiene varios comerciales de distintos directores y una sección de contacto, donde tengo un mapa de google.
el problema con SWFAddress es que en Firefox, no me funcionan las teclas de Atras/Adelante (he leido en varios post de este mismo foro y en otros y mucha gente tiene este drama pero no he encontrado solución.), no se si es problema de mi codigo AS3 o del HTML.
y le problema con google maps es que carga perfecto cuando entro en contacto, pero al hacer click en otra sección (inicio o directores) el mapa queda cargado arriba de todo. Me imagino que tengo que borrarlo, botarlo, sacarlo o no se como se deba decir en programación =(. Tenía el mismo problema con los videos pero encontre la solución .. es algo así:
Código ActionScript :
video.addEventListener(Event.REMOVED_FROM_STAGE, borrar);
function borrar(event:Event):void
{
video.stop();
video.getVideoPlayer(0).close();
video = null;
removeEventListener(Event.REMOVED_FROM_STAGE,borrar);
}con eso se eliminaba el video de escena.
bueno aquí van los códigos de swfaddress y gmap.
Código ActionScript :
import flash.events.EventDispatcher;
import fl.motion.MotionEvent;
import flash.events.MouseEvent;
import flash.media.Video;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import SWFAddress;
import SWFAddressEvent;
import com.google.maps.*;
import com.google.maps.controls.*;
import com.google.maps.overlays.*;
// ----------------------- resize --------------------------------;
function resizeHandler(e:Event):void
{
fondo.x = (fondo.stage.stageWidth / 2) - (fondo.width / 2);
fondo.y = (fondo.stage.stageHeight / 2)- (fondo.height / 2);
}
stage.align = StageAlign.TOP_LEFT;
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.addEventListener(Event.RESIZE, resizeHandler);
stage.dispatchEvent(new Event(Event.RESIZE));
// ------------------------- resize ------------------;
var nombreBoton:String;
trabajos.visible = false;
var marca2:String;
inicio_btn.addEventListener(MouseEvent.CLICK,tellMe);
directores_btn.addEventListener(MouseEvent.CLICK,tellMe);
contacto_btn.addEventListener(MouseEvent.CLICK,tellMe);
uno.addEventListener(MouseEvent.CLICK,tellMe);
inicio2.addEventListener(MouseEvent.CLICK,tellMe);
inicio3.addEventListener(MouseEvent.CLICK,tellMe);
irons1australpack.addEventListener(MouseEvent.CLICK,queMarca2);
trabajos.addEventListener(Event.REMOVED_FROM_STAGE, borrar2);
// ----------------- videos ultimos trabajos ---------------
function queMarca2(evt:MouseEvent):void
{
trace("la marca es " + evt.target.name);
marca2 = (evt.target.name);
trace(marca2);
playClip1(marca2);
}
function playClip1(marca2):void
{
trabajos.visible = true;
var nc1:NetConnection = new NetConnection();
nc1.connect(null);
trabajos.play("material/" + marca2 + ".flv");
}
// --------------------- videos ultimos trabajos ---------------
/*function cambia1(nombreBoton):void
{
if (nombreBoton == "null")
{
}
else
{
trace("ir a "+nombreBoton);
//gotoAndStop(nombreBoton);
SWFAddress.setValue("/"+nombreBoton+"/");
}
}*/
// ----------------------- borrar video y trabajos de stage ----------------
function borrar(event:Event):void
{
video.stop();
video.getVideoPlayer(0).close();
video = null;
removeEventListener(Event.REMOVED_FROM_STAGE,borrar);
}
function borrar2(event:Event):void
{
trabajos.stop();
trabajos.getVideoPlayer(0).close();
trabajos = null;
removeEventListener(Event.REMOVED_FROM_STAGE,borrar2);
}
// ---------------------- borrar video y trabajos de stage -------------
function tellMe(evt:MouseEvent):void
{
SWFAddress.setValue("/" + evt.target.name + "/");
}
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleSWFAddress);
function handleSWFAddress(e:SWFAddressEvent)
{
switch (e.value)
{
case "/inicio2/" :
gotoAndStop("/inicio2/");
SWFAddress.setTitle("Últimos Trabajos");
break;
case "/inicio3/" :
gotoAndStop("/inicio3/");
SWFAddress.setTitle("Últimos Trabajos");
break;
case "/directores_btn/" :
gotoAndStop("/directores_btn/");
SWFAddress.setTitle("Directores");
break;
case "/contacto_btn/" :
gotoAndStop("/contacto_btn/");
SWFAddress.setTitle("Contacto");
break;
case "/inicio_btn/" :
gotoAndStop("/inicio_btn/");
SWFAddress.setTitle("Últimos Trabajos");
break;
}
}
stop();
eso en el primer frame.
Código ActionScript :
var nombreDirector:String;
radames.addEventListener(MouseEvent.CLICK,tellMe2);
aldo.addEventListener(MouseEvent.CLICK,tellMe2);
adriana.addEventListener(MouseEvent.CLICK,tellMe2);
hernan.addEventListener(MouseEvent.CLICK,tellMe2);
jose.addEventListener(MouseEvent.CLICK,tellMe2);
lean.addEventListener(MouseEvent.CLICK,tellMe2);
losfelipes.addEventListener(MouseEvent.CLICK,tellMe2);
francisca.addEventListener(MouseEvent.CLICK,tellMe2);
nicolas.addEventListener(MouseEvent.CLICK,tellMe2);
gustavo.addEventListener(MouseEvent.CLICK,tellMe2);
francisco.addEventListener(MouseEvent.CLICK,tellMe2);
director.addEventListener(MouseEvent.CLICK,volver);
function volver(evt:MouseEvent):void
{
gotoAndStop("/directores_btn/");
SWFAddress.setValue("/directores_btn/");
}
function tellMe2(evt:MouseEvent):void
{
SWFAddress.setValue("/" + evt.target.name + "/");
}
SWFAddress.addEventListener(SWFAddressEvent.CHANGE, handleSWFAddress2);
function handleSWFAddress2(e:SWFAddressEvent)
{
switch (e.value)
{
case "/radames/" :
gotoAndStop("/radames/");
SWFAddress.setTitle("Últimos Trabajos");
break;
case "/aldo/" :
gotoAndStop("/aldo/");
SWFAddress.setTitle("Últimos Trabajos");
break;
case "/adriana/" :
gotoAndStop("/adriana/");
SWFAddress.setTitle("Últimos Trabajos");
break;
case "/hernan/" :
gotoAndStop("/hernan/");
SWFAddress.setTitle("Directores");
break;
case "/jose/" :
gotoAndStop("/jose/");
SWFAddress.setTitle("Contacto");
break;
case "/lean/" :
gotoAndStop("/lean/");
SWFAddress.setTitle("Últimos Trabajos");
break;
case "/losfelipes/" :
gotoAndStop("/losfelipes");
SWFAddress.setTitle("Directores");
break;
case "/francisca/" :
gotoAndStop("/francisca/");
SWFAddress.setTitle("Contacto");
break;
case "/nicolas/" :
gotoAndStop("/nicolas/");
SWFAddress.setTitle("Últimos Trabajos");
break;
case "/gustavo/" :
gotoAndStop("/gustavo/");
SWFAddress.setTitle("Directores");
break;
case "/francisco/" :
gotoAndStop("/francisco/");
SWFAddress.setTitle("Contacto");
break;
}
}
stop();eso en directores
Código ActionScript :
import flash.media.Video;
video.visible = false;
var marca:String = "null";
function playClip(marca):void
{
if (marca == "null")
{
trace(marca);
}
else
{
video.visible = true;
var nc:NetConnection = new NetConnection();
nc.connect(null);
video.play("material/" + marca + ".flv");
}
}
function queMarca(evt:MouseEvent):void
{
trace("la marca es " + evt.target.name);
marca = (evt.target.name);
trace(marca);
playClip(marca);
}
video.addEventListener(Event.REMOVED_FROM_STAGE, borrar);
radames1branfrut.addEventListener(MouseEvent.CLICK,queMarca);
radames2danettechoco.addEventListener(MouseEvent.CLICK,queMarca);
radames3hellmansketchup.addEventListener(MouseEvent.CLICK,queMarca);ese en uno de los directores como ejemplo.
Código ActionScript :
var lat:Number=-33.42467;
var lon:Number=-70.61712;
var zoom:int=15;
var map:Map = new Map();
map.key="ABQIAAAANmSIPlw5NlhlE85GqmNFKRSPxBvcm6r3PQaqoY2wXKdR1mO-zxRdq87RwwZ78nGAzQXrjh9vosFDIg";
map.setSize(new Point(400, 400));
map.x=30;
map.y=40;
map.addEventListener(MapEvent.MAP_READY, onMapReady);
this.addChild(map);
function onMapReady(event:Event):void
{
map.setCenter(new LatLng(lat,lon), zoom, MapType.NORMAL_MAP_TYPE);
map.addControl(new PositionControl());
map.addControl(new ZoomControl());
var marker:Marker=new Marker(new LatLng(lat,lon));
marker.addEventListener(MapMouseEvent.CLICK, function(event:Event):void {;
marker.openInfoWindow(new InfoWindowOptions({title: "IRONS FILM", content:"Padre Mariano # 192 Of. 15 Providencia."}));
});
map.addOverlay(marker);
}
y ese es en contacto donde está gmap.
talvez hayan codigos innecesarios o nose.. bueno si alguien sabe cual será el problema de firefox y gmap.
(en firefox tengo los archivos swfobject y address)
Gracias.
