Startdrag' - que me estas matando..
Hola makinas, tengo un pequeño-gran problema con una instancia que se me está complicando demasiado.
El tema es que tengo dos grupos de elementos, con tres elementos cada uno, para arrastrar individualmente. El funcionamiento es que, seleccionas un grupo [que es una llamada a un movie clip], aparecen los elementos, arrastras uno [que son mc's con la funcion de startdrag], y cambias de grupo para seguir arrastrando elementos, y que permanezcan en su nueva posición los que se han movido....El problema viene al cambiar de grupo, que hace desaparecer el elemento que ya he 'dragado' antes.
He probado creando una duplicación del movie clip, insertando los dos grupos dentro de un mismo MC, y alguna cosa más... Os pongo un enlance a una muestra simplificada, algo cutrona y descargable para que le echéis un ojo, por si os pica la curiosidad, y tal....
pac
Suponiendo que sea para el MX, quita el código de los botones, nombra los botones (circulos_bt y cuadrados_bt, por ejemplo). Quita el primer fotograma (el de los stops) de los mcs, icirculos e icuadrados, de modo que queden visibles. Y pega este código en el primer fotograma de la peli principal:<code>// oculta mcs
_root.icirculos._visible = false;
_root.icuadrados._visible = false;
//eventos botones
_root.circulos_bt.onPress = function(){
_root.icirculos._visible = true;
_root.icuadrados._visible = false;
}
_root.cuadrados_bt.onPress = function(){
_root.icirculos._visible = false;
_root.icuadrados._visible = true;
}</code>
Si es Flash 5, deja las dos primeras líneas en el fotograma, y pon <code> _root.icirculos._visible = true;
_root.icuadrados._visible = false;</code>
en los botones.
Espero que te valga con eso.
loopecio
Muchas gracias makina!
Eso no soluciona todo el problema, pero si es un paso para delante. Estoy haciendo unos duplicatemovieclip, asignando una profundidad a cada elemento, para que los que saque fuera no me los haga desaparecer, y junto con eso, parece que funciona.
Muuuuuuuuuuchas, muchhhhaaaass gracias por la molestia. Ya os mostraré el experimento completo a ver si ha valido la pena, penar tanto. ;)
LaFayette Afro Rock band
bueno ,aca te mando una movie que te he hecho, basicamente el tema es guardar los valores en un array bidimensional:
//primer frame
<code>
_root.listadecirculos = ["", [140, 180], [240, 180], [340, 180]];
_root.listadecuadrados = ["", [140, 180], [240, 180], [340, 180]];
place = function (item) {
for (i=1; i<=3; i++) {
_root.attachMovie(item+i, item+i, i);
_root[item+i]._x = _root["listade"+item+"s"][i][0];
_root[item+i]._y = _root["listade"+item+"s"][i][1];
}
};
deleteitem = function (item) {
for (i=1; i<=3; i++) {
_root[item+i].removeMovieClip();
}
};
updatevalores = function (item) {
if (item.length>=9) {
mynumber = item.substr(8, 9);
itemname = item.substr(0, 8);
} else {
mynumber = item.substr(7, 8);
itemname = item.substr(0, 7);
}
_root["listade"+itemname+"s"][mynumber][0] = _root[itemname+mynumber]._x;
_root["listade"+itemname+"s"][mynumber][1] = _root[itemname+mynumber]._y;
};
</code>
un boton universal:
<code>
on (press) {
startDrag(this);
}
on (release) {
_root.updatevalores(_name);
stopDrag();
}
</code>
y los botones para llamar a los circulos o a los cuadrados:
<code>
on (press) {
_root.deleteitem("cuadrado")
_root.place("circulo");
}
</code>
---------
<code>
on (press) {
_root.deleteitem("circulo")
_root.place("cuadrado");
}
</code>
aqui te puedes bajar tu movie:
fla
swf
saludines
luis