Loading...

Esse conteúdo foi desenvolvido para ser melhor visualizado em navegadores modernos.

Para um melhor aproveitamento, por favor atualize o seu navegador ou utilize o Chrome, Firefox ou Edge atualizado.

Scorm - Comunicação com LMS

O componente de SCORM foi desenvolvido para facilitar a comunicação com o LMS reduzindo a quantidade de códigos pelo designer e desenvolvedor.

Em e-Learning, os cursos e treinamentos são desenvolvidos com base em Objetos de Aprendizado, isto é, conjuntos de itens de conteúdo, de prática e de avaliação que são combinados com base em um único objetivo. Tais objetos são criados como pacotes compartilháveis contendo um ou mais objetos, e a estes pacotes chamamos SCO ou Objeto de Conteúdo Compartilhável.

O SCORM é um conjunto de padrões e especificações voltado para a portabilidade, interoperabilidade e reusabilidade de conteúdo para e-Learning.

O SCORM, acrônimo de Shareable Content Object Reference Model ou Modelo de Referência de Objetos de Conteúdo Compartilháveis, foi concebido pelo Gabinete da Secretaria de Defesa do Estados Unidos e colocado sob a responsabilidade da ADL.

A portabilidade, ou capacidade de migração, define que cada SCO pode ser armazenado em pacotes em formato ZIP.

A Interoperabilidade (Padronização) permite que tanto o Objeto quanto a API tenham funcionalidades básicas universalmente compatíveis entre os diversos LMSs. A Interoperabilidade (Padronização) permite que tanto o Objeto quanto a API tenham funcionalidades básicas universalmente compatíveis entre os diversos LMSs.

A Reusabilidade (Flexibilização) descreve que cada pacote SCO possui metadados informativos que facilite que seu conteúdo identificado e também que seja reaproveitado em outros cursos, lições ou módulos. A Reusabilidade (Flexibilização) descreve que cada pacote SCO possui metadados informativos que facilite que seu conteúdo identificado e também que seja reaproveitado em outros cursos, lições ou módulos.

Script

Para facilitar a integração, e a sua implementação, dos cursos com os LMS´s o framework conta com uma API simplificada em Javascript.

Todas as variáveis do padrão SCORM podem ser acessadas pelo objeto framework.scorm.

Propriedades de dado (SCORM)

  • student

    • name

    • id

    • audio

    • language

    • speed

    • text

  • score

    • raw

    • max

    • min

  • lesson

    • mode

    • credit

    • status

    • location

Propriedades funcionais (opções)

  • debbug - ( default: false ) Configura se as etapas, processos e erros serão exibidas no console. Valores all( ou true ), none( ou false ), root( objeto em si ), connection( comunicação com o LMS )

  • useLocalcache - ( default: false ) Permite o uso de dados locais no cliente( localStorage / Cookie ) caso não haja conexão com o LMS. Focado para fase de desenvolvimento e testes.

Propriedades de retorno

  • status - ( default: false ) Demonstra a situação atual da comunicação com o LMS. Valores online, offline, booting

Métodos funcionais (opções)

  • hasCacheDefault() - Retorna se existe algum cache salvo.

    if( !scorm.hasCacheDefault() ){
    	// your code
    };
  • setCacheDefault( object ou 'reset' [, replaceCurrentCache ] ) - Salva valores default no cache, ou sobrescreve cache atual.

    scorm.setCacheDefault({
    	'cmi.core.student_name' : 'Scorm default',
    	'cmi.core.student_id'	: 'scorm_default',
    	'cmi.core.score.min'	: 0,
    	'cmi.core.score.max'	: 10,
    	'cmi.suspend_data'		: { 
    		p: [1,0,1,2,1],
    		last_page: 1,
    		results:[0,0,0,0,0,0,0,0,0,0]
     	}
    });

  • updateTime() - Atualiza a contagem de tempo do usuário na tela e salva no LMS.

    scorm.updateTime(); // "00:01:07"

  • newField( nome[, valor(es) ] ) - Cria um novo campo ao sistema SCORM, criando uma nova propriedade gravável e legível. Para poupar

    scorm.newField( 'lvd', (new Date()).getTime() ); // last viewed date
    scorm.lvd; // 1460403991350
    
    scorm.newField( 'pgv', [1] ); // pages viewed
    scorm.pgv.get( 0 ); // 1
    scorm.pgv.set( 0, 12); // 12
    scorm.pgv.get( 0 ); // 12
    scorm.pgv.fill( 5, 1 ); // [0,1,1,1,1]
    scorm.pgv.fill( 5, 2, true ); // [2,2,2,2,2]

  • connect() - Aciona a transição com o LMS.

    scorm.connect();

  • quit() - Encerra a transição com o LMS.

    scorm.quit();
  • on( eventName, callbackFunction ) - Atribui eventos.

    scorm.on('connection.success', function( e, c, s ){
    	console.log('conectado', e, c, s);
    });

Eventos

evento
connection.success Conexão com o LMS feita com sucesso
connection.trying Conexão com o LMS falhou uma tentativa, mas ainda tentando
connection.fail Conexão com o LMS falhou a última tentativa
connection.always Chamado em todos os casos acima.
warn Comportamento irregular
log Retorno secundário de processo
error Erro em um processo

Classes

Para permitir a indicação visual do status da comunicação uma família de classes são alteranadas na raiz do DOM, a tag html, à cada atualização.

classe
scorm-connecting Processo início da comunicação em andamento.
scorm-success Processo de comunicação iniciado com sucesso.
scorm-fail Processo de comunicação falhou.
scorm-localcache Processo de comunicação falhou, mas utilizando versão local.

Integrando

Apesar de o componente de SCORM ser iniciado automaticamente junto com o framework a forma mais segura de acessá-lo é através do HOOK abaixo.

nm.ready( 'before.scorm', function( pack, $) {
	/* seu código aqui para antes de iniciar a conexão */
});
nm.ready( 'scorm', function( pack, $) {
	/* seu código aqui para todas as etapas de conexão */
});
nm.ready( 'after.scorm', function( pack, $) {
	/* seu código aqui para depois de iniciada a conexão */
});

Inicialização

O SCORM é iniciado automaticamente junto com o framework. Contudo, caso haja a necessidade de utilizá-lo em outro projeto, ele pode ser iniciado com e sem AMD.

scorm.debbug = 'true';
scorm.useLocalcache = true;
scorm.on('connection.success', function( e, c, s ){
	console.log('conectado', e, c, s);
});
if( !scorm.hasCacheDefault() ){
	scorm.setCacheDefault({
		'cmi.core.student_name' : 'Scorm default',
		'cmi.core.student_id'	: 'scorm_default',
		'cmi.suspend_data'		: { 
			p: [1,0,1,2,1],
			last_page: 1,
			results:[0,0,0,0,0,0,0,0,0,0]
	 	}
 	});
};
scorm.connect();