Показать сообщение отдельно
Старый 16.04.2008, 16:25
sangle вне форума Посмотреть профиль Отправить личное сообщение для sangle Найти все сообщения от sangle
  № 2  
Ответить с цитированием
sangle

Регистрация: Sep 2007
Сообщений: 32
Код:
import mx.rpc.remoting.mxml.RemoteObject;
import mx.rpc.events.ResultEvent;
    protected var remoteObj: RemoteObject;
    protected function init(): void {
        remoteObj = new RemoteObject();
        remoteObj.destination = "GenericDestination";
        remoteObj.source = "someFolder.elseFolder.myFuncService";
        remoteObj.myFunc.addEventListener("result", onMyFunc);
        myFunc('test', 'sub');
    }
    
    protected function myFunc(param1: String, param2: String): void {
        remoteObj.myFunc(param1, param2);
    }
    
    protected function onMyFunc(event: ResultEvent): void {
        var obj: Object = event.result;
        Alert.show(obj.a+' и '+obj.b);
    }
\someFolder\elseFolder\myFuncService.php
лежит в Services (если ты правильно настроил)
где
файл myFuncService.php
Код:
<?php
class myFuncService {
    function myFunc($param1, $param2) {
        $result['a']= $param1;
        $result['b']= $param2;
        return $result;
    }
}
?>
Плюс в опциях проекта (Flex Compiler -> Additional Compiler arguments) нужно указать
-services Z:\projectN\modules\weborb\Weborb\WEB-INF\flex\services-config.xml
где config.xml примерно такой
Код:
<?xml version="1.0" encoding="UTF-8"?>
<services-config>
    <services>
        <service-include file-path="remoting-config.xml" />
    </services>
    <channels>
        <channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
            <endpoint uri="weborb.php" class="flex.messaging.endpoints.AMFEndpoint"/>
            <properties>
                <polling-enabled>false</polling-enabled>
            </properties>
        </channel-definition>
        
        <channel-definition id="my-secure-amf" class="mx.messaging.channels.SecureAMFChannel">
            <endpoint uri="weborb.php" class="flex.messaging.endpoints.SecureAMFEndpoint"/>
        </channel-definition>
             
    </channels>

</services-config>
и remoting-config.xml
Код:
<?xml version="1.0" encoding="UTF-8"?>
<service id="remoting-service"
    class="flex.messaging.services.RemotingService"
    messageTypes="flex.messaging.messages.RemotingMessage">

    <adapters>
        <adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
    </adapters>
    <default-channels>
        <channel ref="my-amf"/>
    </default-channels>
    <destination id="GenericDestination">
        <properties>
            <source>*</source>
        </properties>
    </destination> 
</service>
Пути и имена можешь менять, конечно же, на свои. Функция на php возращает какой-то объект, как вариант в моем случае, возращаю ассоциативный массив.