Officially, I don't believe it is supported to call a WebService directly 
from an AS class, without first having an instance of the 
WebServiceConnector in an mxml file within the application.  That said, I 
have seen it done...


Try something like this:

class custom.DataService extends mx.core.UIObject{

         var remoteDataService:mx.servicetags.Service;

         function DataService()  {

         }

         function init():Void{
                 super.init();
                 var props = new Object();
                 applyProperties(props, props);
                 _custom_DataService_webServiceSetup();
         }

         function _custom_DataService_webServiceSetup():Void     {
                 remoteDataService = new mx.servicetags.Service(this._url, 
"http://localhost:8500/mmcourses/faad2004/dbs/Bikeparts.cfc?wsdl";, new 
mx.services.Log(1, "WebService"), null, this, null, null, null, null, false);
                 remoteDataService.__name = "remoteDataService";
                 remoteDataService.__faultHandler = function(event) {
                         faultHandler(event)
                 }
                 remoteDataService.__resultHandler = function(event)
                 {
                         resultHandler(event)
                 }
                 remoteDataService.__showBusyCursor = true;
         }
         function resultHandler(event){
                 // do something
         }
         function faultHandler(event){
                 // do something
         }
}


I created this by turning on "keep-generated-as" in the flex config file, 
and then ran an app with a WebService in it.  The generated AS for that 
mxml file will contain all the correct code to instantiate and use the service.

I had a DataService.mxml file which looks like this:

<s:ProxyFactory  xmlns:mx="http://www.macromedia.com/2003/mxml"; 
xmlns:s="fast.services.*">

     <mx:WebService id="remoteDataService" 
wsdl="http://localhost:8500/mmcourses/faad2004/dbs/Bikeparts.cfc?wsdl"; 
result="resultHandler(event)" fault="faultHandler(event)" 
showBusyCursor="true" useProxy="false"/>
</s:ProxyFactory>

Which generated this AS:

// C:\Program 
Files\Macromedia\Flex15\jrun4\servers\default\flex\MAX05\start\custom\DataService-generated.as
class custom.DataService extends fast.services.ProxyFactory
{
         var remoteDataService:mx.servicetags.Service;

         function DataService()
         {

         }

         function init():Void
         {

                 super.init();

                 var props = new Object();
                 applyProperties(props, props);


                 _custom_DataService_webServiceSetup();

         }

         // Event handler functions...
         function _custom_DataService_webServiceSetup():Void
         {
                 remoteDataService = new mx.servicetags.Service(this._url, 
"http://localhost:8500/mmcourses/faad2004/dbs/Bikeparts.cfc?wsdl";, new 
mx.services.Log(1, "WebService"), null, this, null, null, null, null, false);
                 remoteDataService.__name = "remoteDataService";
                 remoteDataService.__faultHandler = function(event) {
faultHandler(event)
}
                 remoteDataService.__resultHandler = function(event)
                 {
                         resultHandler(event)
                 }
                 remoteDataService.__showBusyCursor = true;
         }


}

Once you have the genreated AS, you can rename it as DataService.as, and 
rename the DataService.mxml to something else.  So long as the 
DataService.as file is in the same directory, it will continue to run 
without issue.  My example uses the Macromedia FAST Toolkit for the Data 
Services, but that is not a requirement for making this work.






At 02:44 PM 8/26/2005, inajamaica wrote:
>All,
>
>I have been up & down the flex documentation and the web (& searched
>through alot of this forum), but I can't seem to find a concrete
>example of calling a webservice and using the WebService object SOLELY
>with ActionScript.
>
>I have the following so far:
>
>//supposedly, this parses the wsdl so that...
>var ws = new WebService (wsdlLocation);
>ws.setEndpointURI 
>("<http://somewhere.com/endpoint>http://somewhere.com/endpoint";);
>//...I can just do this:
>result = ws.anOperationDefinedInTheWSDL (parameter);
>
>But I know I'm missing something here...anyone have experience here?
>For the insane cost of Flex, it's hard to believe that I can't find
>ALL this info @ Macromedia's website.
>
>Thanks..
>
>
>
>
>--
>Flexcoders Mailing List
>FAQ: 
><http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt>http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
>Search Archives: 
><http://www.mail-archive.com/flexcoders%40yahoogroups.com>http://www.mail-archive.com/flexcoders%40yahoogroups.com
> 
>
>
>
>
>SPONSORED LINKS
><http://groups.yahoo.com/gads?t=ms&k=Computer+software+testing&w1=Computer+software+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&s=93&.sig=kh2CguJwmatU5oBXjFo9Rg>Computer
> 
>software testing 
><http://groups.yahoo.com/gads?t=ms&k=Macromedia+flex&w1=Computer+software+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&s=93&.sig=dAUcEV7do91-wrRtVS641g>Macromedia
> 
>flex 
><http://groups.yahoo.com/gads?t=ms&k=Development&w1=Computer+software+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&s=93&.sig=AlxNUQBOI7Io7S7nhmxV0Q>Development
> 
>
><http://groups.yahoo.com/gads?t=ms&k=Software+developer&w1=Computer+software+testing&w2=Macromedia+flex&w3=Development&w4=Software+developer&c=4&s=93&.sig=QWIit8JayomoIHLVkV3FDg>Software
> 
>developer
>
>
>----------
>YAHOO! GROUPS LINKS
>
>    *  Visit your group 
> "<http://groups.yahoo.com/group/flexcoders>flexcoders" on the web.
>    *
>    *  To unsubscribe from this group, send an email to:
>    * 
> <mailto:[EMAIL PROTECTED]>[EMAIL PROTECTED] 
>
>    *
>    *  Your use of Yahoo! Groups is subject to the 
> <http://docs.yahoo.com/info/terms/>Yahoo! Terms of Service.
>
>
>----------



------------------------ Yahoo! Groups Sponsor --------------------~--> 
Fair play? Video games influencing politics. Click and talk back!
http://us.click.yahoo.com/T8sf5C/tzNLAA/TtwFAA/nhFolB/TM
--------------------------------------------------------------------~-> 

--
Flexcoders Mailing List
FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt
Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.com 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to