WTF? O.o Que diabos de IF é esse? He he he...
Closures for the win! Eu creio que você queira continuar teu código após a
popup estar fechada, é isso?
Se for, basta adicionar um evento ao popup do tipo close (veja a sintaxe
correta do evento pq to fazendo de cabeça):
pop1.addEventListener(Event.Close, function():void
{
// Código a executar depois da popup ser fechada.
});
Se quiser que o código apareça depois que a popup estiver criada (para evitar
problemas com o creation policy), closure for the win também:
PopUpManager.centerPopUp(pop1);
callLater(function():void
{
// Código a executar depois da popup estar devidamente criada (ao menos
o primeiro nível)
});
From: Fabio Ebner
Sent: Monday, December 07, 2009 12:22 PM
To: [email protected]
Subject: [flexdev] Re: Alert Customizado
Cara so mais 1 coisa.. eu fiz o seguinte codigo:
var placemarks:Array=event.response.placemarks;
if (placemarks.length > 0)
{
if (placemarks.length > 1)
{
var
pop1:SelecionarEnderecos=SelecionarEnderecos(PopUpManager.createPopUp(this,
SelecionarEnderecos, true));
PopUpManager.centerPopUp(pop1);
pop1.enderecoList=placemarks;
pop1.enderecoSelecionado=endereco;
}
map.setCenter(placemarks[0].point);
var marker:Marker=new Marker(placemarks[0].point);
map.addOverlay(marker);
marker.addEventListener(MapMouseEvent.CLICK,
function(event:MapEvent):void
{
marker.openInfoWindow(new InfoWindowOptions({title:
"Geocoded Result", content: placemarks[0].address}));
});
}
}
porem queria q ele esperaca o retorno do meu var
pop1:SelecionarEnderecos=SelecionarEnderecos(PopUpManager.createPopUp(this,
SelecionarEnderecos, true)); para continuar.. tem como fazer isso??
pq dessa forma ele continua executando o que esta embaixo
valeu
2009/12/7 Fabio Ebner <[email protected]>
o mlkao foi .. o q acontece q eu estava fazendo dentro de um funcao dentro de
outra.. dai ele estava se confundindo.. joguei pra uma funcao simples rodou :D
2009/12/7 Marcel Pigozzi <[email protected]>
ah é verdade ... confusão minha! mals =/
2009/12/7 J.C.Ködel <[email protected]>
this representa o escopo atual, não a classe!
Principal motivo de confusão em closures (anonymous delegates).
ex.:
public class foo()
{
public function bar():void
{
var x:Object = this; // x é do tipo foo
callLater(function():void
{
var y:Object = this; // y é um delegate anônimo
(funct...@000000)
});
}
}
From: Marcel Pigozzi
Sent: Monday, December 07, 2009 11:35 AM
To: [email protected]
Subject: [flexdev] Re: Alert Customizado
opa ...
fiz aqui um teste, colocando um canvas dentro da application .. certo ?
Quando a application é carregada, ela chama o canvas ... e ele trata do PopUp
... aqui funcionou tranquilo ... o this, se não me engano, corresponde a
própria classe ... ;-)
[]s
2009/12/7 Fabio Ebner <[email protected]>
Entao pelo q eu entendi o q acontece, para dar certo esse meu THIS
teria q ser a minha mx:Application porem eu estou chamando ele de dentro de um
canvas, logo qdo vou o this ele fala q nao consegue converter o canvas para
Application, tentei usar this.parent dentro do canvas, porem ele me retorna
null, sabe como eu posso pegar o parent do meu canvas dentro dele??
valeu
2009/12/7 Marcel Pigozzi <[email protected]>
Testei aqui e funcionou ...Deve ter alguma coisa errada no seu
application
no entanto, fiz de outra forma ... veja como ficou:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
private var _win:SelecionarEnderecos;
private function onClick():void {
_win = new SelecionarEnderecos();
PopUpManager.addPopUp(_win, this, true);
}
]]>
</mx:Script>
<mx:Button id="btn" click="onClick()" />
</mx:Application>
t+
2009/12/7 Fabio Ebner <[email protected]>
Marcel , esta quase la, eu executo a seguinte linha:
var
pop1:SelecionarEnderecos=SelecionarEnderecos(PopUpManager.createPopUp(this,
SelecionarEnderecos, true));
estou recebendo o seguinte erro:
TypeError: Error #1034: Falha de coerção de tipo: não é possível
converter glo...@4016d91 em flash.display.DisplayObject.
esse glo...@4016d91 e o meu this. da funcao createPopUp;
segue a minha SelecionarEnderecos:
<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute"
width="602"
height="252"
title="Selecionar Endereço"
showCloseButton="false"
visible="true">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
[Bindable]
public var enderecoList:Array;
private function selectEndereco(evt:Event):void
{
removeMe();
}
private function removeMe():void
{
PopUpManager.removePopUp(this);
}
]]>
</mx:Script>
<mx:DataGrid x="10"
y="10"
width="562"
height="162"
id="listaEndereco"
editable="false"
enabled="true"
dataProvider="{enderecoList}">
<mx:columns>
<mx:DataGridColumn headerText="Column 1"
dataField="col1"/>
<mx:DataGridColumn headerText="Column 2"
dataField="col2"/>
<mx:DataGridColumn headerText="Column 3"
dataField="col3"/>
</mx:columns>
</mx:DataGrid>
<mx:Button x="10"
y="180"
label="Selecionar"
width="243"
id="botaoSelecionar"
click="selectEndereco(event)"/>
<mx:Button x="329"
y="180"
label="Cancelar"
width="243"
id="botaoCancelar"
click="removeMe()"/>
</mx:TitleWindow>
2009/12/7 Marcel Pigozzi <[email protected]>
vc pode utilizar o titleWindow ;-)
segue:
http://livedocs.adobe.com/flex/3/html/help.html?content=layouts_12.html
abraços
2009/12/7 Fabio Ebner <[email protected]>
Pessoal e possivel eu abrir um alert customizado?? quero um
alert com uma dataGrid, e dois botoes Cancelar e Selecionar, que o usuario
possa escolher uma linha do dataGrid e retorne para a minha aplicacao a linha
selecionada
valeu
--
Marcel Pigozzi
"Procure ser uma pessoa de valor, em vez de procurar ser uma
pessoa de sucesso. O sucesso é conseqüência"
--
Marcel Pigozzi
"Procure ser uma pessoa de valor, em vez de procurar ser uma pessoa
de sucesso. O sucesso é conseqüência"
--
Marcel Pigozzi
"Procure ser uma pessoa de valor, em vez de procurar ser uma pessoa de
sucesso. O sucesso é conseqüência"
--
Marcel Pigozzi
"Procure ser uma pessoa de valor, em vez de procurar ser uma pessoa de
sucesso. O sucesso é conseqüência"
--~--~---------~--~----~------------~-------~--~----~
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para [email protected]
Para sair da lista, envie um email em branco para
[email protected]
Mais opções estão disponíveis em http://groups.google.com/group/flexdev
-~----------~----~----~----~------~----~------~--~---
smime.p7s
Description: S/MIME cryptographic signature
