Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Flash > Flash +php


Автор: Alix36 24.1.2007, 14:40
на форуме есть много тем как связать Php=>Flаsh
А как сделать нааборот, т.е.
форма во флеше при нажатии кнопки передает параметр РНР сценарию  

И еще раз спрашу, какую книжку посоветуете для полного нуля в асТIоnscript

Автор: szz 24.1.2007, 15:53
Часто задают этот вопрос, поэтому я наверно щас тут обстоятельно объясню, а потом буду ссылку всем сюда давать.

Предположим, мы хотим отправить кое-что на сервер и получить ответ обратно во Флэш.
Например, мы хотим получить сумму двух чисел.
Пишем такой рнр скрипт:
Код

<?
// summa.php
echo $_REQUEST['number_1']+$_REQUEST['number_2'];
?>


А во флеше пишем:

Код

// создаем объект для связи с сервером:
var get_from_php:LoadVars = new LoadVars();
// вписываем переменные, которые хотим отправить:
get_from_php.number_1 = 5;
get_from_php.number_2 = 3;
// обработчик (произойдет, когда данные с сервера вернутся):
get_from_php.onData = function(data){
    if(data=null){
        trace("связь с сервером потерялась!");
    }else{
        trace("сумма чисел равна "+data);
    }
}
// отправляем:
get_from_php.sendAndLoad(
       'http://example.com/summa.php', //  к кому обращаемся?
       get_from_php, // какой объект среагирует? Пишем себя.
       'POST' // метод.
);


Автор: Alix36 24.1.2007, 19:57
ты показал, как РНР скрипт вывести в флеш а мне гужно просто передать значение, введеное в флеш форму,В РНР сценарий

Автор: szz 24.1.2007, 19:58
Ятебе показал и туда и обратно.

Автор: dracs 10.8.2007, 22:03
чтобы сампл запахал надо кое чо подправить:
 

вместо 
if(data=null){

писать так:

if(data==null){

воть и все))

Автор: supercelt 13.8.2007, 01:09
Чё то не запахало), поддерживаю тему, очень интересно!
И обращаюсь к вам, знающие люди, я так же начинаю с 0, тут не понятно что должно быть собсно в swf ролике, как всё делать подробно по пунктам. В инете с 0 нигде описания нету, надеюсь на вас, помогите.
Цель: научите пожалуйста с 0 на таком примере. В swf сделаны поля ввода логин и пасс, надо обработать в пхп, и вывести обратно в флеш результат

Автор: Zhyvel 31.1.2008, 19:01
В принципе szz объяснил и показал все.
Попытаюсь сейчас тоже самое сказать чуть подругому.

а1.Когда вы из флэша делаете запрос в php отправляются все переменные флэша доступные в данный момент.
Это можно проверить простой программой.
Код

<?php
    print_r($_REQUEST);
?>


а2. Для того, чтобы значения переменных попали во флэш. Они должны быть отправлены в виде строки
varname1=varvalue1&varname2=varvalue2
Причем если значения на русском языке, то строка должна передаваться в UTF-8 кодировке.

а3. Получить значения переменных во флэше можно с помощью двух команд
http://www.spravkaweb.ru/flash/actionscript/action/loadvariables и getURL (параметры и регистр написания проверьте сами, т.к. нет флэша под рукой, пишу по памяти)

Теперь преходим к конкретной реализации, которую можно сделать с помощью http://denwer.ru.
б1. Для начала по адресу www.test1.ru положим скрипт index.php
Код

<?php
//не важно какой код, важно результат
//может идти несколько пременных согласно правилу а2
echo('zz=12345');
?>


б2. Проверяем страницу по адресу www.test1.ru\index.php
должен появляться текст 
zz=12345

б3. Создаем флэшролик. Кидаем два динамик текста. Закрепляем за ними переменные l1 и p1.
можно повесить ActionScript
Код

zz = null;
stop();

б3.1. на нажатие кнопки вешаем ActionScript
Код

loadVariables('www.test1.ru/index.php', '', 'POST');

откуда загрузить переменные - www.test1.ru/index.php
в какой слой они попадают -  в текущий ''
каким методом передаются - POST
б3.2. На следующем кадре делаем метку, например tt
И кладем Static text Проверка данных
б3.3. На следующем кадре пишем ActionScript
Код

if(zz==undefined)
{
    gotoAndPlay(tt);
}

б3.4. На следующем за ним кадре кладем Dinamic text и связываем его с переменной zz
Можно поставить stop на этом кадре

Все. теперь можно тестировать.
Смысл в следующем: после нажатия на кнопку мы будем крутиться на кадре tt до тех пор пока не загрузится переменная
zz. А грузится она долго, т.к. результат от скрипта идет около секунды.
Если все нормально, то после нажатия на кнопку в динамическом тексте появится надпись: 12345
Если же вы измените в index.php строчку
echo('zz=12345');
на
Код

$mm = '-=';
foreach($_REQUEST as $key=>$value)
{
    $mm .= $key.'-'.$value.' ';
}
echo($mm.'=-');

то вы убедитесь что в скрип на php передаются переменные l1 и p1.
Вот вроде и все.

Автор: AcidSlayer 23.3.2008, 02:09
Последнее просто обязано работать.. завтра даже проверю для интереса ))
да  и прошу Флэш = FLASH а не FLESH smile 
исправь и всё будет работать  smile 

Автор: PapaDoG 13.10.2008, 23:21
Народ, очень нужно сделать iframe во флеше...

Тоесть отображение хтмл/пхп страницы непосредственно в флешке в определенном пространстве (пусть будет прмоугольник и в нем отображение страници)..... 

Перерыл весь нет, не помогло ничего... Знаю что это реально, читал посты американских перцев видел примеры, но без исходников в обше реально сделать, но как???....


Если кто может и кому не лень сделайте и скинте исходник (пример флешка с отображением данного форума...) пороюсь в нутри и сам пойму что да как....

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

[email protected]

Автор: Jekyll 8.2.2009, 22:34
Насколько я знаю, такое с лёгкостью позволяет делать Actionscript 3. К сожалению, я в нём почти ноль (пишу на втором), гуглите  smile 

Автор: Fixin 21.3.2009, 17:08
К сабжу: Flash +php
http://www.amfphp.org/
Пример использования (вызова со стороны флеша)
Код

import mx.remoting.*;
import mx.rpc.*;
import mx.remoting.debug.NetDebug;
 
var gatewayUrl:String = "http://localhost/flashservices/gateway.php"
 
NetDebug.initialize();
var _service:Service = new Service(gatewayUrl, null, 'HelloWorld', null , null);
var pc:PendingCall = _service.say("Hello world!");
pc.responder = new RelayResponder(this, "handleResult", "handleError");
 
function handleResult(re:ResultEvent)
{
    trace('The result is: ' + re.result);
}
 
function handleError(fe:FaultEvent)
{
    trace('There has been an error');
}


Чаще применяется для RPC, но можно и шарить объекты и многое другое.

Автор: atihiy2005 5.5.2011, 20:47
Я конечно понимаю, может достал с этим флеш и пхп но все же помогите добрые люди. Значит есть html страничка с формой ввода текста и кнопкой(ПОИСК). Вот что в коде:
Код

<form>
<input id="name" size="7" onkeyup="Latin(this)" maxlength="7" onkeypress="return testKey(event)" onFocus="this.value=''" onblur="this.value=this.value.toLowerCase();"/>
<input type="button" value="Пошук" onClick="Open();"/>
</form>

//чуть позже
<script type="text/javascript"> 
     function Open(){
     var n = document.getElementById("name").value;
     var url = 'search11.php?name='+n+'b.jpg';
     window.open(url, 'pic', 'toolbar=no, width=500, height=500,      scrollbars=yes,      resizable=yes');
     }
</script>


<script type="text/javascript"> //это для правописания
function testKey(e)
{
  // Make sure to use event.charCode if available
  var key = (typeof e.charCode == 'undefined' ? e.keyCode : e.charCode);
 
  // Ignore special keys
  if (e.ctrlKey || e.altKey || key < 32)
    return true;
 
  key = String.fromCharCode(key);
  return /\w/.test(key);
}
</script>



Ну и соответственно сам search11.php:
Код

<html>
<body>
<? $pic = $_GET['name']; 
?>
<center>
<img src="bigimg/<? print $pic ?>" >
</body>
</html>


Это все дает в результате новое окно при нажатии на кнопку, с рисунком который введен в поиск. Тоесть если юзер ввел 123, то при нажатии на кнопку получит новое окно с файлом 123.jpg(если такой конечно имеется). Так вот проблема в следующем, шапку сайта хочу сделать во флеш, тоесть поле ввода и кнопка будет там. Пожалуйста помогите правильно все соеденить, если можна поподробнее а то во флеше оччень слаб(((

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)