Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-07-2003, 18:33   #1 (permalink)
Entwickler
 
Registriert seit: Apr 2002
Ort: Edinburgh, UK
Beiträge: 301
Lightbulb Webservices nutzen

Hier ein Multiple Choice Quiz das den Webservice http://java.rus.uni-stuttgart.de/quiz/quiz.wsdl
über phpamf und NuSoap nutzt.

Auf http://www.xmethods.net/ findet man noch viel mehr Webservices, von denen allerdings nicht viele kostenlos sind. Kennt ihr weitere Möglichkeiten Web Services zu finden? Auch kostenlose Web Services?


ActionScript:
  1. #include "NetServices.as"
  2. //#include "NetDebug.as"
  3.  
  4. Quiz = function(quizClip)
  5. {
  6.     this.quizClip = quizClip;
  7. }
  8. o = Quiz.prototype;
  9. o.init = function()
  10. {
  11.     NetServices.setDefaultGatewayUrl("http://localhost/test_webservices/gateway.php")
  12.     var conn = NetServices.createGatewayConnection();
  13.     this.serv = conn.getService("http://java.rus.uni-stuttgart.de/quiz/quiz.wsdl",this);
  14.     //GUI
  15.     this.quizClip.nextQuestion_pb.setClickHandler("nextQuestion",this);
  16.     this.quizClip.checkAnswer_pb.setClickHandler("checkAnswer",this);
  17. }
  18. o.nextQuestion = function()
  19. {
  20.     this.showWaitingMsg();
  21.     this.serv.randomQuestion();
  22. }
  23. o.randomQuestion_Result = function(quest)
  24. {   
  25.     var quizClip = this.quizClip;
  26.     //deselect radio buttons
  27.     var i;
  28.     for(i=1;i<=4;i++)   
  29.         quizClip["a"+i+"_rb"].setValue(false)
  30.     quizClip.correctans_txt.text = "";
  31.     //show questions
  32.     quizClip.q_txt.text = quest.question;
  33.     quizClip.a1_rb.setLabel(quest.answerA);
  34.     quizClip.a2_rb.setLabel(quest.answerB);
  35.     quizClip.a3_rb.setLabel(quest.answerC);
  36.     quizClip.a4_rb.setLabel(quest.answerD);
  37.     this.questID = quest.id;   
  38. }
  39. o.checkAnswer = function()
  40. {
  41.     //get selected answer.
  42.     var i,val,endval;
  43.     for(i=1;i<=4;i++)
  44.     {      
  45.         val = this.quizClip["a"+i+"_rb"].getValue();       
  46.         if(val != undefined)endval = val;      
  47.     }
  48.     //only ask server if answer was selected.   
  49.     if(endval == undefined)
  50.     {
  51.         this.quizClip.correctans_txt.text = "Come on...you didn`t even try!"
  52.     }
  53.     else
  54.     {
  55.         this.showWaitingMsg();
  56.         this.serv.checkCorrectAnswerById(this.questID,endval);
  57.     }
  58. }
  59. o.checkCorrectAnswerById_Result = function(ans)
  60. {   
  61.     //show result.
  62.     if(ans == null || typeof ans == "object")
  63.         this.quizClip.correctans_txt.text = "Connection error. Try Again.";
  64.     else
  65.         this.quizClip.correctans_txt.text = ans;   
  66. }
  67.  
  68. o.showWaitingMsg = function()
  69. {   
  70.     this.quizClip.correctans_txt.text = "Wait a second...";
  71. }
  72.  
  73. //start app
  74. function main()
  75. {
  76.     myQuiz = new Quiz(this);
  77.     myQuiz.init();
  78.     myQuiz.nextQuestion();
  79.     delete o;
  80. }
  81. main();
  82.  
  83.  
  84.  
  85. /*
  86. //global error handler
  87. _global.System.onStatus = function (error)
  88. {
  89.     for (var i in error) trace( i + error[i]); 
  90. }
  91. */


gateway.php:

<?php
include "../flashservices/app/Gateway.php";
$gateway = new Gateway();
$gateway->usePearSOAP(false);
$gateway->service();
?>

und das wars. Einfach atemberaubend wenn man überlegt welche Möglichkeiten jetzt so einfach zu realisieren sind.

Falls es jemand testen möchte: hier die
FLA


phpamf
muss installiert sein und

Mit
NuSoap
verbindet man PHP mit SOAP. SOAP ist die Art der Verpackung für Web Services. Und hier die
Anleitung
um NuSoap mit amfphp nutzen zu können.

und inspiriert wurde ich heute von Sephiroth. Der hat noch ein wunderschönes Babelfish Beispiel:
www.sephiroth.it

Gruß,
Alex

Geändert von Alex U. (09-07-2003 um 08:30 Uhr)
Alex U. ist offline   Mit Zitat antworten
Alt 08-07-2003, 18:37   #2 (permalink)
◘ ◘
 
Benutzerbild von beachmeat
 
Registriert seit: Dec 2001
Ort: Amsterdam
Beiträge: 6.126
Super danke!

Aber das Gateway - is das nicht aus ner veralteten version von AMFphp?
__________________
jeden Tag frisch

Geändert von beachmeat (08-07-2003 um 18:40 Uhr)
beachmeat ist offline   Mit Zitat antworten
Alt 08-07-2003, 20:06   #3 (permalink)
Entwickler
 
Registriert seit: Apr 2002
Ort: Edinburgh, UK
Beiträge: 301
Zitat:
Geschrieben von beachmeat

Aber das Gateway - is das nicht aus ner veralteten version von AMFphp?
nein, ich glaube nicht, da es auch in der Anleitung für amfphp in Verbindung mit NuSoap steht.

$gateway->usePearSOAP(false);

ist dafür da, dass auch NuSoap verwendet wird, und nicht PearSOAP, was ähnlich zu NuSoap ist und standardmäßig von amfphp angesprochen wird.

Übrigens, auf der Webseite www.amfphp.org findet man noch die ältere Version 0.5.1. Beide Versionen sollten aber bereits mit NuSoap klarkommen. Ich habe 0.9.0 benutzt.

Gruß,
Alex
Alex U. ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 16:51 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele