PDA

Volledige versie bekijken : FMX- vraagje over tile based


nahkranoth
%Europe/Berlin %709 %2005, 18:02
Ik ben bezig met tile-based onder de knie krijgen alleen stuiten ik op een probleem..
Hij maakt goed het veld aan en als ik op de "brick" klik geeft hij zijn naam goed weer.
Alleen als ik die wil splitten dan zegt hij dat hij undifined is...

In de ROOT:
_root.onLoad = function() {
_root.createEmptyMovieClip("holder", 0);
holder._x = 150;
holder._y = 100;
for (y=0; y<6; y++) {
for (i=0; i<6; i++) {
_root.holder.attachMovie("brick", "brick"+"-"+i+"-"+y,++diepte);
brick = _root.holder["brick"+"-"+i+"-"+y];
brick._y = y*50;
brick._x = i*50;
}
}
};

function click(name){
naam = name;
naam.split("-");
trace(naam[1]);
}

in de Movieclip Brick:
this.onPress = function(){
_root.click(this);
}

Dauntless
%Europe/Berlin %719 %2005, 18:15
Je code op zich is bijna juist, maar ze is niet echt practisch... Het is zowieso beter als je alle code op je hoofdtijdlijn houd. Dat wordt dan dit:


this.createEmptyMovieClip ("holder", 0);
holder._x = 150;
holder._y = 100;
for (y = 0; y < 6; y ++)
{
for (i = 0; i < 6; i ++)
{
var brick = this.holder.attachMovie ("brick", "brick" + "-" + i + "-" + y, ++ diepte);
brick._y = y * 50;
brick._x = i * 50;
brick.onRelease = function ()
{
click (this._name);
}
}
}
function click (naam)
{
var naamSplit = naam.split ("-");
trace (naamSplit[1]);
}


Het gebruik van _root is ook niet altijd even goed...
En je fout zit hem bij de .split. Je moet die array toekennen aan een nieuwe var...

Veel success met tileBased!! 't is echt héél leuk :)

nahkranoth
%Europe/Berlin %768 %2005, 19:26
Ik probeer altijd wel alles in de main timeline te houden alleen wist ik niet dat je het zo kon doen..

maar ik ben al geholpen en ik weet nu wat er fout was..
ik moest een string maken van de variable naam.

Thnx in iedergeval

Dauntless
%Europe/Berlin %785 %2005, 19:51
ik moest een string maken van de variable naam.


Wat bedoel je daar mee?
Je variabele 'naam' was nu een referentie naar de movieclip op de stage. Iets in de vorm van: _level0.holder.brick-1-1 . Nu heb je dus alleen de naam nodig, en kan je de _name propertie van de movieclip gebruiken. Dan deed je dit:
eenString.split("-");
En dat moet zijn:
eenArray = eenString.split("-");
Omdat de split method een array terug geeft van de delen; aan de string 'eenString' zelf veranderd niets. De array die je terugkrijgt moet je dan dus ergens opslaan.