Toon posts:

[flash] dynamische paths

Pagina: 1
Acties:

Verwijderd

Topicstarter
Meestal benader ik movieclips als volgt:
var myMC = _root.mc_1.mc_2;

of
var myMC = _root["mc_1"]["mc_2"];

Maar nu gebruik ik de _droptarget functie van flash bij draggen en droppen. Daarbij krijg ik een pad terug als volgt:

/root/mc1/mc2

Hoe kan ik nu een referentie naar die movieclip krijgen?

Ok, ik kan iets doen als volgt (uit mijn hoofd):

var strPath = "/root/mc1/mc2";
var myArr = strPath.split("/");
var myMC = _root["" + arrPath[1] + ""]["" +_root[_arrPath[2]] + ""];

Maar nu weet ik dus dat mijn target 2 niveaus diep is. Dat zouden er ook 3 kunnen zijn, en dan werkt bovenstaand truckje niet meer. Voor zover ik nu weet moet ik dan gaan knutselen met de Eval() functie...

Of...

Is er ook een andere manier om direct een referentie naar de target movieclip te verkrijgen? Vast wel... Maar ik kan het alleen niet vinden?

Verwijderd

Topicstarter
Als er een "directere" methode is, zou ik het graag weten. Maar ik heb het voor nu dan maar als volgt opgelost:

JavaScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// note: ik ben nog niet consequent met AS 2.0 syntax
// mcT_1 = gedragde movieclip

mcT_1.onPress = function() {
  startDrag("mcDrag");
  myInterVal = setInterval(checkDrag,50);
}

function checkDrag() {
  var objTarget:MovieClip = eval(getAbsolutePath(mcDrag._droptarget));
  trace(objTarget._name);
  // werkt...
}

function getAbsolutePath(ref):String {
  ref = ref.substring(1);
  return ("_root." + ref.split("/").join("."));
}