Carregando Arquivos

Carregando Arquivos

Introdução:
Algumas extensões como o Direct Show e o 3D Mesh carregam um arquivo e executam-o dentro da aplicação. O problema é que, quando você quer fazer um Player por exemplo, não é o usuário que escolhe o vídeo, e sim o criador da aplicação. Mas, podemos fazer com que quem escolha seja o próprio usuário. E acredite, é muito fácil e rápido. Nesse tutorial, usarei o Direct Show como exemplo. Por quê? Porque aprendi a fazer isso pouco tempo atrás estudando uma engine de Player do site oficial da ClickTeam. Eu poderia simplesmente traduzi-la e disponibilizar aqui, mas preferi escrever uma matéria pra você realmente entender, e não só ir na engine e dar CTRL+C e CTRL+V.

Do que vamos precisar?
* 1 Common Dialog Object
* 1 Global String
* 1 Button (Botão)

Botando a mão na massa:
Antes de mais nada, coloque a Common Dialog Object, o Botão e a extensão que vai carregar o arquivo (no meu caso, Direct Show) no Frame. No botão escreva algo como "Abrir Arquivo".



Uma vez que tenha arrumado tudo no Frame, vamos mudar o nome do Global String A. Vá nas propriedades do seu jogo, e na aba que tem um quadrado branco escrito "A-Z", clique em "New" embaixo de "Global Strings". Vai surgir um quadradinho escrito "1 (Global String A)". Clique duas vezes sobre ele para renomeá-lo. Na caixa de texto, escreva "Diretório" (sem aspas) e clique em Ok.



Agora vem a parte legal: os eventos. Entre no Event Editor, e adicione o seguinte evento:
Button Clicked > Show Open Dialog

Esse evento vai fazer com que quando clicarmos no botão, ele abra o seletor. Esse evento sozinho, é inútil, porque vai abrir o seletor, mas não vai fazer nada.

Ok, agora vamos dar uma função pra esse seletor. Adicione o seguinte evento:
Open Dialog - OK > Set Diretório to GetFilename$("Common Dialog object")
>>>>>>>>>>>>> Load Video (Diretório)
>>>>>>>>>>>>> Play Video


Esse evento vai fazer com que quando clicarmos em "Ok" no seletor, o Global String Diretório (que fizemos no começo do tutorial) vai ter o mesmo valor do diretório do arquivo que foi selecionado pelo seletor. Então, o Direct Show vai carregar o vídeo do Global String Diretório (que é o arquivo escolhido) e vai tocar esse vídeo.

A propósito, normalmente, quando colocamos para alguma extensão (como o Direct Show) carregar algum arquivo, ele vai abrir um seletor. Mas sempre (ou pelo menos em todos que vi) no seletor, na parte de baixo, vai existir um botão escrito "Expression". Esse botão, vai fazer com que ele carregue um arquivo por uma expressão. Se eu coloco entre as aspas Video.avi, ele vai procurar um arquivo chamado Video.avi na mesma pasta do programa, e então, executá-lo. Mas, como não queremos que ele carregue um arquivo específico, e sim o arquivo do nosso Global String Diretório, então, não podemos colocar entre aspas. Ou seja, no caso desse tutorial, temos que apagar as aspas e escrever Diretório (que é o Global String que contém o diretório do arquivo), porque se escrevessemos entre aspas, ele iria procurar um arquivo chamado Diretório dentro da mesma pasta do programa, e não o valor da Global String Diretório.



Até que é fácil não?

Notas:
* Eu utilizei o Direct Show como exemplo, mas esse tutorial se aplica a todas as extensões que carregam arquivos, como o 3D Mesh e o Image Manipulator.

Bom, é isso. Realmente bem simples, mas até pouco tempo eu não sabia.
Falow o/