actionscript 3 - removeChild for a map (mapQuest) -
i'm trying close map when user clicks on "back" button.
i'm using as3 adobe air app.
i've tried phone call function removechild(mymap) in order close it, it's not working (error #2025: supplied displayobject must kid of caller).
do know how can ?
here's code :
var mymap:tilemap = new tilemap("key_of_map"); addchild(mymap); visiblebutton(); } function visiblebutton():void { var skip:movieclip; skip = new skype addchild(skip); skip.addeventlistener(mouseevent.click, closemap, false, 0, true); } function closemap(e:mouseevent):void { trace("ferme carte"); var mymap:tilemap = new tilemap("key_of_map"); removechild(mymap); }
edit :
so, i'll give maximum details possible.
i've set straight code scenario :
at 11th image i've code button named "gomapbutton". action code :
gomapbutton.addeventlistener(mouseevent.click, calldisplaymap, false, 0, true); function calldisplaymap(event:mouseevent):void{ displaymap(); }
in 12th image i've got action code :
stop(); import flash.display.movieclip; import flash.display.sprite; import flash.display.stagescalemode; import com.mapquest.tilemap.*; import com.mapquest.latlng; import com.mapquest.tilemap.pois.*; import com.mapquest.services.directions.directions; import com.mapquest.services.directions.directionsconstants; import com.mapquest.services.directions.directionsevent; import com.mapquest.services.geocode.geocoder; import com.mapquest.services.geocode.*; import com.mapquest.services.geocode.geocoderevent; import com.mapquest.services.geocode.geocoderlocation; import com.mapquest.tilemap.size; import flash.display.bitmap; import com.mapquest.tilemap.tilemap; import com.mapquest.tilemap.controls.inputdevice.mousewheelzoomcontrol; import com.mapquest.tilemap.controls.shadymeadow.smlargezoomcontrol; import com.mapquest.tilemap.controls.shadymeadow.smviewcontrol; function displaymap():void{ trace("displaying map"); //turn scaling off this.stage.scalemode = stagescalemode.no_scale; // create new tilemap object, passing platform key var mymap:tilemap = new tilemap("fmjtd%7cluur2g0an0%2c2s%3do5-9azwdr"); mymap.size = new size(800, 533); mymap.addcontrol(new smlargezoomcontrol()); mymap.addcontrol(new mousewheelzoomcontrol()); mymap.setcenter(new latlng(-21.060478, 164.861113),12); //add map sprite. addchild(mymap); var mypoi:poi; //icones batteries [embed (source="huiles.png")] var huilesimg:class; var embeddediconpoi:poi; var myicon:mapicon = new mapicon(); myicon.setimage(new huilesimg(),22,32); embeddediconpoi = new poi(new latlng(-11.71199, 12.647725)); embeddediconpoi.rolloverandinfotitletext = "info place"; embeddediconpoi.icon = myicon; mymap.addshape(embeddediconpoi); visiblebutton(); } //this function makes button visible @ left corner of screen function visiblebutton():void{ var skip:movieclip; skip = new skype addchild(skip); skip.addeventlistener(mouseevent.click, closemap, false, 0, true); } //i'd close map when user click on skip button function closemap(e:mouseevent):void{ var mymap:tilemap = new tilemap("fmjtd%7cluur2g0an0%2c2s%3do5-9azwdr"); trace("ferme carte"); trace(mymap.parent == null); }
first of remove:
var mymap:tilemap = new tilemap("key_of_map");
from closemap function because ready initiated instance of map in first row of code.
i don't think need after first fix, if still getting error can utilize 1 instead.
mymap.parent.removechild(mymap);
like this:
stop(); import flash.display.movieclip; import flash.display.sprite; import flash.display.stagescalemode; import com.mapquest.tilemap.*; import com.mapquest.latlng; import com.mapquest.tilemap.pois.*; import com.mapquest.services.directions.directions; import com.mapquest.services.directions.directionsconstants; import com.mapquest.services.directions.directionsevent; import com.mapquest.services.geocode.geocoder; import com.mapquest.services.geocode.*; import com.mapquest.services.geocode.geocoderevent; import com.mapquest.services.geocode.geocoderlocation; import com.mapquest.tilemap.size; import flash.display.bitmap; import com.mapquest.tilemap.tilemap; import com.mapquest.tilemap.controls.inputdevice.mousewheelzoomcontrol; import com.mapquest.tilemap.controls.shadymeadow.smlargezoomcontrol; import com.mapquest.tilemap.controls.shadymeadow.smviewcontrol; // create new tilemap object, passing platform key var mymap:tilemap = new tilemap("fmjtd%7cluur2g0an0%2c2s%3do5-9azwdr"); function displaymap():void{ trace("displaying map"); //turn scaling off this.stage.scalemode = stagescalemode.no_scale; mymap.size = new size(800, 533); mymap.addcontrol(new smlargezoomcontrol()); mymap.addcontrol(new mousewheelzoomcontrol()); mymap.setcenter(new latlng(-21.060478, 164.861113),12); //add map sprite. addchild(mymap); var mypoi:poi; //icones batteries [embed (source="huiles.png")] var huilesimg:class; var embeddediconpoi:poi; var myicon:mapicon = new mapicon(); myicon.setimage(new huilesimg(),22,32); embeddediconpoi = new poi(new latlng(-11.71199, 12.647725)); embeddediconpoi.rolloverandinfotitletext = "info place"; embeddediconpoi.icon = myicon; mymap.addshape(embeddediconpoi); visiblebutton(); } //this function makes button visible @ left corner of screen function visiblebutton():void{ var skip:movieclip; skip = new skype addchild(skip); skip.addeventlistener(mouseevent.click, closemap, false, 0, true); } //i'd close map when user click on skip button function closemap(e:mouseevent):void{ trace("ferme carte"); trace(mymap.parent == null); if (mymap.parent == this) { removechild(mymap); } }
actionscript-3
No comments:
Post a Comment