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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 31.12.2009, 17:42
Beckie вне форума Посмотреть профиль Отправить личное сообщение для Beckie Найти все сообщения от Beckie
  № 1  
Ответить с цитированием
Beckie

Регистрация: Dec 2009
Сообщений: 5
По умолчанию Как принять данные от PHP в Actionscript 2.0

Ситуация следующая:

Происходит загрузка фото, фото переименовывается в уникальное название.

Мне нужно вернуть ссылку на это фото скрипту actionscript 2.0

Вот actionscript:

Код AS1/AS2:
import flash.net.FileReferenceList;
import flash.net.FileReference;
 
 
 
var fileTypes:Array = new Array();
var imageTypes:Object = new Object();
imageTypes.description = "Images (*.jpg, *.jpeg, *.gif, *.png)";
imageTypes.extension = "*.jpg; *.jpeg; *.gif; *.png";
fileTypes.push(imageTypes);
 
 
 
var fileListener:Object = new Object();
var btnListener:Object = new Object();
 
 
 
btnListener.click = function(eventObj:Object)
{
	var fileRef:FileReferenceList = new FileReferenceList();
	fileRef.addListener(fileListener);
	fileRef.browse(fileTypes);
}
 
uploadButton.addEventListener("click", btnListener);
 
 
 
 
 
fileListener.onCancel = function(file:FileReference):Void
{
    resultsTxtField.text += "File Upload Cancelled\n";
}
 
 
 
 
 
fileListener.onSelect = function(fileRefList:FileReferenceList):Void
{
	var list:Array = fileRefList.fileList;
	var item:FileReference;
 
	if(list.length > 5)
	{
	getURL("javascript: limit_reached();");
	return;
	}
 
 
    for(var i:Number = 0; i < list.length; i++) {
        item = list[i];
        trace("name: " + item.name);
        trace(item.addListener(this));
 
		resultsTxtField.text += "File Selected: " + item.name + "\n";
 
		if(!item.upload("http://localhost/upload.php"))
		{
			resultsTxtField.text += "Upload dialog failed to open.\n";
		}		
    }
}
 
 
 
 
 
 
fileListener.onOpen = function(file:FileReference):Void
{
    resultsTxtField.text += "File Opened: " + file.name + "\n";
}
 
 
 
 
 
fileListener.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void
{
	resultsTxtField.text += "Loading Progess: bytesLoaded: " + bytesLoaded + ", bytesTotal: " + bytesTotal + "\n";
	getURL("javascript: bytes_total=" + bytesTotal + "; bytes_loaded=" + bytesLoaded + "; file_name='" + file.name + "'; files_process();");
}
 
 
 
 
 
fileListener.onComplete = function(file:FileReference):Void
{
    resultsTxtField.text += "File Upload Complete: " + file.name + "\n";
	getURL("javascript: completed_file='" + file.name + " - uploaded!'; completed();");
}
Дописывать код видимо надо тут fileListener.onComplete

Я так понимаю, что можно принять ссылку на фото в виде строки, но как принять я не знаю.

Можете на примере показать, какая там функция принятия в переменную, строку от PHP.

Заранее спасибо.

Добавлено через 32 часа 27 минут
Код AS1/AS2:
var photos:LoadVars = new LoadVars();
photos.load("http://localhost/upload.php?gtfo=1");	
getURL("javascript:pnum=" + photos.uploaded + ";photo_num();");
В php:
PHP код:
if(isset($_GET['gtfo'])){echo "p_counter=9&uploaded=99";} 
pnum в firebug-e пишет undefined

Где я ошибаюсь?

Добавлено через 45 часов 46 минут
Ладно, решил проблему с помощью Сессий.

Но теперь осталась последняя задача. Запретить загрузку одинаковых фото.

Но увидеть простой пример работы load & sendandload в actionscripte не помешало бы.

Передавать названия файлов, привязывая их к флэш файлу будет как-то не правильным помоему. Какой другой способ?

Тем более, там ограничение на привязку, это же GET все таки помоему.


Последний раз редактировалось Beckie; 01.01.2010 в 14:16.
Старый 02.01.2010, 20:27
nOobCrafter вне форума Посмотреть профиль Отправить личное сообщение для nOobCrafter Найти все сообщения от nOobCrafter
  № 2  
Ответить с цитированием
nOobCrafter

Регистрация: Nov 2008
Сообщений: 894
Записей в блоге: 1
что ыб принять данные от пхп почитайте про метод sendAndLoad():
Код AS1/AS2:
 var result_lv:LoadVars = new LoadVars();
  result_lv.onLoad = function(success:Boolean) {
    if (success) {
      result_ta.text = result_lv.welcomeMessage;
    } else {
      result_ta.text = "Ошибка соединения с сервером.";
    }
  };
  var send_lv:LoadVars = new LoadVars();
  send_lv.name = name_ti.text;
  send_lv.sendAndLoad("http://www.flash-mx.com/mm/greeting.cfm", result_lv, "POST");
};

Старый 03.01.2010, 20:15
Beckie вне форума Посмотреть профиль Отправить личное сообщение для Beckie Найти все сообщения от Beckie
  № 3  
Ответить с цитированием
Beckie

Регистрация: Dec 2009
Сообщений: 5
Спасибо.

На стороне сервера у меня теперь так:

PHP код:
echo http_build_query($array); 
Я передаю ответ Javascript-у:

Код AS1/AS2:
 
loadvar_lv.onLoad = function(success:Boolean){
 
   getURL("javascript: filelinks='" + loadvar_lv + "'; completed();");
 
}

И получаю вот такой результат:

amp;4=images/t1/2010-01-03/c3aec088667038bef524791c826e08aef4b6dd60.jpg&
amp;3=images/t1/2010-01-03/dd9456b67dbb37b223b58f713a7ea534c06e3570.jpg&
amp;2=images/t1/2010-01-03/ea86f0e4ca0874490dd9999c4fa790d05d07aab8.jpg&
amp;1=images/t1/2010-01-03/2619b8d51cf1f95dc83dfb8ec82c03edd4364857.jpg&
0=images/t1/2010-01-03/ca48380dc928b55f6e7c33b6eeb11bf895ea58ac.jpg&
onLoad=[type Function]

Я так понимаю, что это эскейпнутая строка, как мне её превратить в массив?

При многом благодарен.


Последний раз редактировалось Beckie; 03.01.2010 в 20:35.
Создать новую тему Ответ Часовой пояс GMT +4, время: 02:13.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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