I am building a zoomable flash map that populates a map dynamically by
attaching houses(movieclips), using xml. I am then attaching small info bubbles
to the houses with the initial visiblility of the bubble to false, then when
you mouseover a house it toggles the visibility. I am attaching a certain
bubble to the house based on the house's x and y corrdinates. What I need to do
reattach the bubbles when you are zoomed in. So I somehow need to rerun the
part of the function that attaches the bubbles to the houses but am lost on
what to do. I basically need to rerun the section from the comment //MASTER
COMM POPS to just before ' masterHouse.onRollOver = function'
Any help would be appreciated. Thanks.
Here is the code:
#include "lmc_tween.as"
// CREATE XML OBJECT
var myXML:XML = new XML();
// SET ATTRIBUTES
myXML.ignoreWhite = true;
myXML.onLoad = parseXML;
// LOAD XML FROM FILE
myXML.load("xml/sample_new.xml");
function parseXML(valid:Boolean):Void {
if(valid) {
// GET MAP IMAGE
var mapImage = this.firstChild.attributes.map;
//mapLoader.mapContain.attachMovie("houstonMap", "houstonMap", 1);
// QUADRANTS ARRAY
var quadrants:Array = new Array();
// GET QUAD COUNT
var qCount:Number = this.firstChild.childNodes.length;
// LOOP THROUGH QUADRANTS 1-4
for(var q:Number = 0; q < qCount; q++) {
quadrants[q] = this.firstChild.childNodes[q].attributes.name;
//trace("Quad: #" + q + " " + quadrants[q]);
// MASTER PLAN COMMUNITIES
var mX:Array = new Array();
var mY:Array = new Array();
var mName:Array = new Array();
var mId:Array = new Array();
var mNumber:Array = new Array();
var mDesc:Array = new Array();
// GET MPCOM COUNT
var mCount:Number =
this.firstChild.childNodes[q].childNodes[0].childNodes.length;
// LOOP THROUGH MASTER PLANNED COMMUNITIES
for(var m:Number = 0; m < mCount; m++) {
var mPath =
this.firstChild.childNodes[q].childNodes[0].childNodes[m];
// MASTER COMMUNITY VALUES
mX[m] = mPath.attributes.x;
mY[m] = mPath.attributes.y;
mName[m] = mPath.childNodes[0].firstChild.nodeValue;
mId[m] = mPath.childNodes[1].firstChild.nodeValue;
mNumber[m] = mPath.childNodes[2].firstChild.nodeValue;
mDesc[m] = mPath.childNodes[3].firstChild.nodeValue;
// CREATE MASTERPLAN CONTAINER
var masterHouse:MovieClip =
_root.housesHolder.multiHolder.attachMovie("multicom_house", ["multicom" + m +
q], _root.housesHolder.multiHolder.getNextHighestDepth(), {_x:mX[m], _y:mY[m]});
//MASTER COMM POPS
if( (masterHouse._x < 200) && (masterHouse._y > 200) )
masterHouse.attachMovie("multiPop1", "multiPop1", 1, {_x:30, _y:-225} );
masterHouse.multiPop1._visible = false;
if( (masterHouse._x > 200) && (masterHouse._y > 200) )
masterHouse.attachMovie("multiPop2", "multiPop1", 1, {_x:30, _y:-225} );
masterHouse.multiPop1._visible = false;
if( (masterHouse._x > 200) && (masterHouse._y < 200) )
masterHouse.attachMovie("multiPop3", "multiPop1", 1, {_x:-200, _y:20} );
masterHouse.multiPop1._visible = false;
if( (masterHouse._x < 200) && (masterHouse._y < 200) )
masterHouse.attachMovie("multiPop4", "multiPop1", 1, {_x:30, _y:20} );
masterHouse.multiPop1._visible = false;
masterHouse.multiPop1.mName.text = mName[m];
// SUB COMMUNITIES
var sName:Array = new Array();
var sBrand:Array = new Array();
var sId:Array = new Array();
var sPrice:Array = new Array();
var sDesc:Array = new Array();
// GET SUBCOMMUNITY COUNT
var sCount:Number =
this.firstChild.childNodes[q].childNodes[0].childNodes[m].childNodes[4].childNod
es.length;
for(var s:Number = 0; s < sCount; s++) {
var info:XMLNode =
this.firstChild.childNodes[q].childNodes[0].childNodes[m].childNodes[4].childNod
es[s].childNodes;
// SUBCOMMUNITY VALUES
sName[s] = info[0].childNodes[0].nodeValue;
sBrand[s] = info[1].childNodes[0].nodeValue;
sId[s] = info[2].childNodes[0].nodeValue;
sPrice[s] = info[3].childNodes[0].nodeValue;
sDesc[s] = info[4].childNodes[0].nodeValue;
masterHouse.multiPop1.subAttach.attachMovie("subinfo",
"subinfo" + s, s + m );
var subHouse:MovieClip =
masterHouse.multiPop1.subAttach["subinfo" + s];
subHouse._x = 0;
subHouse._y += (30 * (s + 1));
subHouse.subName.text = sName[s];
subHouse.subPrice.text = sPrice[s];
subHouse.subNumber.text = sId[s];
if(sBrand[s] == "Meritage Homes")
subHouse.subHouseHolder.attachMovie("meritageHouseSub", "meritageHouseSub" + s,
subHouse1.subHouseHolder.getNextHighestDepth());
if(sBrand[s] == "Monterey Homes")
subHouse.subHouseHolder.attachMovie("montereyHouseSub", "montereyHouseSub" + s,
subHouse1.subHouseHolder.getNextHighestDepth());
if(sBrand[s] == "Legacy Homes")
subHouse.subHouseHolder.attachMovie("legacyHouseSub", "legacyHouseSub" + s,
subHouse1.subHouseHolder.getNextHighestDepth());
if(sBrand[s] == "Texas Big Homes")
subHouse.subHouseHolder.attachMovie("texasbigHouseSub", "texasbigHouseSub" + s,
subHouse1.subHouseHolder.getNextHighestDepth());
masterHouse.onRollOver = function() {
_root.mglass_cur._visible = false;
this.swapDepths(this._parent.getNextHighestDepth());
this._parent.swapDepths(this._parent._parent.getNextHighestDepth());
this.multiPop1._visible = true;
}