Foros del Web » Creando para Internet » Flash y Actionscript »

ayuda con actionscript

Estas en el tema de ayuda con actionscript en el foro de Flash y Actionscript en Foros del Web. Hola a todos, Estoy creando un flash con un mapa de butacas, he creado un movie clip para las sillas y lo he duplicado situando ...
  #1 (permalink)  
Antiguo 18/02/2010, 04:02
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
ayuda con actionscript

Hola a todos,

Estoy creando un flash con un mapa de butacas, he creado un movie clip para las sillas y lo he duplicado situando las sillas donde corresponden, cada una de ellas tiene un nombre de instancia diferente, 1 1, 1 2, 1 3 etc. que son la fila y el número de butaca.

Al ponerse encima con el ratón (on realease) se muestra el nombre de instancia en un texto dinamico. (this._name).

Al presionar se ve en otro texto dinámico el nombre y va al segundo frame del movie clip donde la silla cambia de color para indicar que esta seleccionada.

No se como hacer:
- Si selecciono otra silla que aparezca tambien el nombre de instancia sin borrar el que había de la silla anterior.

- Poder introducir las sillas (supongo que por el nombre de instancia) que quiera bloquear para que no se puedan seleccionar, esto sería hacerlas ir al frame 3 del movie clip.

No se si me he explicado, espero que si. Si hay alguien que pueda ayudarme....

Muchas gracias!
  #2 (permalink)  
Antiguo 18/02/2010, 12:52
Avatar de Bandit
Moderador
 
Fecha de Ingreso: julio-2003
Ubicación: Lima - Perú
Mensajes: 16.726
Antigüedad: 20 años, 9 meses
Puntos: 406
Respuesta: ayuda con actionscript

Hola bitxu:
Si al clicar sobre la butaca y vaya al frame 2 donde está la misma de otro color y se quede allí, simplemente en el botón coloca éste código:
Código:
on(release){
	this.gotoAndStop(2);
}
Espero haberte sido de ayuda.
__________________
Bandit.
Si no sabes estudia y si sabes enseña.
http://www.banditwebdesign.com/
  #3 (permalink)  
Antiguo 18/02/2010, 14:58
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Muchas gracias por contestar pero esto ya lo tengo hecho. No me habré expresado bien.

Tengo las butacas en verde, cuando se hace clic encima va al frame dos del movie clip y cambia de color si se vuelve a hacer clic vuelve al uno con su color inicial.

Lo que necesito es que seleccionando más de una butaca en el texto dinámico me aparezca el nombre de instancia de todas las seleccionadas, ahora me aparece la primera que selecciono y cuando selecciono otra se borra el nombre de la instancia y se pone el segundo.

Y también como hacer para que yo pueda seleccionar por ejemplo la 1 1, la 2 3 y la 4 5 y bloquearlas, llevarlas al frame 3 porque ya están vendidas. Supongo que con alguna variable.

Gracias.
  #4 (permalink)  
Antiguo 19/02/2010, 05:01
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

¿Alguien que me pueda ayudar?

gracias!
  #5 (permalink)  
Antiguo 19/02/2010, 05:18
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: ayuda con actionscript

suma los nombres

mitextodinamico.text=this._name+","+mitextodinamic o.text
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #6 (permalink)  
Antiguo 19/02/2010, 05:32
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Ok, muchas gracias

Y ahora si vuelvo a presionar la silla, quitar la selección, ¿cómo lo hago para poder quitar el nombre de esa instancia y que los otros sigan?

A parte de lo de poder seleccionar los movie clips con sus nombres de instancia, ej. butaca 1 2 y ponerla en rojo sin poderse seleccionar.

Gracias de nuevo!!!
  #7 (permalink)  
Antiguo 19/02/2010, 10:47
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 16 años, 10 meses
Puntos: 67
Respuesta: ayuda con actionscript

Cita:
Y ahora si vuelvo a presionar la silla, quitar la selección, ¿cómo lo hago para poder quitar el nombre de esa instancia y que los otros sigan?
Puedes meter los nombres en un Array y estar checando mediante un for si ya existe ese nombre en el array y si existe con el metodo splice borrarlo.
__________________
{ Flash }
  #8 (permalink)  
Antiguo 19/02/2010, 12:31
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Guai, pero no tengo ni idea de como hacerlo....
  #9 (permalink)  
Antiguo 19/02/2010, 12:46
Avatar de Diegoazul  
Fecha de Ingreso: mayo-2007
Ubicación: { Dash Berlin }
Mensajes: 1.879
Antigüedad: 16 años, 10 meses
Puntos: 67
Respuesta: ayuda con actionscript

Leé aquí http://livedocs.adobe.com/flash/9.0_...=00001365.html y mira como se utiliza el metodo splice
__________________
{ Flash }
  #10 (permalink)  
Antiguo 22/02/2010, 15:14
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Gracias Diegoazul,

Miraré que tal salgo de esta. Alguna idea para las butacas que estén ya vendidas?

Saludos!
  #11 (permalink)  
Antiguo 24/02/2010, 04:02
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Hola de nuevo, pues el splice no se como integrarlo, las sillas son todas un movie clip duplicado y lo único que cambia es el nombre de instancia por lo que si hago que el botón llame a un valor de array en concreto todos los botones (todas las sillas) llamarán al mismo.

NO se si me explico.... Alguna otra sugerencia, voy muy pez i tendría que ira abanzando...

gracias.
  #12 (permalink)  
Antiguo 24/02/2010, 16:36
Avatar de loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: ayuda con actionscript

por favor, levanta tu fla en un servidor tipo MEGAUPLOAD, y pasanos el link que te genera, para verlo.

Si tienes informacion sensible en tu archivo, puedes borrarlo, es solo para ver el funcionamieto y entenderlo, dado que tú sabes bien lo que necesitas, pero tal vez no lo interpretemos bien, o tal vez no sabemos si nos damos a enteder bien en las explicaciones... y antes que seguir en ambiguedades, es preferible este camino...

no se que dices.. no lo haremos por ti, pero servira para que lo podamos desarrollar mejor al post, y llegar a buen puerto
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...
  #13 (permalink)  
Antiguo 04/03/2010, 03:20
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Perdón, he estado unos días fuera.

Os adjunto el .fla y el .swf:
[URL="http://atzur.net/flash/amfiteatre_colors.fla"]fla[/URL] y [URL="http://atzur.net/flash/amfiteatre_colors.swf"]swf[/URL]

Intenté hacerlo sin botones, con movieclips pero una vez seleccionadas las butacas no sabía como conseguir que al hacer clic encima volviera a deseleccionarse.
[URL="http://atzur.net/flash/amfiteatre_sinboton_array.fla"]fla[/URL] y [URL="http://atzur.net/flash/amfiteatre_sinboton_array.swf"]swf[/URL]

Y en ningún de los dos casos se como hacer para que aparezcan la silla y fila seleccionadas para poder enviar la información. Cuando selecciono las sillas salen pero si deselecciono alguna sólo quiero que desaparezca el nombre de esta y no se como.

Gracias.
Saludos!

Última edición por bitxu; 04/03/2010 a las 05:19
  #14 (permalink)  
Antiguo 05/03/2010, 07:47
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Hola a todos,

He estado puliendo el proyecto y ahora creo que está mucho mejor, podeis ver el fla y el swf en:

http://www.atzur.net/flash/teatre.fla y http://www.atzur.net/flash/teatre.swf

Lo que me falta es que al seleccionar una butaca en el texto diamico de abajo, sale la fila y asiento que se selecciona, pero no se como hacerlo para al deseleccionarlo se borre el nombre y si hay otra silla seleccionada se mantenga el nombre de la selección.

Gracias.

¿Alguien me echa una mano? ahora con select puedo ver las que hay seleccionadas de una fila, pero como lo hago para hacerlo con todas las filas y sillas?

Última edición por bitxu; 05/03/2010 a las 13:13
  #15 (permalink)  
Antiguo 07/03/2010, 20:44
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: ayuda con actionscript

hola he revisado el fla , para sumar los textos de la forma en que lo tienes es algo complicado asi que te editado el código


http://www.megaupload.com/?d=WKS3K7QE

de esta manera el texto muestra de manera ordenada el numero de la fila y butaca
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #16 (permalink)  
Antiguo 08/03/2010, 04:37
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Muchas gracias!!!

HECHO!!!
  #17 (permalink)  
Antiguo 16/03/2010, 13:05
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Hola de nuevo,

Tengo otro problemilla, ya está casi todo hecho, pero quiero coger de un php los nombres del array con las sillas ocupadas y no se como hacerlo, estoy probando cosas.

Cuelgo los archivos para que veais a lo que me refiero.
[URL="http://atzur.net/flash/amfiteatre.zip"]amfiteatre.zip[/URL]
El trozo al que me refiero es este:
Código:
//*********************** ¡¡¡¡PROBLEMA NO SE COMO HACERLO!!! ****************
			
	venudes = new LoadVars();
	venudes.load ("send.php");
	venudes.onLoad = function(){

Aqui cogía los nombres de instancia y funcionava perfectamente//var ocupades:Array = [bt1_1, bt1_3, bt1_5, bt1_7, bt3_1, bt3_3];		
		var ocupades:Array = [this['venudes'], this.venudes2];
			for (var n = 0; n<ocupades.length; n++) {
		butacas[i].onRelease = null;
		addSelectState(ocupades[n],'_disable');
		trace (ocupades[n]);
	}
	activaSelectState();
}
}
//*********************** ¡¡¡¡AQUI SE TERMINA EL PROBLEMA!!! ****************
Gracias de antemano!
  #18 (permalink)  
Antiguo 18/03/2010, 15:17
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Alguien me hecha una mano?

Gracias!
  #19 (permalink)  
Antiguo 22/03/2010, 09:22
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Nadie?¿? Decidme si hay algun problema.

Saludos!
  #20 (permalink)  
Antiguo 22/03/2010, 14:01
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: ayuda con actionscript

AS
Código PHP:
System.useCodepage=true;
//BUSCAR LES BUTAQUES SELECCIONADES
import mx.controls.Alert;
//totes les butaques
var butacas:Array = [
                     
bt1_1bt1_2bt1_3bt1_4bt1_5bt1_6bt1_7bt1_8bt1_9bt1_10bt1_11bt1_12
                     
bt2_1bt2_2bt2_3bt2_4bt2_5bt2_6bt2_7bt2_8bt2_9bt2_10bt2_11bt2_12,
                     
bt3_1bt3_2bt3_3bt3_4bt3_5bt3_6bt3_7bt3_8bt3_9bt3_10bt3_11bt3_12
                     
bt4_1bt4_2bt4_3bt4_4bt4_5bt4_6bt4_7bt4_8bt4_9bt4_10bt4_11bt4_12bt4_13bt4_14bt4_15bt4_16bt4_17bt4_18
                     
];

var 
butacasState:Array = new Array();

function 
addSelectState(mcstate) {
    
butacasState[mc._name] = state;
}
function 
activaSelectState() {

    var 
textState:Array = new Array();
    var 
name:String;
    var 
file:Array;
    for (var 
i:Number 0i<butacas.lengthi++) {
        
name butacas[i]._name;
        
butacas[i].gotoAndStop(butacasState[name]);
        if (
butacasState[name] == "_disable") {
            
butacas[i].enabled false;
        }
        if (
butacasState[name] == "_active") {
            
file fileDetect(butacas[i]);
            
textState.push('fila '+file[0]+' seient '+file[1]+'');
        }
    }
    
_root.seleccio.text textState.join(newline);
}
function 
fileDetect(mc) {
    var 
file mc._name.split('bt');
    
file file[1].split('_');
    return 
file;
}

function 
eventRelease() {
    if (
butacasState[this._name] == '_up') {
        
butacasState[this._name] = '_active';
    } else {
        
butacasState[this._name] = '_up';
    }
    
activaSelectState();
}

function 
eventOver() {
    
_root.butaca.text = (fileDetect(this)[0]+" "+fileDetect(this)[1]);
    
this.gotoAndStop(butacasState[this._name]);
}
function 
eventOut() {
    
_root.butaca.text '';
    
this.gotoAndStop(butacasState[this._name]);
}
function 
init() {
    for (var 
i:Number 0i<butacas.lengthi++) {
        
butacas[i].onRelease eventRelease;
        
butacas[i].onRollOut eventOut;
        
butacas[i].onRollOver eventOver;
        
addSelectState(butacas[i],'_up');
    }

//PHP PER A CARREGAR LES CADIRES OCUPADES

//*********************** ¡¡¡¡PROBLEMA NO SE COMO HACERLO!!! ****************
    
var xml:XML = new XML();
    
xml.ignoreWhite=true
    xml
.onLoad myOnLoad
    
var send_lv:LoadVars = new LoadVars();
    
send_lv.xml 'true';
    
send_lv.sendAndLoad("send.php"xml"POST");
    
    function 
myOnLoad(success:Boolean) {
        for(var 
i:Number=0;i<xml.firstChild.childNodes.length;i++){
            if(
xml.firstChild.childNodes[i].nodeName=='espectacle'){
                
espectacle=xml.firstChild.childNodes[i].firstChild.nodeValue
            
}
            if(
xml.firstChild.childNodes[i].nodeName=='venudes'){
                
trace(xml.firstChild.childNodes[i].firstChild.nodeValue)
                
butacasState[xml.firstChild.childNodes[i].firstChild.nodeValue]='_disable'
            
}
        }
        
    
    
activaSelectState();
}
}
//*********************** ¡¡¡¡AQUI SE TERMINA EL PROBLEMA!!! ****************
//AQUÍ S'ACABA LA CAPTURA I COMENÇA AMB EL PHP
acceptar_btn.onPress = function() {

    
lv = new LoadVars();
    
//PER ENVIAR VARIABLES DE LES CADIRES
    
var textState:Array = new Array();
    var 
name:String;
    var 
file:Array;
    for (var 
i:Number 0i<butacas.lengthi++) {
        
name butacas[i]._name;
        
butacas[i].gotoAndStop(butacasState[name]);
        if (
butacasState[name] == "_disable") {
            
butacas[i].enabled false;
        }
        if (
butacasState[name] == "_active") {
            
file fileDetect(butacas[i]);
            
textState.push(file[0]+'#'+file[1]);
        }
    }
    
seleccio textState.join(newline);
    
// AQUÍ S'ACABA LA INSTRUCCIÓ PER ENVIAR EN FORMAT 1#2

    
lv.seleccio seleccio;
    
lv.zona "amfiteatre";
    
lv.nom espectacle;
    
lv.ocupades ocupades;
      
lv.send("send.php""_blank""POST");
        
    var 
cont:Number 0;
    for (var 
prop in butacasState) {
        if (
butacasState[prop] == '_active') {
            
cont++;
        }
    }
    if (
cont>0) {
        
Alert.show("Ha seleccionat "+cont+" butaca/ques: "+newline+newline+_root.seleccio.text+newline+newline+newline+newline,"Avís");

    } else {
        
Alert.show("Si us plau, seleccioni alguna butaca","Avís");
    }
    
activaSelectState();
};
var 
espectacle
init
(); 
PHP


Código PHP:
<?php
    
if($_POST["xml"]=="true"){
        
header"Content-type: text/xml; charset=utf-8 "); 

        
$venudes=array('bt1_1','bt1_3','bt1_5');

        
$xm=new XMLWriter();
        
$xm->openMemory();
        
$xm->startElement('cfx:Teatre');
        
$xm->writeAttribute('xmlns:cfx'"http://www.lynxcraft.com/cfx");
            
$xm->startElement('espectacle');
            
$xm->writeCData(utf8_encode("L'obra més llarga de l'any"));    
            
$xm->endElement();
            foreach (
$venudes as $row) {
                        
$xm->startElement('venudes');
                        
$xm->text($row);
                        
$xm->endElement();        
            }
        
        
$xm->endElement();
        echo 
$xm->outputMemory(true);
        
    }else{
    
    echo (
"</br>".utf8_decode($_POST["nom"])."</br>");
    
//    echo ("</br>".$_POST["ocupades"]."</br>");
    
    
echo ("</br> La zona és: ".$_POST["zona"]."</br>");

    echo (
"</br> Les butaques seleccionades són: ");
    echo (
$_POST["seleccio"]."</br>");
    }
    
?>
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft
  #21 (permalink)  
Antiguo 23/03/2010, 04:20
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
Respuesta: ayuda con actionscript

Muchas, muchas gracias!

Siento volver a molestar, puede que sea pedir mucho, pero podrias explicarme un poco el código...

De verdad GRACIAS!
  #22 (permalink)  
Antiguo 23/03/2010, 08:51
Avatar de Lynxcraft  
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 16 años, 5 meses
Puntos: 51
Respuesta: ayuda con actionscript

en esta parte

Código PHP:
//*********************** ¡¡¡¡PROBLEMA NO SE COMO HACERLO!!! ****************
    
var xml:XML = new XML();
    
xml.ignoreWhite=true
    xml
.onLoad myOnLoad
    
var send_lv:LoadVars = new LoadVars();
    
send_lv.xml 'true';
    
send_lv.sendAndLoad("send.php"xml"POST");
    
    function 
myOnLoad(success:Boolean) {
        for(var 
i:Number=0;i<xml.firstChild.childNodes.length;i++){
            if(
xml.firstChild.childNodes[i].nodeName=='espectacle'){
                
espectacle=xml.firstChild.childNodes[i].firstChild.nodeValue
            
}
            if(
xml.firstChild.childNodes[i].nodeName=='venudes'){
                
trace(xml.firstChild.childNodes[i].firstChild.nodeValue)
                
butacasState[xml.firstChild.childNodes[i].firstChild.nodeValue]='_disable'
            
}
        }
        
    
    
activaSelectState();
}
}
//*********************** ¡¡¡¡AQUI SE TERMINA EL PROBLEMA!!! ****************v 
lo que hace es cargar el archivo php con estructura xml lo cual quedaría algo así

Código:
<cfx:Teatre xmlns:cfx="http://www.lynxcraft.com/cfx">
<espectacle><![CDATA[L'obra més llarga de l'any]]></espectacle>
<venudes>bt1_1</venudes>
<venudes>bt1_3</venudes>
<venudes>bt1_5</venudes>
</cfx:Teatre>
estos valores son leídos por el flash utilizando las funciones XML si necesitas ayuda mas completa lo tienes en ayuda del propio programa

Acerca del php

utiliza las librerías XMLWriter para crear una estructura xml

http://php.net/manual/en/book.xmlwriter.php

lo de mas es simple el primer if le dice al php que tiene que mostrar los valores en xml en caso contrario, la zona y selección de butacas
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft

Última edición por Lynxcraft; 23/03/2010 a las 10:30
  #23 (permalink)  
Antiguo 23/03/2010, 12:07
Avatar de bitxu  
Fecha de Ingreso: julio-2009
Mensajes: 51
Antigüedad: 14 años, 8 meses
Puntos: 1
De acuerdo Respuesta: ayuda con actionscript

Muchas Gracias!!!

Tu ayuda me ha servido de mucho!

Saludos!

Etiquetas: actionscript
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:26.