Nos sistemas Windows/Linux, o menu de contexto aparece ao clicar o botão direito do mouse. Nos sistemas Mac, o menu de contexto aparece ao clicar o mouse com a tecla Ctrl pressionada. Os códigos que usarei nos exemplos deste post permitem que a opção de salvar apareça ao fazer o clique (de menu de contexto) sobre a imagem.
EXEMPLO 1
Neste primeiro exemplo, será carregada somente uma imagem. Faça o clique do menu de contexto sobre ela para ver a opção “Save image as…“:
Este foi o código que usei neste exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | var loader:Loader = new Loader() loader.load(new URLRequest("single.jpg")) loader.x = 160 loader.y = 40 addChild(loader) var fr:FileReference = new FileReference() var cm:ContextMenu = new ContextMenu() var cmi:ContextMenuItem = new ContextMenuItem("Save image as...") cm.hideBuiltInItems() cm.customItems = [cmi] cmi.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, saveAs) function saveAs(e:ContextMenuEvent) { fr.download(new URLRequest(e.mouseTarget.loaderInfo.url)) } loader.contextMenu = cm |
EXEMPLO 2
Neste segundo exemplo, serão carregadas 4 imagens. Se fosse usada só uma instância da classe Loader para carregar todas as imagens, a propiedade e.mouseTarget.loaderInfo.url daria o mesmo resultado em todos os menus de contexto e todos salvariam a mesma imagem. Por isso, se deve usar uma instância de Loader para cada imagem que for carregar. Faça o clique do menu de contexto sobre qualquer das imagens para ver a opção “Save image as…“:
Este foi o código que usei no ActionScript deste exemplo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | var xml:XML var i:int = 0 var urlloader:URLLoader = new URLLoader() urlloader.load(new URLRequest("multiple.xml")) urlloader.addEventListener(Event.COMPLETE, urlloaderComplete) function urlloaderComplete(e:Event){ xml = XML(e.currentTarget.data) for(i=0; i< xml.children().length(); i++){ var loader:Loader = new Loader() loader.load(new URLRequest(xml.child(i).@src)) loader.x = 200*(i%2) + 75 loader.y = 150*int(i/2) + 45 loader.contextMenu = cm addChild(loader) } } var fr:FileReference = new FileReference() var cm:ContextMenu = new ContextMenu() var cmi:ContextMenuItem = new ContextMenuItem("Save image as...") cm.hideBuiltInItems() cm.customItems = [cmi] cmi.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, saveAs) function saveAs(e:ContextMenuEvent) { fr.download(new URLRequest(e.mouseTarget.loaderInfo.url)) } |
Assim como no post de AS3 + XML : slideshow simples eu usei um arquivo XML para carregar várias imagens externas, neste exemplo fiz o mesmo usando o arquivo multiple.xml e este foi o código que coloquei no arquivo:
1 2 3 4 5 6 7 | <?xml version="1.0" encoding="UTF-8"?> <images> <img src="multiple1.jpg" /> <img src="multiple2.jpg" /> <img src="multiple3.jpg" /> <img src="multiple4.jpg" /> </images> |
Salvar Imagem Carregada Externamente (FLAs salvos como CS4)
Baixado 45 vezes
Tamanho 78.42 kB

em 11 de outubro de 2011
nice!
em 11 de outubro de 2011
Poxa! Que legal esse post Igor! Bem útil mesmo, muito bom! ^^