Foro

Utilizar funciones de un archivo externo en Sencha Touch 2

0
Buenas tardes, esta es la situación:

Tengo una app (es una simple cuenta atras), donde utilizo unas funciones que estan en el mismo archivo.
Quiero poner esas funciones en un archivo externo (funciones.js por ejemplo) y utilizarlas en Main.js.
¿Como puedo hacer eso?

Este es el codigo de Main.js

 
Ext.define('temporizador.view.Main', 
{

extend: 'Ext.Container',
xtype: 'main',

requires:
[

],

config:
{

items:
[

{
xtype: 'label',
html: '5',
flex: 1,
id: 'tsegundos'
},
{
xtype: 'label',
html: 'seg',
flex: 1
},
{
<!-- Barra con botones -->
xtype: 'toolbar',
docked: 'bottom',

items:
[
{
xtype: 'button',
text: 'Iniciar',
ui: 'confirm',
id: 'btniniciar',

listeners:
{
tap: function(e)
{
var boton = Ext.getCmp('btniniciar')
var nuevoSeg = boton.getText()
var segundos = Ext.getCmp('tsegundos')
var tiempoSeg = segundos.getHtml()

function empezar()
{
if (nuevoSeg == 'Iniciar')
{
eltemp = setInterval(tiempo,1000)
}
}

function tiempo()
{
tiempoSeg = tiempoSeg - 1
segundos.setHtml(tiempoSeg)

if (tiempoSeg == 0)
{
clearInterval(eltemp)

boton.setText('Iniciar')
boton.setUi('confirm')
}
}

function parar()
{
if(nuevoSeg == 'Detener')
{
clearInterval(eltemp)
}
}
if (boton.getText() == 'Iniciar')
{
if(tiempoSeg != '0')
{
boton.setText('Detener')
boton.setUi('decline')

empezar()
}

}
else
{
boton.setText('Iniciar')
boton.setUi('confirm')

parar()
}
}
}
},
{
<!-- Boton de Restablecer -->

xtype: 'button',
text: 'Restablecer',
ui: 'normal',

listeners:
{
tap:function(e)
{
var segundos = Ext.getCmp('tsegundos')
segundos.setHtml('5')

}
}
}
]

}
]
}
});

0
Hola Oacmanu.

Depende de como estes definiendo tu aplicación, si estas usando el Sencha CMD tendrias que definir en el app.json el path del archivo JS que quieres cargar y listo, el microloader lo agregara al html y podras usar las funciones sin problema.

Si no estas usando el Sencha CMD te recomendaria crear una clase para definir tus funciones ahi, y luego usar el Ext.Loader para requerir la clase de utilierias a las clases donde la necesites.

Saludos
oaicmanu: Gracias por la ayuda, pero no consigo hacer que llame a la funcion: He añadido el archivo a app.json: { "path": "app/c 11/12/2013
0
Gracias por la ayuda, pero no consigo hacer que llame a la funcion:

He añadido el archivo a app.json:
        {
"path": "app/controller/funciones.js",
"x-bootstrap": true,
"update": "delta"
}

El contenido de funciones.js es el siguiente:

mostrar: function()
{
var label = Ext.getCmp('label')
label.setHidden(false)
}

y asi es como la llamo en Main.js:

mostrar()

El error que me da es:  Uncaught ReferenceError: mostrar is not defined

¿Que error estoy cometiendo?

Crysfel Villa: mmmm eso es todo lo que tienes en funciones.js? de ser asi la sintaxis es incorrecta. 11/12/2013

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.