Retroceder   Foros del Web > Diseño de Sitios web > Flash y Actionscript > Flex

Respuesta
 
Herramientas Desplegado
Antiguo 13-abr-2008, 07:54   #1 (permalink)
cachoron4444 está en el buen camino
 
Fecha de Ingreso: octubre-2003
Mensajes: 212
Error, no puedo llamar una función

Tengo un problema, no puedo llamar a una función...

Código:
<?xml version="1.0"?>
<!-- DataGrid control example. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
	<mx:Script>
		<![CDATA[
			private function modificarTexto():void 
           {
            textos.text+= dg.selectedItem.nombre + '\n' ;
	    	}
		]]>
	</mx:Script>
    <mx:XMLList id="employees">
        <employee>
            <name>Christina Coenraets</name>
            <phone>555-219-2270</phone>
            <email>ccoenraets@fictitious.com</email>
            <active>true</active>
        </employee>
        <employee>
            <name>Joanne Wall</name>
            <phone>555-219-2012</phone>
            <email>jwall@fictitious.com</email>
            <active>true</active>
        </employee>
        <employee>
            <name>Maurice Smith</name>
            <phone>555-219-2012</phone>
            <email>maurice@fictitious.com</email>
            <active>false</active>
        </employee>
        <employee>
            <name>Mary Jones</name>
            <phone>555-219-2000</phone>
            <email>mjones@fictitious.com</email>
            <active>true</active>
        </employee>
    </mx:XMLList>


        <mx:DataGrid id="dg" width="100%" height="100%" rowCount="5" dataProvider="{employees}">
            <mx:columns>
                <mx:DataGridColumn dataField="name" headerText="Name"/>
                <mx:DataGridColumn dataField="phone" headerText="Phone"/>
                <mx:DataGridColumn dataField="email" headerText="Email"/>
                <mx:DataGridColumn headerText="Agregar">
                	<mx:itemRenderer>
                		<mx:Component>
                			<mx:CheckBox label="Escoger" click="modificarTexto()"/>
                		</mx:Component>
                	</mx:itemRenderer>
                </mx:DataGridColumn>
            </mx:columns>
        </mx:DataGrid>

	 <mx:TextArea id="textos"/>
        
</mx:Application>

Con ese código se supone que al seleccionar un checkbox me haría escoger el item del datagrid, pero no es así, me marca error, diciendo:
1180: Call to a possibly undefined method modificarTexto. componentesComplejos/src componentesComplejos.mxml line 53 1208094605728 122

Lo cual para mí resulta extraño, quiere decir que los componentes rendereados dentro de otros componentes no pueden llamar otras funciones??

Obvio que cuando saco el checkbox del datagrid si funciona. Ojala hacerse de esta manera, sino la solución sería pasar el texto del datagrid a un campo de texto externo si usar el checkbox y agregarlo con un boton al textarea...

Saludos.
__________________
Webmaster
http://www.conglomodigital.com
cachoron4444 está desconectado   Responder Citando
Antiguo 14-abr-2008, 15:08   #2 (permalink)
falcatin ha deshabilitado la reputación
 
Fecha de Ingreso: enero-2007
Mensajes: 9
Re: Error, no puedo llamar una función

no puedes llamar a una función porque actua como si fuera un componente nuevo.

Es como si este código de tu ej
<mx:itemRenderer>
<mx:Component>
<mx:CheckBox label="Escoger" click="modificarTexto()"/>
</mx:Component>
</mx:itemRenderer>

Lo metieses en un componente nuevo (que de echo es lo que te aconsejo)
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:CheckBox label="Escoger" click="modificarTexto()"/>
</mx:HBos>
(Aunque realmente es lo mismo que el codigo de arriba, las dos formas son iguales)

No sabe que es modificarTexto() porque no existe en el componente, tendrías que llamar con un evento, Application.application... o cualquier historia al procedimiento modificarTexto.
falcatin está desconectado   Responder Citando
Antiguo 14-abr-2008, 19:01   #3 (permalink)
cachoron4444 está en el buen camino
 
Fecha de Ingreso: octubre-2003
Mensajes: 212
Re: Error, no puedo llamar una función

Sale gracias... aun no consigo hacerlo funcionar simplemente no me deja...

No tengo la menor idea de como hacer que si lo reconosca, mediante un evento tampoco me ha resultado
__________________
Webmaster
http://www.conglomodigital.com
cachoron4444 está desconectado   Responder Citando
Antiguo 15-abr-2008, 02:33   #4 (permalink)
falcatin ha deshabilitado la reputación
 
Fecha de Ingreso: enero-2007
Mensajes: 9
Re: Error, no puedo llamar una función

<mx:itemRenderer>
<mx:Component>
<mx:CheckBox label="Escoger" click="Application.application.modificarTexto()"/>
</mx:Component>
</mx:itemRenderer>

Intenta algo así.
falcatin está desconectado   Responder Citando
Antiguo 15-abr-2008, 02:59   #5 (permalink)
cachoron4444 está en el buen camino
 
Fecha de Ingreso: octubre-2003
Mensajes: 212
Re: Error, no puedo llamar una función

Lo siento, lo intente pero sale ootro error =(

SAle este eerror --> Access of undefined property Application


que método usaste tu para tu list con checkboxes?
__________________
Webmaster
http://www.conglomodigital.com
cachoron4444 está desconectado   Responder Citando
Antiguo 15-abr-2008, 03:25   #6 (permalink)
cachoron4444 está en el buen camino
 
Fecha de Ingreso: octubre-2003
Mensajes: 212
Re: Error, no puedo llamar una función

EAAAAAAAAAAAAAAAAA LO LOGREEE!!! FGRACIAS FALCATIN!!!!! A PARTIR DE TU CÓDIGO PUDE ENCONTRAR LA SOLUCIÓN

Código:
<?xml version="1.0"?>
<!-- DataGrid control example. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:components="components.*">
	<mx:Script>
		<![CDATA[
			public function modificarTexto():void 
           {
           	//import mx.controls.Alert;
           	//Alert.show("bien","bientos");
           	textos.text+= dg.selectedItem.name + '\n' ;
	    	}
		]]>
	</mx:Script>
    <mx:XMLList id="employees">
        <employee>
            <name>Christina Coenraets</name>
            <phone>555-219-2270</phone>
            <email>ccoenraets@fictitious.com</email>
            <active>true</active>
        </employee>
        <employee>
            <name>Joanne Wall</name>
            <phone>555-219-2012</phone>
            <email>jwall@fictitious.com</email>
            <active>true</active>
        </employee>
        <employee>
            <name>Maurice Smith</name>
            <phone>555-219-2012</phone>
            <email>maurice@fictitious.com</email>
            <active>false</active>
        </employee>
        <employee>
            <name>Mary Jones</name>
            <phone>555-219-2000</phone>
            <email>mjones@fictitious.com</email>
            <active>true</active>
        </employee>
    </mx:XMLList>

    <mx:Panel title="DataGrid Control Example" height="100%" width="100%" 
        paddingTop="10" paddingLeft="10" paddingRight="10">

        <mx:Label width="100%" color="blue"
            text="Select a row in the DataGrid control."/>

        <mx:DataGrid id="dg" width="100%" height="100%" rowCount="5" dataProvider="{employees}">
            <mx:columns>
                <mx:DataGridColumn dataField="name" headerText="Name"/>
                <mx:DataGridColumn dataField="phone" headerText="Phone"/>
                <mx:DataGridColumn dataField="email" headerText="Email"/>
                <mx:DataGridColumn headerText="Agregar">
                	<mx:itemRenderer>
                	
                		<mx:Component>
                			<mx:CheckBox label="Escoger" 
                				change="mx.core.Application.application.modificarTexto()"/>
                		</mx:Component>
                	</mx:itemRenderer>
                </mx:DataGridColumn>
            </mx:columns>
        </mx:DataGrid>

	 <mx:TextArea id="textos"/>

        <mx:Form width="100%" height="100%">
            <mx:FormItem label="Name">
                <mx:Label text="{dg.selectedItem.name}"/>
            </mx:FormItem>
            <mx:FormItem label="Email">
                <mx:Label text="{dg.selectedItem.email}"/>
            </mx:FormItem>
            <mx:FormItem label="Phone">
                <mx:Label text="{dg.selectedItem.phone}"/>
            </mx:FormItem>
        </mx:Form>
        
    </mx:Panel>
</mx:Application>
Si te fijas sólo agregué public a la función privada para que components pudiera accesarla y agregue a Application.application antes mx.core. y listo!!!!!!!

grax por tu ayuda... saludos
__________________
Webmaster
http://www.conglomodigital.com
cachoron4444 está desconectado   Responder Citando
Antiguo 16-abr-2008, 10:32   #7 (permalink)
Crazy Coder
TMeister tiene algunos puntos positivos de karma
 
Avatar de TMeister
 
Fecha de Ingreso: noviembre-2002
Ubicación: En la Oficina
Mensajes: 2.116
Enviar un mensaje por MSN a TMeister
Re: Error, no puedo llamar una función

El uso de "mx.core.Application" es una mala paractica y no deberia de usuarse, es como si usaramos _root en Flash :S
TMeister esta en línea ahora   Responder Citando
Antiguo 16-abr-2008, 10:34   #8 (permalink)
cachoron4444 está en el buen camino
 
Fecha de Ingreso: octubre-2003
Mensajes: 212
Re: Error, no puedo llamar una función

es que ´no me salía de otra manera.... intentaré usando otras prácticas...
__________________
Webmaster
http://www.conglomodigital.com
cachoron4444 está desconectado   Responder Citando
Respuesta
Califica este Tema - Error, no puedo llamar una función.


Herramientas
Desplegado Califica este Tema
Califica este Tema:

Normas de Publicación
No puedes crear nuevos temas
No puedes responder temas
No puedes subir archivos adjuntos
No puedes editar tus mensajes

BB code is Activado
caritas están Activado
[IMG] está Activado
Código HTML está Desactivado


La zona horaria es GMT -6. Ahora son las 12:59.


Message Board Statistics

LinkBacks Enabled by vBSEO 3.1.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93