Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 21.09.2011, 20:36
alex3dsflash вне форума Посмотреть профиль Отправить личное сообщение для alex3dsflash Найти все сообщения от alex3dsflash
  № 1  
Ответить с цитированием
alex3dsflash
[+1.3 30.09.11]
[+ 31.08.11]

Регистрация: Sep 2010
Сообщений: 95
По умолчанию Задачка про 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 минут
На самом деле дико туплю вторые сутки. Что ни делал не получается...

Старый 21.09.2011, 23:24
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 2  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
У вас ХМЛ берется из кэша, добавляйте случайный параметр (время) к пути к ХМЛ файлу.
Код AS3:
var urlRequest:URLRequest = new URLRequest("http://www.shlagbaum-service.ru/3/messages5.xml?XXXX");

Старый 22.09.2011, 10:44
alex3dsflash вне форума Посмотреть профиль Отправить личное сообщение для alex3dsflash Найти все сообщения от alex3dsflash
  № 3  
Ответить с цитированием
alex3dsflash
[+1.3 30.09.11]
[+ 31.08.11]

Регистрация: Sep 2010
Сообщений: 95
Спасибо!!!!!!!!!!

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

Создать новую тему Ответ Часовой пояс GMT +4, время: 23:00.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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