Hej
Jeg har siddet med et problem i et stykke tid jeg håber nogle kan hjælpe mig med.
Jeg er ved at udvikle en applikation i Flex hvor jeg loader tekst ind via RemoteObject og AMFPHP.
Jeg får også loadet alt teksten ind uden problemer, men nu mangler jeg at tilføje en eventlistener der kan aktiver en function når alt indholdet er loadet..
Som i kan se har jeg prøvet at tilføje en!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | <mx:RemoteObject id="service" source="coldhawaii_service" destination="amfphp" fault="faultHandler(event)" showBusyCursor="true"> <mx:method name="getSurf" </mx:RemoteObject> [Bindable] public var content_web:ArrayCollection = new ArrayCollection; // -------------- Henter Tekst fra DB private function faultHandler(fault:FaultEvent):void } Alert.show(fault.fault.faultString, fault.fault.faultCode.toString()); } private function getContentHandler(event:ResultEvent):void { content_web = event.result as ArrayCollection; } protected function indexMenu_clickHandler(event:MouseEvent):void { currentState = event.currentTarget.name; switch (event.currentTarget.name) { case "surf": service.getSurf(); content_web.addEventListener(CollectionEvent.COLLECTION_CHANGE, surf_complete); break; } } private function surf_complete(event:Event):void { surf_spot.text = content_web.getItemAt(4).SURF_SPOT; surf_best.text = ""; surf_text.text = content_web.getItemAt(4).SURF_TEXT_DK; } |
Alt fungere undtagen content_web.addEventListener event'en ikke aktivere surf_complete functionen?
Mvh Troels
6 kommentarer
Hej Troels.
Som jeg lige ser det, så er det fordi du lytter på "collection change" - et event der skydes afsted når indholdet af en Collection skifter - det du gør er jo ikke at skifte indholdet af en Collection - du skifter jo slet og ret hele Collection'en ud med en anden. Det vil sige (igen, jeg er ikke sikker, da koden er lidt mangelfuld - eller også er det mig der ikke lige er sikker på rækkefølgen det hele bliver kaldt i) - at det objekt du sætter din listener på, byttes ud med et andet.
Du kan i stedet gøre sådan her:
content_web.addAll(event.result as ArrayCollection);- det vil jeg tro trigger dit event.
Cheers
Asger
Hej
sætningen trigger min event, men gør at indholdet ikke bliver loadet kronologisk ind..
Er der en anden function der kan trigger min 'surf_complete' function så jeg får indholdet ind i den rigtige rækkefølge?
Ind til vider tak Asger
Mvh Troels
Hej Troels.
Det er umuligt for mig at se hvad du mener med kronologi - ud fra koden du har indsat er der kun vist fault og result handlers. - så det kan jeg ikke umiddelbart svare dig på.
Men hvorfor har du i din result handler (som jeg heller ikke lige kan se hvor bliver triggeret fra) ikke også enten kaldet til den metode der parser data (complete metoden) eller selve parsingen dér?
Cheers
Asger
Hej Asger
Jeg er lidt grøn på dette område så her er mere af koden.
Det jeg vil opnå er at når brugeren trykker på en af menu punkterne/ indexMenu_clickHandler skifter statet og tekst indholdet bliver hentet.
Når indholdet er hentet til content_web variablen skal surf_complete funktionen aktiveres som så placere noget af indholdet i tekstfelterne.
content_web.addAll(event.result as ArrayCollection); trigger også min event. Men indholdet i variablen content_web har nu fået ændret deres id og nogle er helt væk.
Giver det et bedre billed af mit problem?
Mvh Troels
- jeg er ikke sikker på hvad du mener med at indholdet har fået ændret deres id? Mener du index? - måske bør du netop overveje at have et "id" på dine objekter, som du kan finde dem med, så du ikke er bundet til placeringer (getItemAt(index) ).
I min lille snippet oven for, forsøger jeg at vise at jeg synes du bør håndtere de forskellige resultater med hver deres metode - så behøver du ikke lytte til din ArrayCollection.
Håber det kunne give lidt inspiration.
Skriv endeligt hvad du finder ud af.
Cheers
Asger
Hej
Har fundet fejlen..
Det er rigtig som Asger skrev at jeg skulle bruge "addAll" som trigger min event.
Grunden til at index ændret sig var fordi jeg simpel hen glemte at slette det forgående indhlold..
Det vil sige jeg getContent funktionen bare skulle have tilføjet removeAll metoden før den hentede det nye ind (meget simpelt).
Nyt spørgsmål
Jeg har lavet et lille CMS i flex til at opdatere applikationens tekster og det fungere meget fint.
Men jeg kan ikke skrive æøå og andre special tegn i tekstfelterne..
Jeg er klar over det er karaktersættet, men burde utf-8 ikke understøtte æøå?
Hvordan tilføjer jeg disse?
Tak for hjælpen ind til vider..
Mvh Troels