Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Задачка про URLLoader (http://www.flasher.ru/forum/showthread.php?t=168517)

alex3dsflash 21.09.2011 20:36

Задачка про URLLoader
 
Доброго времени суток!
Продолжаю мучить Мука чтобы поженить php b Flash.

Если не лень, помогоите пожалуйста.

Есть честно скачаный код, который работает. Но !!! Если я добавляю юзера, я не вижу своего нового юзера сразу. Вижу все, если только перезагружаю флешку. Как написать функцию (уже пишу она в конце называется function F_BG_bg(event:Event){ } ) чтобы эта функция опять все выводила с новыми данными?


Код AS3:

// Загрузка XML
var urlRequest:URLRequest = new URLRequest("http://www.shlagbaum-service.ru/3/messages5.xml");
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener (Event.COMPLETE,fileLoaded);
 
urlLoader.load (urlRequest);
// Настройка XML
var myXML:XML = new XML();
myXML.ignoreWhitespace = true;
var xmlList:XMLList;
// Объявление массивов для хранения данных
var arrayName:Array = new Array();
var arrayTitle:Array = new Array();
var arrayDate:Array = new Array();
var arrayFull:Array = new Array();
// Блокируем кнопки 'Next' и 'Previous'
nextBt.enabled = false;
prevBt.enabled = false;
// Заполняем массивы данными из XML
 
 
 
var xmlName:String;
function fileLoaded (event:Event):void {
        myXML = XML(event.target.data);
        xmlList = myXML.children();
        for (var i:int=0; i<xmlList.length(); i++) {
                xmlName = xmlList[i].name;////////////////
                var xmlTitle:String = xmlList[i].title;
                var xmlDate:String = xmlList[i].date;
                var xmlFull:String = xmlList[i].full;
                arrayName.push (xmlName);
                arrayTitle.push (xmlTitle);
                arrayDate.push (xmlDate);
                arrayFull.push (xmlFull);
                if (i == xmlList.length() - 1) {
                        updateText ();
                }
                if (i > 4 ) {
                        nextBt.enabled = true;
                }
        }
}
// Заполняем текстовое поле для отображения сообщений
messageText.htmlText = "Здесь пишем!";
var maximumMessages:Number = 5;
var currentMessages:Number = 0;
function updateText () {
        messageText.htmlText = "";
        if (arrayName.length <= maximumMessages) {
                maximumMessages = arrayName.length;
                nextBt.enabled = false;
        }
        if (currentMessages < 0) {
                currentMessages = 0;
                maximumMessages = 5;
                nextBt.enabled = true;
        }
        for (var i = currentMessages; i<maximumMessages; i++) {
                messageText.htmlText += ("<b><u>Имя:</u></b> " + arrayName[i]);
                messageText.htmlText += ("<b><u>Тема:</u></b> " + arrayTitle[i]);
                messageText.htmlText += ("<b><u>Дата:</u></b> " + arrayDate[i]);
                messageText.htmlText += ("<b><u>Сообщение:</u></b> " + arrayFull[i]);
                messageText.htmlText += (".....................................................");
        }
        currentMessages=i;
        scroller.scrollTarget=messageText;
}
// Проверяем, нажимаются ли кнопки 'Next' или 'Previous'
nextBt.addEventListener (MouseEvent.MOUSE_UP,nextFunc);
prevBt.addEventListener (MouseEvent.MOUSE_UP,prevFunc);
// 'Next' функция
function nextFunc (event:MouseEvent) {
        messageText.htmlText="";
        maximumMessages+=5;
        updateText ();
        prevBt.enabled=true;
        //urlLoader.load (urlRequest);//////////////////////////////////////////
}
// 'Previous' функция
function prevFunc (event:MouseEvent) {
        messageText.htmlText="";
        maximumMessages-=5;
        currentMessages-=10;
        nextBt.enabled = true;
        updateText ();
        if (currentMessages<=5) {
                prevBt.enabled=false;
        }
}
 
// Объявляем переменные чтоюы хранить имя пользователя, title и message
// Также убедимся, что поля ввода пустые
inputName.text = "";
var newName:String = "";
inputTitle.text = "";
var newTitle:String = "";
inputFull.text = "";
var newFull:String = "";
// Проверим, написали ли что-либо в поля ввода
function onEnterFrame (ev:Event):void {
        if (inputName.text != "" && inputTitle.text != "" && inputFull.text != "") {
                submitBt.enabled = true;
        }
}
// Вызываем функцию 'onEnterFrame' в каждом фрейме, 30 раз в секунду
addEventListener (Event.ENTER_FRAME, onEnterFrame);
// Проверяем, нажимается ли кнопка 'submitBt'
submitBt.addEventListener (MouseEvent.MOUSE_UP,sendData);
// 'sendData' функция
function sendData (event:MouseEvent):void {
        //Создаем данные
        var dateToday:Date = new Date();
        var thismonth:uint = dateToday.getMonth();
        var month:Array = new Array('January','February','March','April','May','June','July','August','September','October','November','December');
        var dateStr:String = (dateToday.getDate()+" "+month[thismonth]+" "+dateToday.getFullYear());
        // Вводим инфу пользователя в переменные
        newName = inputName.text;
        newTitle = inputTitle.text;
        newFull = inputFull.text;
        // Создаем новый xml код с данными юзверя
        var newItem:XML = XML("<message><name>" + newName + "</name><title>" + newTitle + "</title><date>"+ dateStr+ "</date><full>" + newFull + "</full></message>");
        // Добавляем новый xml код к оригинальному xml коду 'myXML'
        myXML.appendChild (newItem);
        // Создаем новый запрос для php файла
        var request:URLRequest = new URLRequest("http://www.shlagbaum-service.ru/3/messages5.php");
        request.data = myXML;
        request.contentType = "text/xml";
        request.method = URLRequestMethod.POST;
        // Посылаем xml данные в php
        var loader:URLLoader = new URLLoader(  );
        loader.load ( request );
        loader.addEventListener ( Event.COMPLETE, loaderDone );
}
// Перезагружаем гостевую книгу для отображения новой информации
function loaderDone (evt:Event):void {
        arrayName = [];
        arrayTitle = [];
        arrayDate = [];
        arrayFull = [];
        inputName.text = "";
        inputTitle.text = "";
        inputFull.text = "";
        submitBt.enabled = false;
        maximumMessages = 10;////////////////////////////
        currentMessages = 0;
        messageText.htmlText = "";
        urlLoader.load (urlRequest);
}
 
tracee.addEventListener(MouseEvent.CLICK, F_BG_bg);
var n:*;
 
 
 
 
 
 
 
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
function F_BG_bg(event:Event){
 
 
 
urlLoader.addEventListener (Event.COMPLETE,fileLoaded);
 
urlLoader.load (urlRequest);
 
myXML = new XML();
 
myXML.ignoreWhitespace = true;
 
        myXML = XML(event.target.data);
        xmlList = myXML.children();
        for (var i:int=0; i<xmlList.length(); i++) {
                xmlName = xmlList[i].name;////////////////
                var xmlTitle:String = xmlList[i].title;
                var xmlDate:String = xmlList[i].date;
                var xmlFull:String = xmlList[i].full;
                arrayName.push (xmlName);
                arrayTitle.push (xmlTitle);
                arrayDate.push (xmlDate);
                arrayFull.push (xmlFull);
                if (i == xmlList.length() - 1) {
                        updateText ();
                }
                if (i > 4 ) {
                        nextBt.enabled = true;
                }
        }
 
 
 
 
 
 
 
messageText.htmlText = "";
        if (arrayName.length <= maximumMessages) {
                maximumMessages = arrayName.length;
                nextBt.enabled = false;
        }
        if (currentMessages < 0) {
                currentMessages = 0;
                maximumMessages = 5;
                nextBt.enabled = true;
        }
        for ( i = currentMessages; i<maximumMessages; i++) {
                messageText.htmlText += ("<b><u>Имя:</u></b> " + arrayName[i]);
                messageText.htmlText += ("<b><u>Тема:</u></b> " + arrayTitle[i]);
                messageText.htmlText += ("<b><u>Дата:</u></b> " + arrayDate[i]);
                messageText.htmlText += ("<b><u>Сообщение:</u></b> " + arrayFull[i]);
                messageText.htmlText += (".....................................................");
        }
        currentMessages=i;
        scroller.scrollTarget=messageText;
 
 
 
 
 
 
 
 
        arrayName = [];
        arrayTitle = [];
        arrayDate = [];
        arrayFull = [];
        inputName.text = "";
        inputTitle.text = "";
        inputFull.text = "";
        submitBt.enabled = false;
        maximumMessages = 10;////////////////////////////
        currentMessages = 0;
        messageText.htmlText = "";
        urlLoader.load (urlRequest);
 
trace(xmlName);
 
}

Добавлено через 47 секунд
тест :
http://www.shlagbaum-service.ru/3/XMLGuestBook5.swf

Добавлено через 5 минут
На самом деле дико туплю вторые сутки. Что ни делал не получается...

andrew911 21.09.2011 23:24

У вас ХМЛ берется из кэша, добавляйте случайный параметр (время) к пути к ХМЛ файлу.
Код AS3:

var urlRequest:URLRequest = new URLRequest("http://www.shlagbaum-service.ru/3/messages5.xml?XXXX");


alex3dsflash 22.09.2011 10:44

Спасибо!!!!!!!!!!

Добавлено через 27 часов 54 минуты
Как Вы были правы!!! Тварь из кеша грузила! Спасибо, Респект и Уважуха!!!!!


Часовой пояс GMT +4, время: 05:15.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.