Classe FileReferenceList (Português)

ActionScript 3.0, Adobe AIR, Adobe Flash, Adobe Flex, Orientação a Objetos Deixe um comentário »

Fonte: http://livedocs.adobe.com/flex/201/langref/flash/net/FileReferenceList.html 

A classe FileReferenceList fornece recursos para permitir o usuário selecionar um ou mais arquivos para upload. Um objeto FileReferenceList representa um grupo de um ou mais arquivos locais no disco do usuário como um array de objetos FileReference.

Para trabalhar com a classe FileReferenceList:

  •  Instanciar a classe: var frl:FileReferenceList = new FileReferenceList();
  • Chamar o método FileReferenceList.browse(), que abre uma janela que permiete o usuário selecionar um ou mais arquivos para upload: frl.browse();
  • Depois o método é browse() ser chamado com sucesso, a propriedade fileList do pobjeto FileReferenceList é populado com um array de objetos FileReference.
  • Chame FileReference.upload() em cada elemento do array fileList.

A classe FileReferenceList inclui um método browse() e uma propriedade fileList para trabalhar com múltiplos arquivos. Enquanto uma chamada para FileReferenceList.browse() está em execução, o arquivo pausa a reprodução em stand-alone e players externos para Linux e Mac OS X 10.1 e versões anteriores.

Propriedades Públicas

  • fileList:Array – [somente leitura] Cria um novo objeto FileReferenceList.
  • browse(typeFilter:Array):Boolean – Apresenta uma janela que permite o usuário selecionar um ou mais arquivos para upload.

Eventos

  • cancel – Disparado quando o usuário fecha a janela.
  • select – Disparado quando o usuário seleciona um ou mais arquivos para upload de uma janela de arquivo

Classe FileReference (Português)

ActionScript 3.0, Adobe AIR, Adobe Flash, Adobe Flex, Orientação a Objetos Deixe um comentário »

Resolvi traduzir, apesar do meu inglês não ser muito avançado, da documentação da Adobe, para que todos tivessem um conhecimento maior da classe FileReference e de outras que pretendo traduzir. 

Essa especificamente agora, pois estarei postando aqui no Blog um tutorial de como desenvolver um MultiFileUpload com Flex e PHP.

Se alguma tradução não estiver de acordo, mande um e-mail, deixe um comentário. 

Boa leitura! 

FileReference 

Fonte:  http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/FileReference.html

A classe FileReference fornece recursos para upload e download de arquivos entre o cliente e o servidor. Uma janela avisa o usuário para selecionar um arquivo para upload ou um local para download. Cada objeto FileReference referencia um único arquivo no disco do usuário e tem propriedades que contêm informações sobre o arquivo: Tamanho, tipo, data de criação, data de modificação e tipo do criador (somente Macintosh).

Instâncias FileReference são criadas em dois passos:

  • Quando você usa o operador new com o construtor FileReference: var fr:FileReference = new FileReference();
  • Quando você chama o método FileReferenceList.browse(), que cria um array de objetos FileReference.

Durante a operação de upload, todas as propriedades de um objeto FileReference são populados por chamadas para os métodos FileReference.browse() ou FileReferenceList.browse(). Durante uma operação de download, a propriedade name é populada quando o evento select é disparado, todas as outras propriedades são populadas quando o evento complete é disparado.

O método browse() abre uma janela do sistema operacional para o usuário selecionar um arquivo para upload.

O método FileReference.browse() pemite o usuário selecionar somente um arquivo; o método FileReferenceList.browse() permite o usuário selecionar múltiplos arquivos. Depois de uma chamada bem sucedida do método browse(), chame o método FileReference.upload() para fazer o upload de um arquivo de cada vez.

As classes FileReference e FileReferenceList não permitem definir o local padrão de arquivos para a caixa de diálogo que os métodos browse() ou download() geram. O local padrão mostrado na caixa de diálogo é a pasta que recentemente foi mais acessada, se aquele local puder ser determinado, ou o desktop. As classes não permitem ler ou escrever a partir do arquivo transferido. Elas não permitem que o arquivo SWF que iniciou o upload ou download acesse o arquivo baixado ou a localização no disco do usuário.

As classes FileReference e FileReferenceList também não fornecem métodos para autenticação. Como servidores que requerem  autenticação, você pode baixar arquivos com o Flash Player, mas upload (em todos players) e download (no stand-alone ou player externo) falha. Observe os eventos FileReference para determinar se as operações foram concluídas com êxito e para tratar os erros.

Para operações de upload e download, um arquivo SWF pode acessar somente dentro do mesmo domínio, incluindo alguns domínios que estiverem especificados em um arquivo cross-domain policy. Coloque um arquivo policy no servidor se iniciar upload ou download de outro servidor de arquivos.

Enquanto chamadas para o FileReference.browse(), FileReference.browse(), FileReferenceList.browse(), ou FileReference.download() são executadas, o arquivo SWF pausa a reprodução em stand-alone e players externos para o Mac OS X 10.1 e anteriores.

Propriedades Públicas

  • creationDate : Date - [somente leitura] A data de criação do arquivo no disco local.
  • creator : Strng – [somente leitura ] O tipo criador de arquivo do Macintosh, que só é usado no Mac OS em versões anteriores ao Mac OS X.
  • extension : String – [AIR][somente leitura] A extensão do arquivo.
  • modificationDate : Date – [somente leitura] A data que o arquivo foi modificado no disco local.
  • name : String – [somente leitura] O nome do arquivo no disco local.
  • size : Number – [somente leitura] O tamanho do arquivo no disco local.
  • type : String – [somente leitura] O tipo de arquivo.

Métodos Públicos

  • FileReference() – Cria um novo objeto FileReference.
  • browse(tipeFilter:Array = null):Boolean – Apresenta uma janela que permite o usuário selecionar um arquivo para upload.
  • cancel():void – Cancela qualquer operação de upload ou download em curso neste objeto FileReference.
  • download(request:URLRequest, defaultFileName:String = null):void – Abre uma janela que permite o usuário baixar um arquivo de um servidor remoto.
  • upload(request:URLRequest, uploadDataFieldName:String = “FileData”, testUpload:Boolean = false):void – Inicia o upload de um arquivo selecionado por um usuário para um servidor remote.
  • uploadUnencoded(request:URLRequest):void – Inicia o upload de um arquivo para uma URL sem qualquer codificação.

Eventos

  • cancel – Disparado quando o upload ou download de arquivos é cancelado através de uma caixa de diálogo de navegação pelo usuário.
  • complete – Disparado quando download é completado ou quando o upload gerar um HTTP status código 200.
  • httpResponseStatus – [AIR] Disparado se a chamada para o método upload() ou uploadUnencoded tenta acessar os dados sobre HTTP e Adobe AIR é capaz de detectar e retornar o código de status da solicitação.
  • httpStatus – Disparado quando um upload falha e um status HTTP está disponível para descrever a falha.
  • ioError – Disparado quando uma operação de upload ou download falha.
  • open – Disparado quando uma operação de upload ou download inicia.
  • progress – Disparado periodicamente durante a operação de upload ou download.
  • securityError – Disparado quando uma chamada para o método FileReference.upload() ou FileReference.download() tenta fazer o upload de um arquivo de um servidor ou pegar um arquivo de um servidor que esteja fora do sandbox de segurança da chamada.
  • select – Disparado quando o usuário seleciona um arquivo para download ou upload de uma janela do sistema.
  • uploadCompleteData – Disparado após os dados serem recebidos pelo servidor depois de um upload bem-sucedido.

Download - Apostila de Web Standards

AJAX, Acessibilidade, Adobe Flash, Internet, JavaScript 1 Comentário »

Juntamente com André Espeiorin, programador no Ministério da Educação e mantenedor do www.blogdoxorna.com e Andrea Poletto, coordenadora do núcleo de acessibilidade do projeto SIEP (Sistema de Informação na Educação Profissional e Tecnológica) do Ministério da Educação, desenvolvi uma Apostila de Web Standards, englobando XHTML, CSS, Tableless, Acessibilidade, Flash e AJAX Acessível.

Pensada para o uso de conceitos e técnicas práticas, foi usada em diversos treinamentos e distribuida pela Rede de Desenvolvimento do SIEP.

Tendo sempre em mente contribuir para a comunidade, alcançando uma web mais rica e acessível, disponibilizo para donwload aqui, para todos os interessados.

Boa leitura!

ActionScript 3.0 - Sintaxe

ActionScript 3.0, Adobe AIR, Adobe Flash, Adobe Flex, Orientação a Objetos 3 Comentários »

Para quem vem acompanhando o meu blog, talvez tenha percebido, ou não, que meu objetivo é escrever posts que se complementem e que para quem está iniciando o aprendizado em ActionScript 3.0, Flex ou mesmo o Flash, consiga ter uma sequência num aprendizado junto comigo.

Eu desenvolvo sites e sistemas web desde 2003 e no início, como todo iniciante, ficava ansioso para ver tudo funcionando na tela. Bom, durante este tempo aprendi que não adianta querermos aprender o avançado antes de termos uma base sólida nos conceitos fundamentais, seja o que for que estivermos estudando, por isso antes mesmo de desenvolvermos em ActionScript 3.0, é importante saber como a linguagem deve ser escrita, ou seja, qual a sua sintaxe.

A sintaxe de uma linguagem define as regras que devem ser seguidas quando escrever código executável.

Case sensitivity

ActionScript é uma linguagem case-sensitive, o que significa que os identificadores diferem em case (letras maiúsculas de minúsculas). Abaixo, como exemplo duas variáveis diferentes:

var num1:int;
var Num1:int;

Sintaxe de ponto (Dot sintax)

O operador ponto (.) disponibiliza um caminho para acessar as propriedades e métodos de um objeto. Por exemplo, considere a classe:

class ExemploPonto {
	public var prop1 : String;
	public function metodo1() : void {}
}

Acessando a propriedade e o método da classe a partir de uma instância.

var meuPonto : ExemploPonto = new ExemploPonto();
meuPonto.prop1 = “oi”;
meuPonto.metodo1();

Podemos usar dot sintax para definir pacotes, usando o operador ponto (.) para referir-se a pacotes internos. Por exemplo, a classe EventDispatcher está dentro de um pacote chamado events, que está dentro de um pacote chamado flash. Você pode fazer referencia ao pacote events usando a seguinte expressão:

flash.events

Você também pode referir-se a classe EventDispatcher usando esta espressão:

flash.events.EventDispatcher

Literais
Um literal é um valor que aparece diretamente no seu código. Os exemplos abaixo são todos literais:

17
"oi"
-3
9.4
null
undefined
true
false

Literais também podem ser agrupados para formar literais compostos. Arrays literais são escritos dentro de colcheteses ([ ]) e são usadas virgulas para se separar os elementos do array.

Um array literal pode ser usado para inicializar um array. Abaixo exemplo de dois arrays sendo inicializados usando arrays literais. Você pode usar a declaração new e passar o literal composto como um parâmetro para o construtor da classe Array, mas você também pode declarar valores literais diretamente quando instancia instâncias das classes: Object, Array, String, Number, int, uint, XML, XMLList e Boolean.

// Usando a declaração new.
var minhasStrings:Array = new Array(["alpha", "beta", "gamma"]);
var meusNumeros:Array = new Array([1,2,3,5,8]);
// Declarando diretamente com literais.
var minhasStrings:Array = ["alpha", "beta", "gamma"];
var meusNumeros:Array = [1,2,3,5,8];

Literais podem ser usadas para inicializar um objeto genérico. Um objeto genérico é uma instância da classe Object. literais Object são colocados dentro de chaves ({ }) e usa vírgulas para separaras propriedades do objeto. Cada propriedade é declarada com dois pontos ( : ), que separa o nome da propriedade do valor da propriedade. Você pode usar a declaração new e passar o literal composto como um parâmetro para o construtor da classe Object. Veja o exemplo a seguir:

// Usando a declaração new.
var meuObjeto:Object = new Object({propA:1, propB:2, propC:3});
// Declarando diretamente com literais.
var myObject:Object = {propA:1, propB:2, propC:3};

Ponto e vírgura ( ; )

Você pode usar ponto e vírgula para terminar uma declaração. Alternativamente, se você omitir o ponto e vírgula, o compilador irá assumir que cada linha de código representa uma declaração.

Parênteses

Você irá usar parênteses em 3 casos:

1. Para alterar a ordem das operações em uma expressão. Operações agrupadas dentro de parênteses são executadas primeiro.

trace(2 + 3 *4); //14
trace((2 + 3) *4); //20

2. Você pode usar parênteses com o operador vírgula ( , ) para avaliar uma série de expressões e retornar o resultado no final da expressão.

var a:int = 2;
var b:int = 3;
trace((a++, b++, a+b)); // 7

3. Você usa parênteses para passar um ou mais parênteses para funções ou métodos.

trace("oi");

Comentários

O código ActionScript 3.0 suporta dois tipos de comentários: um linhas e de várias linhas. O compilador ignora o que estiver marcado como um comentário.

// comentário de uma linha
/*
comentário
de várias
linhas

*/

Palavras-chave

Palavras-chave não podem ser usadas como identificadores em seu código, pois estas palavras são reservadas para o ActionScript. As palavras reservadas incluem palavras-chave léxicas, que são transferidas para o namespace do programa pelo compilador. O compilador pode retornar um erro se você usar uma palavra léxica como um identificador. Abaixo uma lista de palavrasa lexicas:

  • as
  • break
  • case
  • catch
  • class
  • const
  • continue
  • default
  • delete
  • do
  • else
  • extends
  • false
  • finally
  • for
  • function
  • if
  • implements
  • import
  • in
  • instanceof
  • interface
  • internal
  • is
  • native
  • new
  • null
  • package
  • private
  • protected
  • public
  • return
  • super
  • switch
  • this
  • throw
  • to
  • true
  • try
  • typeof
  • use
  • var
  • void
  • while
  • with

Este é um grupo de palavras-chave, chamado palavras-chave sintática, estas podem ser usadas como identificadores, mas tem um significado especial em certos contextos. Abaixo a lista de palavras-chave sintáticas:

  • each
  • get
  • set
  • namespace
  • include
  • dynamic
  • final
  • native
  • override
  • static


Estes também são alguns identificadores que às vezes são referidos como futuras palavras reservadas. Estes identificadores não são reservados para o ActionScript 3.0, apesar de terem que ser tratadas como palavras-chave para produtos ActionScript 3.0 incorporados. Você esta apto a usar vários destes identificadores em seu código, mas a Adobe recomenda você não usar pois poderão aparecer como palavras-chave em futuras versões da linguagem.

  • abstract
  • boolean
  • byte
  • cast
  • char
  • debugger
  • double
  • enum
  • export
  • float
  • goto
  • intrinsic
  • long
  • prototype
  • short
  • synchronized
  • throws
  • to
  • transient
  • type
  • virtual
  • volatile


Conhecendo a sintaxe estamos melhor preparados para desenvolver de forma mais sólida e correta.

Um abraço e até o próximo post!

Acessibilidade no Flash

Acessibilidade, Adobe Flash 3 Comentários »

Como algumas pessoas sabem, eu participo do projeto SIEP - Sistema de Informação de Educação Profissional, do Ministério da Educação, no qual trabalho com uma equipe que envolve pessoas especializadas em educação assistiva, cegos, surdos e desenvolvedores.  No núcleo de Bento Gonçalves, CEFETBG, responsável pela acessibilidade dos sistemas.

E para este projeto me foi solicitado para desenvolver um tutorial de acessibilidade no Flash, o qual eu disponibilizo aqui para todos interessados em tornar a web e objetos desenvolvidos em Flash disponíveis a todos, independente de deficiências.

Introdução

O Flash já foi alvo de muitas críticas, incluindo do famoso Jakob Nielsen, pai da usabilidade, sobre suas deficiências ao gerar conteúdos acessíveis.

Bom a Macromedia, atualmente Adobe, contratou o próprio Jakob Nielsen, autor das maiores críticas, como consultor para melhorar o programa. O resultado foi o surgimento de um painel novo, além de novas características em outros painéis.

Vamos ver como utilizar estes painéis da forma correta, aplicando ao documento, menus e campos de texto.

Para este manual básico, estarei utilizando a versão CS3 do Flash, mas as mesmas ferramentas e painéis são encontradas nas versões MX 2004 e 8.

Acessibilizando o documento

Janela Document Properties

Janela Document Properties
Imagem 1 - Janela Document Properties

Para abrir esta janela, vá até o menu Modify > Document.

Para cada arquivo em Flash que for desenvolver é importante que defina duas informações sobre o mesmo (Imagem 1):

  1. Title – Este campo serve para determinar um título para o arquivo, uma informação breve, sobre o documento, como por exemplo: “Catálago de produtos”.
  2. Description – Neste campo faça uma breve descrição sobre o conteúdo do arquivo e seu propósito. Como por exemplo: “Conheça nossas linhas de produtos”.

Com o documento descrito podemos começar a desenvolver nosso projeto, sabendo que já informará ao usuário que documento ele está acessando e qual o seu propósito.

Painel Acessibility

Com este painel podemos gerar conteúdo acessível, fornecendo equivalentes textuais aos elementos utilizados no Flash (Imagem 2).

Painel Accessibility
Imagem 2 - Painel Accessibility

Para abrir este painel, vá até o menu Window > Other Panels > Acessibility.

Acessibilizando Textos

Por padrão, o Flash permite o acesso a todos os elementos textuais para os leitores de tela. Não sendo necessário fazer nenhuma modificação. Mas é importante observar que as opções do painel Accessibility mudam de acordo com o tipo de Campo Texto que for utilizado.

Static Text (Texto Estático)

Se escrever qualquer texto utilizando o campo Static Text, vai encontrar no painel Accessibility apenas a mensagem (imagem 4): “Current selection cannot have accessibility applied to it” ou seja: “A seleção atual não tem acessibilidade aplicada a ela”, o que nos informa que não há opções a serem configuradas para ela, veja a Imagem 3. Mas é importante deixar ativa a opção “selectable”, imagem 3, que possibilita a seleção do texto, isto permite que usuário selecione o texto e facilita a acessibilidade para alguns leitores de tela.

Opção selectable
Imagem 3 - Opção selectable

Accessibility Static Text
Imagem 4 - Campo Static Text

Dynamic Text (Texto Dinâmico)

Os campos de texto do tipo Dynamic Text, quando com a opção “Make object Accessible” ou seja “Torne o objeto acessível”, estiver ativada, permitirá ao leitor de tela ler exatamente o conteúdo escrito no mesmo. Mas se achar necessário poderá contar com mais duas configurações (imagem 5):

  1. Description (Descrição) – Utilize esta opção para definir uma pequena descrição do campo, o qual deve ser feita apenas se o campo necessitar de maiores explicações, o que na maioria das vezes não é necessário.
  2. Tab index (Ordem da Tabulação) – Utilizado para definir a ordem que o objeto será selecionado quando o usuário navegar utilizando as teclas TAB e SHIFT+TAB.

Accessibility Dynamic Text
Imagem 5 - Campo Dynamic Static

Input Text (Texto de Entrada)

No campo de texto do tipo Input Text, configuramos o painel Accessibility da mesma forma que fariamos na linguagem (X)HTML, onde é indicado definir um “Name” – um rótulo para o campo de texto, para que o usuário saiba o que está preenchendo, e quando for necessário coloque uma descrição no campo “Description”, como por exemplo: “Campo obrigatório”.

Além destas duas opções ainda temos os campos (imagem 6):

  1. Shortcut – que serve para definir um atalho, um acesso rápido ao campo, o que é feito definindo uma letra ou número, como por exemplo: “A”. O atalho para o usuário será a tela ALT juntamente com a letra ou número definido, no nosso exemplo o atalho é “ALT + A”.
  2. Tab index – No caso de formulários é muito importante definir a ordem da tabulação para que o usuário tenha uma ordem lógica definida ao preencher os campos. Caso contrário ele ficará preso à ordem de criação dos campos.

Accessibility Input Text
Imagem 6 - Campo Input Text

Acessibilizando Buttons e MovieClips

O termo “etiquetar” é bem conhecido por quem desenvolve conteúdo acessível, que significa identificar textualmente um elemento, o que é feito no HTML com imagens através do atributo “alt” e no Flash é feito através do painel Accessibility.

Tanto os Buttons como os MovieClips tem que ser etiquetados, pois mesmo contendo campos de texto inseridos no seu corpo, é um elemento fechado e pode acarretar em não ser acessado pelo leitor de tela.

Para demonstrar como etiquetar um menu de navegação, criei no Flash dois elementos utilizados para este fim, um Button, com a função de voltar e um MovieClip com a função de avançar numa apresentação de um objeto de aprendizagem.

A utilização do Symbol Button é para botões mais simples, sem uma animação mais elaborada, enquanto o Symbol MovieClip, deve ser utilizado para botões animados e com aspectos visuais mais elaborados.

Acessibilizando um Button

O Button tem as mesmas opções que foram vistas nos campos de texto, então basta configura-lo da mesma forma, mas é importante salientar a importância de determinar o rótulo do botão no campo “Name” do painel Accessibility, para este botão do exemplo o Name seria “Voltar” e nos casos que forem necessários determine a descrição no campo Description, aqui poderíamos utilizar: “Clique para voltar para o slide anterior”.

Para botões com a função de navegação de slides, como “Voltar” e “Avançar” é importante definir corretamente o Tab index e um Shortcut, como exemplificado na imagem abaixo:
Acessibilizando botões
Imagem 7 - Símbolo Button

Para botões animados desenvolvidos com MovieClips, tem apenas uma diferença no painel Accessibility para os botões definidos pelo Symbol Button, a opção “Make child objects accessible” ou seja, “Tornar os objetos filhos ( ou internos ) acessíveis”.

Acessibilizando um MovieClip

Neste caso como o MovieClip pode desde ter a simples funcionalidade de um botão até ter a função de recipiente de partes ou de toda uma animação, a opção “Make child objects accessible”, permite que os elementos internos do MovieClip possam ser lidos pelo leitor de tela, os quais devem também estar com as suas opções de acessibilidade definidas.
Acessibilizando movieclipes
Imagem 8 - Símbolo MovieClip

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Login