Se você procura uma maneira de usar Cookie no flex o SharedObjects pode ser útil, para quem não sabe o SharedObjects é muito fácil de usar e possui essas Características:
-
Assim como o Cookie é gerado um arquivo na máquina do usuário final;
-
Tem extensão .sol;
-
Não é Cookie… não adianta “limpar o Cookie”(sem piadinhas ao ler essa frase
) do navegador… para limpar tem que ser programado e inserido na aplicação flex… no caso usando o método clear() do objeto instanciado como SharedObjects; -
Assim como Cookie o usuário final pode bloquear o SharedObjects ou limitar seu tamanho;
-
pode ser guardar Objetos complexo nesse arquivo…só não pode ter métodos.
Vou mostrar um exemplo simples de como usar essa classe, a idéia é fazer uma espécie de Profiles no Flex, o usuário tem 3 states e o último que ele se encontrava antes de fechar o navegador quero que seja aberto. Vamos ao simples código:
Application.mxml
-
<?xml version=“1.0″ encoding=“utf-8″?>
-
<mx:Application xmlns:mx=“http://www.adobe.com/2006/mxml” layout=“absolute” width=“400″ height=“300″
-
creationComplete=“init()” viewSourceURL=“srcview/index.html”>
-
<mx:states>
-
<mx:State name=“state2″>
-
<mx:SetProperty target=“{button1}” name=“label” value=“State Principal”/>
-
<mx:SetProperty target=“{panel}” name=“title” value=“State 2″/>
-
<mx:SetProperty target=“{button2}” name=“x” value=“283″/>
-
<mx:SetProperty target=“{button2}” name=“y” value=“54″/>
-
<mx:SetEventHandler target=“{button1}” name=“click” handler=“mudaState(”)”/>
-
</mx:State>
-
<mx:State name=“state3″>
-
<mx:SetProperty target=“{button2}” name=“label” value=“State Principal”/>
-
<mx:SetProperty target=“{button2}” name=“x” value=“241″/>
-
<mx:SetProperty target=“{panel}” name=“title” value=“State 3″/>
-
<mx:SetProperty target=“{button2}” name=“y” value=“54″/>
-
<mx:SetEventHandler target=“{button2}” name=“click” handler=“mudaState(”)”/>
-
</mx:State>
-
</mx:states>
-
<mx
anel x=“10″ y=“86″ width=“380″ height=“120″ layout=“absolute” title=“State Principal” id=“panel”> -
<mx:Button label=“State 2″ x=“10″ y=“54″ id=“button1″ click=“mudaState(‘state2′)”/>
-
<mx:Button label=“State 3″ x=“283″ height=“22″ y=“54″ id=“button2″ click=“mudaState(‘state3′)”/>
-
</mx
anel> -
-
<mx:Script>
-
<![CDATA[
-
-
public var profile:SharedObject;
-
-
private function init():void{
-
profile = SharedObject.getLocal("profile");
-
if (profile.data.state != undefined){
-
mudaState(profile.data.state);
-
}else {
-
mudaState('');
-
}
-
}
-
-
private function mudaState(state:String):void{
-
this.currentState = state;
-
profile.data.state = state;
-
}
-
-
/*Função não usada é só um exemplo para limpar o
-
nosso SharedObject*/
-
private function limparProfile():void{
-
profile.clear();
-
}
-
-
]]>
-
</mx:Script>
-
-
</mx:Application>
viu como é simples!
-
profile = SharedObject.getLocal(“profile”);
é onde atribuímos o valor do objeto profile, SharedObject.getLocal procura se existe um arquivo com esse nome e pega os valores armazenados no mesmo, se não existe neste momento é criado.
O resto é bem didático vamos nos poupar..rs olha esse exemplo funcionando logo abaixo:
faz um teste aí..muda de state Principal para 2 ou 3…fecha o navegador..acesse novamente esse post e você vai perceber que vai abrir no state que você estava por último
Então fica aí uma dica de uso do SharedObject
Cumps.




