Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [FLASH] odświeżenie pola teksowego
Forum PHP.pl > Forum > Przedszkole
Neeke
Witam,
po długim czasie nieobecności na tym forum wracam z kolejnym problemem, tym razem w języku FLASH.

Pisze stronę dla kolegi właśnie we Flashu z wykorzystaniem XML-a.

Opis co chcę uzyskać:
dwa pola tekstowe jedno tytuł a drugie to treść
na stronie są dwa guziki w movie-clip i każdy z nich jak najade kursorem na każdy z nich chcę by z pliku xml została wczytana odpowiednia grupa tekstów.
obecnie jest tak że działa lecz efekt jest taki, jak zjeżdżam kursorem z guzika tekst już zostaje w polach gdzie sie ma wyświetlać i najeżdżając na drugi guzik już nie zostaje wczytany tekst odpowiedni dla tego guzika.

poniżej umieszczę kod może coś tam mam nieprawidłowo lub czegoś nie mam

Skrypt umieszczony w pierwszej klatce na time-line
  1. <?php
  2. function button (name, xmlo) { // funkcja najechania na button
  3.   if (!_root.blokada) { // jesli myszka nie kliknela w przycisk
  4.      if (_root[name].hitTest (_root._xmouse, _root._ymouse)) { // jesli przycisk dotyka kursora
  5.         _root[name].gotoAndStop ("over");
  6.         _lumikaXML(xmlo);
  7.      } else { // jesli przycisk nie dotyka kursora
  8.         _root[name].gotoAndStop ("out");
  9.        
  10.      }
  11.   }
  12. }
  13.  
  14. function mDown (name) { // funkcja wcisniecia przycisku
  15.   if (_root[name].hitTest (_root._xmouse, _root._ymouse)) { // jesli przycisk dotyka kursora
  16.      _root.blokada = true; // zablokuj funkcje 'button'
  17.      _root[name].gotoAndStop ("hit"); // pokaz inny kolor przycisku
  18.   }
  19. }
  20.  
  21.  
  22. function mUp (name) { // funkcja zwolnienia przycisku
  23.   _root.blokada = false; // odblokuj przycisk by dzialala funkcja 'button'
  24. }
  25.  
  26. function _lumikaXML(d){
  27.    var myXML = new XML();
  28.    myXML.ignoreWhite = true;
  29.    myXML.onLoad = function(sucess){
  30.        if(sucess){
  31.            
  32.            inBOXbody.text = this.firstChild.childNodes[d].childNodes[1].firstChild.nodeValue;
  33.            inBOXtitle.text = this.firstChild.childNodes[d].childNodes[0].firstChild.nodeValue;
  34.        }
  35.    }
  36.    myXML.load("scripts.xml");
  37.    
  38. }
  39. ?>



skrypt wywołujący w MC odpowiednie zdarzenie przypisany w danym MC
  1. <?php
  2. onClipEvent (load) {
  3.   this.stop (); // zatrzymaj przycisk
  4.   this.txtBTN = "TEKST"; // tekst wyświetlany na przycisku
  5.   _root.blokada = false; // oznacza ze myszka nie wcisnela przycisku
  6. }
  7.  
  8. onClipEvent (enterFrame) {
  9.   _root.button (_name,1);
  10. }
  11.  
  12. onClipEvent (mouseDown) {
  13.   _root.mDown (_name);
  14. }
  15.  
  16. onClipEvent (mouseUp) {
  17.   _root.mUp (_name);
  18. }
  19. ?>




Przepraszam że ten temat umieszczam w znacznikach php ale nie dostrzegam tu Flash oraz za umieszczenie tematu w dziale przedszkole ale też nie widziałem działu Flash

przykład umieściłem na serwerze http://lumika.neeke.cba.pl/

Proszę o pomoc bo stanąłem w martwym punkcie od 2 dni próbuję to zrobić szukałem na necie i też już zabrakło mi fraz i pomysłów jak to może być wyszukane.
zbig
Witam !

Przepraszam ale nie moge sobie podarowac uwagi ze Twoj sposob uzywania AS jest bynajmniej troche przeterminowany smile.gif.
Postaraj sie tchnac troche nowego ducha w Twoj Action Script bo przy duzych rzeczach zginiesz w "onClipEventach" i "gotoAnPlayach"

ale do rzeczy
Czy probowales jakiegos trace() uzyc zeby stwierdzic czy kazdy klip generuje Ci ten sam tekst , czy tekst jest generowany tylko pierwszym razem a pozniej klipy po prostu nie reaguja ?

Bo ja mam wrazenie ze blad lezy tutaj

Cytat
  1. <?php
  2. onClipEvent (enterFrame) {
  3.  _root.button (_name,1);
  4. }
  5. ?>


Do funkcji button przekazujesz jako drugi parametr w kazdym klipie liczbe 1, dlatego z XML-a pobierasz caly czas ta sama node

Pozdrawiam
Neeke
Cytat(zbig @ 11.07.2009, 19:01:33 ) *
Witam !

Przepraszam ale nie moge sobie podarowac uwagi ze Twoj sposob uzywania AS jest bynajmniej troche przeterminowany smile.gif .
Postaraj sie tchnac troche nowego ducha w Twoj Action Script bo przy duzych rzeczach zginiesz w "onClipEventach" i "gotoAnPlayach"

Z góry dziękuję za odpowiedź. Owszem możliwe że przestarzały jest ten AS ale dopiero sie ucze Flasha i pewne elementy zapamiętuje z jakiś tutoriali.

ale do rzeczy
Cytat(zbig @ 11.07.2009, 19:01:33 ) *
Czy probowales jakiegos trace() uzyc zeby stwierdzic czy kazdy klip generuje Ci ten sam tekst , czy tekst jest generowany tylko pierwszym razem a pozniej klipy po prostu nie reaguja ?

Pozdrawiam


właśnie sprawdziłem teraz funkcją trace() i wynik jest taki że tekst jest załądowany tylko pierwszym razem, dalej nie odbywa się ponowne pobranie tekstu.

  1. <?php
  2. onClipEvent (enterFrame) {
  3. _root.button (_name,1); // ---> tu drugi parametr jest w kazdym wyołaniu MC zmieniony od zera do 3
  4. }
  5. ?>
zbig
Nie musisz uzywac zadnych hitTest zeby stwierdzic czy myszka jest nad clipem

Jezeli masz dynaczny textField i jakis klip na scenie wystarczy uzyc czegos podobnego do eventHandler

  1. <?php
  2. clip1.onRollOver = function(){
  3.    mytext.text = "text1"; // myszka nad twoim klipem
  4. }
  5. clip1.onRollOut = function(){
  6.    mytext.text = "";//myszka poza klipem
  7. }
  8. ?>


ten kod umieszczasz w 1 klatce timeline i masz dostep do zdarzen klipu
i to powinno w 100% rozwiazyc Twoj problem
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.