PDA

Просмотр полной версии : Как добавить куки к флеш?


Fox Mulder
28.04.2012, 13:21
У меня возник вопрос. Я сделал две флеш шапки лоя своего сайта, пользователям дана возможность смены шапок. Но при выборе шапки и обновлении страницы сеова появляется первая шапка. Мне нужно чтобы выбор шапки запоминался.
Вот скрипт смены шапок.
import fl.video.VideoEvent

var xmlLoader:URLLoader = new URLLoader(new URLRequest("http://mklegend.ucoz.com/menu/Home_Images.xml"));
var xmlData:XML;
var tvon:Boolean = true

Прошу помочь мне!

in4core
28.04.2012, 13:43
Вы так понял совсем ничего не понимаете в коде и писать не умеете совсем? Тогда вам в вакансии.

Fox Mulder
28.04.2012, 13:56
Пардон, я не весь код дописал.
import fl.video.VideoEvent

var xmlLoader:URLLoader = new URLLoader(new URLRequest("http://mklegend.ucoz.com/menu/Home_Images.xml"));
var xmlData:XML;
var tvon:Boolean = true

var VideoUrl:String;
var sectionid:int = 0;


xmlLoader.addEventListener(Event.COMPLETE,getXML);

function getXML(e:Event):void
{
xmlData = XML(e.target.data);
loadContent();


randomsource()


for each (var sect:XML in xmlData.children())
{
myComboBox.addItem({label:sect.attributes(), id:sect.childIndex()});
}
}

myComboBox.addEventListener(Event.CHANGE, cardSelected);

function cardSelected(e:Event):void
{
trace(myComboBox.selectedItem.id);
sectionid = myComboBox.selectedItem.id
loadContent()
if (tvon == true)
{
randomsource()
}
}


function loadContent():void
{
stageLoader.load(new URLRequest(xmlData.child('section')[sectionid].stages.child("stage")[Math.floor(Math.random()*xmlData.child('section')[sectionid].stages.child("stage").length())]));
}


trace (20/9)

function randomsource ()
{
VideoUrl = xmlData.child('section')[sectionid].videos.child("video")[Math.floor(Math.random()*xmlData.child('section')[sectionid].videos.child("video").length())]
tvon = true
}


function getnewsource (event:VideoEvent)
{
trace ('1')
randomsource ()
}

in4core
28.04.2012, 14:00
Вы можете использовать SharedObject.getLocal для этих целей, там все до боли просто. пишите куку, получаете.: )

Добавлено через 4 минуты
Да и еще не пишите так, это пиипец

function loadContent():void
{
stageLoader.load(new URLRequest(xmlData.child('section')[sectionid].stages.child("stage")[Math.floor(Math.random()*xmlData.child('section')[sectionid].stages.child("stage").length())]));
}

Надо так

function loadContent():void
{
const section:* = xmlData.child('section')[sectionid].stages.child("stage");
const random:Number = Math.floor(Math.random()*section.length());
const url: section[random];
const req:URLRequest = new URLRequest(url)
}

Хотя это тоже полный П...
Почитайте повнимательнее по ECMA , наверняка такие записи можно оптимизировать

Fox Mulder
28.04.2012, 14:06
Простите меня уважаемый. Но я совсем Нуб в АС3, куда мне нужно вставить SharedObject.getLocal я не знаю. И что именно в нём прописать. Я ведь у вас прошу помощи.
там все до боли просто
Если бы так всё и было то я бы не просил вас о помощи.

in4core
28.04.2012, 14:14
А этот код, что написан выше, сами писали? Если да , то в чем сложность?


import flash.net.SharedObject;

// if these get copied or not
var mySo:SharedObject = SharedObject.getLocal("thehobbit");
mySo.data.username = "bilbobaggins";
trace(mySo.size); // 55
ПРимер с офф справки, как я вам и сказал.

В вашем случае это будет что то типа

var mySo:SharedObject = SharedObject.getLocal("secretFoo");
if( mySo.data.sectionID == undefined ) mySo.data.sectionID = sectionID;
mySo.flush();


Ну а при любом изменении секции нужно вызывать mySo.data.sectionID = sectionID , mySo.flush()

Fox Mulder
28.04.2012, 14:16
Спасибо я попробую! Код мне писал друг, но он тоже не профи.

Добавлено через 26 минут
Извините меня, наверное я вас уже достал. Я сделал такой код.
import fl.video.VideoEvent

var xmlLoader:URLLoader = new URLLoader(new URLRequest("http://mklegend.ucoz.com/menu/Home_Images.xml"));
var xmlData:XML;
var tvon:Boolean = true

var VideoUrl:String;
var sectionid:int = 0;


xmlLoader.addEventListener(Event.COMPLETE,getXML);

function getXML(e:Event):void
{
xmlData = XML(e.target.data);
loadContent();


randomsource()


for each (var sect:XML in xmlData.children())
{
myComboBox.addItem({label:sect.attributes(), id:sect.childIndex()});
}
}

myComboBox.addEventListener(Event.CHANGE, cardSelected);

function cardSelected(e:Event):void
{
trace(myComboBox.selectedItem.id);
sectionid = myComboBox.selectedItem.id
loadContent()
if (tvon == true)
{
randomsource()
}
}


function loadContent():void
{
const section:* = xmlData.child('section')[sectionid].stages.child("stage");
const random:Number = Math.floor(Math.random()*section.length());
const url: section[random];
const req:URLRequest = new URLRequest(url)
}


trace (20/9)

function randomsource ()
{
VideoUrl = xmlData.child('section')[sectionid].videos.child("video")[Math.floor(Math.random()*xmlData.child('section')[sectionid].videos.child("video").length())]
tvon = true
}


function getnewsource (event:VideoEvent)
{
trace ('1')
randomsource ()
}

import flash.net.SharedObject;

// if these get copied or not
var mySo:SharedObject = SharedObject.getLocal("secretFoo");
if( mySo.data == undefined ) mySo.data = sectionID;
mySo.flush(); // 55

Но что то здесь не то, мне выдали такую ошибку!
Монтажный кадр 1, Layer 'Script', Frame 1, Line 46 1086: Syntax error: expecting semicolon before leftbracket.

in4core
28.04.2012, 17:56
синтаксическая ошибка в 46 строке. Я не знаю где у вас 46 строка

Fox Mulder
30.04.2012, 19:32
Что то этот код не работает. Может что то не то в самом скрипте?

AlexFrost
01.05.2012, 05:39
гугл. второй результат выдачи по запросу "cookie as3"
http://garbage-collector.ru/2007/10/using_cookies_in_as3.html

Fox Mulder
01.05.2012, 16:37
Спасибо!