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.
Popularity: 14% [?]











