Ohrlando 0 Denunciar post Postado Setembro 24, 2010 Olá tudo bem?? seguinte, eu criei um pacote gallery e dentro tem a classe ThumbnailMenu extendida de um Sprite. dentro dela tem uma função chamada init. essa função só pode ser executada quando no 'swf' for chamada, não pode ser na hora que criar a instância. então pensei em deixar ela como um método público do objeto. está assim: package gallery{ ... public class ThumbnailMenu extends Sprite{ ... public var init:Function; //aqui está ela! public function ThumbnailMenu (largura:int, altura:int, thickness:int = 1, showBorder:Boolean = true, borderColor:int = 0x000000, bgColor:int = 0x000000) { ... function init():void{ //aqui dentro que quero definir o conteúdo dela container.graphics.lineStyle(thickness, bgColor, 1); container.graphics.beginFill(borderColor); container.graphics.lineTo(0, 0); ... container.graphics.endFill(); ... }//function function drawMenu():void{ trace("Drawning menu")//não montei o sprite ainda container.mask = maskContainer; } function setMenuMask():void{ //setting mask of the menu function setMenuMask():void{ //setting mask of the menu maskContainer.graphics.lineStyle(thickness, bgColor, 1); ... maskContainer.graphics.endFill(); //container.mask = maskContainer; } ... }//function Thumbnail }//class } //package só quero definir o conteúdo no construtor. Mas tenho que colocar fora porque quero que ela possa ser chamada lá no swf eu tentei dessa maneira parece certa mas não foi dá os seguintes erros TypeError: Error #1006: value is not a function. at myGallery_fla::MainTimeline/drawMenu() at myGallery_fla::MainTimeline/frame1() o que será que tem errado? ps: todos os sprites estão declarados como públicos abrss Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Setembro 24, 2010 package gallery{ public class ThumbnailMenu extends Sprite{ private var _init:Function; public function ThumbnailMenu () { _init = function:void { //seu código } } public function init() :Function { if ( _init == undefined ){ throw new Error( 'A função não está definida' ); } else { return _init(); } } } } Compartilhar este post Link para o post Compartilhar em outros sites
Ohrlando 0 Denunciar post Postado Setembro 24, 2010 opa e aí? beleza? digitei o que você falou mano, mas deu erro no compilador =/ description copy 1084: Syntax error: expecting leftparen before colon. source copy init = function:void{ ficou assim: package gallery{ ... public class ThumbnailMenu extends Sprite{ public var id:int = 4; public var init:Function; public var container:Sprite = new Sprite(); public var menu:Sprite = new Sprite(); ... public function ThumbnailMenu (largura:int, altura:int, thickness:int = 1, showBorder:Boolean = true, borderColor:int = 0x000000, bgColor:int = 0x000000) { ... var maskContainer:Sprite = new Sprite(); init = function:void { //erro aqui! container.graphics.lineStyle(thickness, bgColor, 1); container.graphics.beginFill(borderColor); container.graphics.lineTo(0, 0); ... container.graphics.endFill(); ... drawMenu(); }//function function drawMenu():void{ //drawing sprite of Menu container.addChild(menu); trace ("drawining menu"); setMenuMask(); } function setMenuMask():void{ //setting mask of the menu maskContainer.graphics.lineStyle(thickness, bgColor, 1); ... maskContainer.graphics.endFill(); container.addChild(maskContainer); container.mask = maskContainer; trace ("setou mask"); } ... }//function public function _init() :Function { if (init == undefined ){ throw new Error( 'A função não está definida' ); } else { return _init(); } } }//construtor } :'( Compartilhar este post Link para o post Compartilhar em outros sites
João Batista Neto 448 Denunciar post Postado Setembro 24, 2010 opa e aí? beleza? digitei o que você falou mano, mas deu erro no compilador =/ Sim, esqueci dos parênteses. init = function() :void{} Compartilhar este post Link para o post Compartilhar em outros sites
Ohrlando 0 Denunciar post Postado Setembro 24, 2010 perfeitO! nossa mano! valeu mesmo =D abraçO! só uma coisa.... lá na public function public function _init() :Function { if (init == undefined ){ throw new Error( 'A função não está definida' ); } else { return _init(); } } deu erro na linha do if, quer dizer, não erro, um aviso Warning: 1012: Variables of type Function cannot be undefined. The value undefined will be type coerced to Function before comparison. Compartilhar este post Link para o post Compartilhar em outros sites