Please redirect to http://blog.andreanaya.com
The Edge
4 de abril de 2009Problema com loader|Loader issue
25 de março de 2009Sexta passada estava olhando o Flash Bookmarks e vi que uma dúvida foi postada em relação ao Loader.
Um tempo atrás eu precisei carregar um arquivo utilizando um Loader e depois adicionar o conteudo carregado no stage. Contudo um erro era gerado ao adicionar o conteúdo.
Last friday I was checking Flash Bookmarks and I noticed a question about Loader.
While ago I needed to load a file using a Loader and then add it to the stage. However it raised an error.
ArgumentError: Error #2025 : The supplied DisplayObject must be a child of the caller.
Para resolver o problema eu precisei extrair o conteudo em uma variavel e depois executar um loader.unload() antes de adicionar ao stage.
To solve the problem I needed to extract the conten in a var and then call a loader.unload() before add it to the stage.
function onLoadComplete(e:Event):void{ var image:Bitmap = e.currentTarget.content; loader.unload(); addChild(image); }
É o mesmo caso quando você utiliza o mesmo loader para carregar dois ou mais arquivos.
It’s the same case when you try to load two or more files using the same loader.
DataLib
25 de março de 2009Em meus ultimos trabalhos criei e aperfeiçoei um classe de loader em fila que armazenasse os arquivos carregados para futuras requisições.
During my last jobs I wrote a queue loader class that stores all loaded files for future requests.
DataLib
Overview:
-Static
Por ser uma classe estátca qualquer arquivo carregado pode ser acessado em qualquer parte da aplicação, mesmo de arquivos SWF externos.
Since it’s a static class, any loaded file can be used from any parto of the app, even from external SWF files.
-Load queue
Qualquer arquivo deve ser adicionado em uma fila de carregamentos passando-se o caminho e tipo de arquivo a ser carregado. O arquivo pode ser adicionado no fim da file ou em uma posição especifica.
Any file must be add to a load queue passing the url and type of file to be loaded. The file can be added at the end of the queue or in a especific position.
DataLib.addItem("file.swf", DataLib.TYPE_SWF); DataLib.addItemAt("file.png", 0, DataLib.TYPE_PNG); DataLib.addItem("file.wav", DataLib.TYPE_BINARY);
Também é possivel acessar a file de carregamento.
Also is possible get the load queue.
var queue:Array = DataLib.queue;
Para iniciar o caregamento você deve executar a função DataLib.load()
Támbem é possível pausar, recarregar e parar o carregamento.
To start loading you must call DataLib.load()
Also it’s possible to pause, resume and close the loading.
DataLib.pause(); DataLib.resume(); DataLib.close();
-Data storage
Todo arquivo carregado é armazenado para futuras requisições. Caso necessario os arquivos podem ser deletados, liberando memoria. Os arquivos podem ser acessados utilizando como referência sua URL.
Every load file is stored for future requisitions. If necessary, files can be deleted freeing memory. Get loaded files using it’s URL.
var image:Bitmap = DataLib.lib[fileURL].data; addChild(image); DataLib.removeItem(fileURL);
-Custom Events
Eventos especificos dessa classe podem ser adicionados para acompanhar o carregamento. Você pode adicionar eventos na própria classe ou em um item especifico. *Lembre-se de remover qualquer evento adicionado na classe para evitar conflitos com outros carregamentos
Custom Events cam be added to follow the loading. You can add an event in the class or in a especific item. *Remember to remove all events from the class to prevent conflicts with other loadings.
DataLib.addItemAt("file.png", 0, DataLib.TYPE_PNG).addEventListener(DataLibEvent.PROGRESS, onItemProgress); DataLib.lib[file.xml].addEventListener(DataLibEvent.COMPLETE, onItemComplete); DataLib.addEventListener(DataLibEvent.COMPLETE, onComplete); DataLib.load(); function onItemProgress(e:Event):void{ trace(Math.floor(e.bytesLoaded*100/e.bytesTotal)+"%"); } function onItemComplete(e:Event):void{ trace(e.data); } function onComplete(e:Event):void{ addChild(DataLib.lib[file.png].data); }
-JPG, GIF, PNG, SWF, XML and BINARY
Esses são os arquivos suportados. No caso de arquivos SWF é possível acessar classes exportadas utilizando o application domain do filme principal.
These are the supported files. You can get embed classes in SWF loaded files using the main movie application domain.
DataLib.addItem("asset.swf", DataLib.TYPE_SWF); addChild(DataLib.lib["asset.swf"].data) var EmbedClass:Class = ApplicationDomain.currentDomain.getDefinition("assetEmbedClass") as Class; var instance:* = new EmbedClass();
Você pode fazer o download dessa e outras classes minhas utilizando o meu google code.
You can get this and other classes using my google code.
http://andreanaya.googlecode.com/svn/trunk/
Existe também um exemplo de uso dessa classe.
Theres also an example of usage of this class.
Obrigado a todos e espero que essa classe seja util para vocês. Qualquer problema ou sugestão por favor me informem.
Thanks and I hope this could be usefull for you guys. Any problem or sugestion please tell me.
Anaya
Google code
20 de março de 2009Decidi criar um google code com minhas classes, ainda nao existe nenhuma documentação mas existem exemplos de uso
I’ve decided to create a google code with my classes, there’s no docs yet but there’s some usage examples
Até agora coloquei 4 libs que costumo usar em meus trabalhos:
So far there’s 4 libs that I use in my works:
-DataLib
Classe de loading (exemplo) em fila com armazenamento de dados
Loader class (example) usign queue
-CromelessPlayer
Classe de carregamento e execução de video e playlist
Video class with playlist
-SoundControl
Classe de som (exemplo). *Ainda precisa de muitos ajustes
Sound class (example). *Still need ajustments
-MatrixTween
Classe de tweening baseada no Tweener e TweenLite com controle de tempo independente
Tweening class based on Tweener and TweenLite with time control
Depois de muito tempo|After a long time
20 de março de 2009Ultimos trabalhos lançados
Last jobs
#24 @ http://www.designcharts.com/ - FEB 8th 2009
#24 @ http://www.designcharts.com/ - MAR 22nd 2009
Também sairam nos seguintes sites:
Also @:
http://dopeawards.com/
http://iblog.chubzz.com/
http://anotherbookmark.com/
http://spyline.de/
http://www.webdesignfile.com/
http://www.designlicks.com/
http://bm.straightline.jp/
Long nights no sleep
Bolsas Havaianas
24 de novembro de 2008Bolsas Havaianas (Alpha)
type havahavahava
Pepsi Oficial
10 de outubro de 2008Mais um job lançado
http://www.pepsi.com.br/
One more job launched
http://www.pepsi.com.br/
Reconhecimento de placa de som|Soundcard check
16 de setembro de 2008Para verificar se a placa de som está disponível, veja se a classe SoundChannel não é nula
To check if the soundcard is available, test if the SoundChannel class is not null
var sound:Sound = new Sound(); var channel:SoundChannel = sound.play(); if(channel != null){ trace("Soundcard available"); }else{ trace("Soundcard not available"); }
Livros|Books
4 de setembro de 2008Livros que eu recomendo para quem quer aprender mais sobre as3
Books that I recommend for those who want to learn more about as3
- Essential ActionScript 3.0
- Foundation Actionscript 3.0 Animation: Making Things Move!
E esses livros eu recomendo para quem quer aprender mais sobre matemática direcionada a aplicações 3D e games
And these books I recommend for those who want to learn more about mathematics for 3D apliccations and games
- Essential Mathematics for Games and Interactive Applications: A Programmer’s Guide
- Real-Time Collision Detection
numberLoop
3 de setembro de 2008Um método que eu uso bastante quando preciso de um loop em determinado comprimento de elementos
Here is a method that I use a lot when I need to loop a length of any kind
trace(numberLoop(103754, 3)); //2 trace(numberLoop(686.9384, 17.53)); //3.268399999999957 trace(numberLoop(Math.PI*13/6, Math.PI*2)); //0.5235987755982991 rad - radToDegree == 0.5235987755982991*180/Math.PI -> 30.000000000000014º trace(numberLoop(-2187.4, 2)); //0.599999999999909 function numberLoop(n:Number, t:Number):Number { if(t<=0){ throw new Error("Total must be greater thant 0"); } return (n%t+t)%t; }