OK. So, I am trying to populate 2 dictionary instances in 2 for-loops. Then later I am trying to reference the objects that are stored in the dictionaries as the objects are dragged and dropped. I am having a problem with that part of it. I have put all of the dictionary code in red.
Can anyone help me with this?
import flash.utils.Dictionary;
var loaded:XML = new XML();
var loader:URLLoader = new URLLoader();
loader.addEventListener(Event.COMPLETE, handleXML);
loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError, false, 0, true);
loader.load(new URLRequest("mult_drag_drop.xml"));
var numbQues:uint = 0;
var numbAns:uint = 0;
var origLocatX:uint;
var origLocatY:uint;
var ansDict:Dictionary = new Dictionary();
var quesDict:Dictionary = new Dictionary();
var formatNormal:TextFormat = new TextFormat();
formatNormal.color = 0x000000;
formatNormal.size = 16;
var currentlyDragging:Sprite;
function handleXML(evt:Event)
{
loaded = XML(evt.target.data);
numbAns = loaded.draggers.dragger.length();
numbQues = loaded.targets.targt.length();
var prevBoxLoc:uint = 0;
var ansArray:Array = new Array ;
var quesArray:Array = new Array ;
var txtTry1:String = loaded.draggers.dragger[1];
for (var i:uint = 0; i < numbAns; i++)
{
ansArray* = [loaded.draggers.dragger*.@ansid,String(loaded.draggers.dragger*)];
var ans:TextField = new TextField();
ans.text = loaded.draggers.dragger*;
ans.setTextFormat(formatNormal);
ans.autoSize = "left";
ans.x = 5;
ans.selectable = false;
ansDict[ans+i] = loaded.draggers.dragger*.@ansid;
var boxFrame:MovieClip = new MovieClip();
boxFrame.graphics.beginFill(0xFFFFFF);
boxFrame.graphics.drawRoundRect(0,0, ans.width +10, ans.height, 10,10);
boxFrame.graphics.endFill();
boxFrame.x = prevBoxLoc+35;
boxFrame.y = 35;
boxFrame.addChild(ans);
boxFrame.mouseChildren = false;
boxFrame.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
this.addChild(boxFrame);
prevBoxLoc = boxFrame.width + boxFrame.x;
}
//trace(ansDict[ans+0]);
for (var j:uint = 0; j < numbQues; j++)
{
quesArray[j] = [loaded.targets.targt[j].@quesid,loaded.targets.targt[j]];
var quest:TextField = new TextField();
quest.text = loaded.targets.targt[j];
quest.setTextFormat(formatNormal);
quest.autoSize = "left";
quest.x = 5;
quest.selectable = false;
[COLOR=red]quesDict[quest+j] = loaded.targets.targt[j].@quesid;
[/COLOR]
var boxFrameQ:MovieClip = new MovieClip();
boxFrameQ.graphics.beginFill(0xFFFFFF);
boxFrameQ.graphics.drawRoundRect(0,0, quest.width +10, quest.height, 10,10);
boxFrameQ.graphics.endFill();
boxFrameQ.x = 35;
boxFrameQ.y = 40*j+200;
boxFrameQ.addChild(quest);
boxFrameQ.mouseChildren = false;
this.addChild(boxFrameQ);
}
var loopCount:uint = 0;
for each(var quesKey:Object in quesDict)
{
[COLOR=red]trace(quesDict[quest+loopCount]);
[/COLOR] loopCount++;
}
}
function startDragging(evt:MouseEvent):void
{
trace(evt.target.getChildAt(0).text);
evt.target.removeEventListener(MouseEvent.MOUSE_DOWN, startDragging);
origLocatX = evt.target.x;
origLocatY = evt.target.y;
evt.target.startDrag(false);
evt.target.parent.addChild(evt.target);
evt.target.addEventListener(MouseEvent.MOUSE_UP, onDrop);
}
function onDrop(evt:MouseEvent):void
{
evt.target.removeEventListener(MouseEvent.MOUSE_UP, onDrop);
evt.target.addEventListener(MouseEvent.MOUSE_DOWN, startDragging);
evt.target.stopDrag();
evt.target.x = origLocatX;
evt.target.y = origLocatY;
if (evt.target.dropTarget != null)
{
[COLOR=red]trace(quesDict[evt.target]);[/COLOR]
}
}