Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [FLASH] odświeżenie pola teksowego
Neeke
post 11.07.2009, 15:59:56
Post #1





Grupa: Zarejestrowani
Postów: 124
Pomógł: 16
Dołączył: 22.02.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
zbig
post 11.07.2009, 18:01:33
Post #2





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

Ostrzeżenie: (0%)
-----


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


--------------------
Flash Flex PHP JAVA RED5 http://www.easyweb24.net
Go to the top of the page
+Quote Post
Neeke
post 11.07.2009, 18:24:18
Post #3





Grupa: Zarejestrowani
Postów: 124
Pomógł: 16
Dołączył: 22.02.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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. ?>


Ten post edytował Neeke 11.07.2009, 18:26:01
Go to the top of the page
+Quote Post
zbig
post 11.07.2009, 18:44:56
Post #4





Grupa: Zarejestrowani
Postów: 144
Pomógł: 30
Dołączył: 5.05.2007
Skąd: Mannheim

Ostrzeżenie: (0%)
-----


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


--------------------
Flash Flex PHP JAVA RED5 http://www.easyweb24.net
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 16:45