Strona 1 z 2

Problem z wysłaniem zmiennej z pliku PHP do flash.

: pn mar 24, 2008 5:08 pm
autor: tomog2
Posiadam kod:

Kod: Zaznacz cały

this.loadVariables ("aktualizacja.php", "POST");
this.grafika1.text = this.grafika1;

if (grafika1.text == "1") {
		  G1_1._alpha = 0;
		  G2_1._alpha = 0;
		  G3_1._alpha = 0;
		  G4_1._alpha = 0;
		  G5_1._alpha = 0;
		  G6_1._alpha = 0;
	   }
else {
                  G1_1._alpha = 100;
		  G2_1._alpha = 100;
		  G3_1._alpha = 100;
		  G4_1._alpha = 100;
		  G5_1._alpha = 100;
		  G6_1._alpha = 100;
         }
Ma on za zadanie pobrać z pliku aktualizacja.php daną grafika1, a następnie umieścić ją w polu Dynamic Text. Następnym krokiem jest porównanie zawartości tego pola w warunku if.
Noi wszystko działa jednakże warunek cały czas nie spełnia się. Ciągle jest fałszywy.

Podejrzewam że flash najpierw wykonuje warunek a dopiero później pobiera daną do pola Dynamic Text.

Macie jaki pomysł jak to zrobić żeby było dobrze?

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: pn mar 24, 2008 9:38 pm
autor: Marek_bf
tomog2 pisze:Podejrzewam że flash najpierw wykonuje warunek a dopiero później pobiera daną do pola Dynamic Text.
Tak.

Używaj LoadVars i metody onLoad

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 11:59 am
autor: tomog2
Rozumiem że użyc onLoad zarówno na kodzie pobierania wartości z pliku jak i na warunku?

Czyli:

onLoad.... {
pobieranie danych z pliku php;
}

onLoad.... {
sprawdzanie warunku;
}

To oczywiście bardzo uproszczony zapis. :)

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 1:01 pm
autor: Marek_bf

Kod: Zaznacz cały

var sterowaneMcArr:Array = new Array(G1_1, G2_1, G3_1, G4_1, G5_1, G6_1);
var pathPhp:String = "aktualizacja.php";
var myLoadVars:LoadVars = new LoadVars();
//
myLoadVars.onLoad = function(ok:Boolean) {
	if (ok) {
		grafika1.text = sprawdz(this.grafika1, "1");
	}
};
myLoadVars.load(pathPhp);
//
function sprawdz(varsValue:String, testValue:String):String {
	if (varsValue == testValue) {
		widocznosc(sterowaneMcArr, 100);
	} else {
		widocznosc(sterowaneMcArr, 0);
	}
	return varsValue;
}
//
function widocznosc(sterowaneMcArr:Array, alphaValue:Number):Void {
	for (var i = 0; i < sterowaneMcArr.length; i++) {
		sterowaneMcArr[i]._alpha = alphaValue;
	}
}

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 5:37 pm
autor: tomog2
Marek_bf, wszystko pięknie ładnie, tyle że funkcja po pobraniu zamiennej z pliku php ciągle ustawia moje mc G1_1, G2_1,...G6_1 na niewidoczne. Oznacza to że warunek nie jest spełniony. Zastanawiam się czy to nie wina mojego pliku php.

Wygląda on tak
[php]<?
print "&grafika1=1";
?>[/php]

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 8:11 pm
autor: Marek_bf
[php]<?php
echo 'grafika1=1';
?>[/php]

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 8:43 pm
autor: tomog2
Niestety, żadnych zmian.
Zastanawiam się co jeszcze może być nie tak z tym skryptem.

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 8:55 pm
autor: Marek_bf
Sprawdź jaka wartość Ci wyświetli ten skrypt:

Kod: Zaznacz cały

var pathPhp:String = "aktualizacja.php";
var myLoadVars:LoadVars = new LoadVars();
// 
myLoadVars.onLoad = function(ok:Boolean) {
	if (ok) {
		grafika1.text = this.grafika1.length;
	}
};
myLoadVars.load(pathPhp);
Powinno być 1

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 9:52 pm
autor: tomog2
Oczywiście, że wyświetla. Próbowałem już na przeróżne sposoby: zmieniałem typ zmiennej ze string, na int, real, itp. Wymuszałem też w pliku PHP żeby zmienna przekazywana była typu string, na int, real, itp.

Zastanawia mnie jedno? Dlaczego wciąż funkcja nie spełnia warunku! Przyznam się że nie mam pomysłu.

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 9:58 pm
autor: Marek_bf
U mnie podany przykład działa. Pokaż pliki.

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 10:12 pm
autor: tomog2

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: wt mar 25, 2008 10:37 pm
autor: argik

Kod: Zaznacz cały

<?php
     echo "&grafika1=1&";
?>
czyli dwa razy "&" - przed nazwa zmiennej i po wartosci zmiennej

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: śr mar 26, 2008 7:42 am
autor: tomog2
Dzięki Marek_bf wszystko działa. Jesteś niezastąpiony. :-D

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: śr mar 26, 2008 8:17 am
autor: Marek_bf
Trochę ulepszony skrypt:

Kod: Zaznacz cały

var sterowaneMcArr:Array = new Array(G1_1, G2_1, G3_1, G4_1, G5_1, G6_1);
widocznosc(sterowaneMcArr, 0);
var pathPhp:String = "aktualizacja.php";
var myLoadVars:LoadVars = new LoadVars();
//
myLoadVars.onLoad = function(ok:Boolean) {
	if (ok) {
		grafika1.text = sprawdz(this.grafika1, "1");
	} else {
		sprawdz("0", "1");
	}
};
myLoadVars.load(pathPhp + "?" + new Date().getTime());
//
function sprawdz(varsValue:String, testValue:String):String {
	if (varsValue == testValue) {
		widocznosc(sterowaneMcArr, 100);
	} else {
		widocznosc(sterowaneMcArr, 0);
	}
	return varsValue;
}
//
function widocznosc(sterowaneMcArr:Array, alphaValue:Number):Void {
	for (var i = 0; i < sterowaneMcArr.length; i++) {
		sterowaneMcArr[i]._alpha = alphaValue;
	}
}

Re: Problem z wysłaniem zmiennej z pliku PHP do flash.

: czw mar 27, 2008 3:45 pm
autor: tomog2
Marek_bf mam do ciebie jeszcze jedno pytanie. Powiedz mi jak zmienić powyższy kod w taki sposób, żeby:
1. Wysyłam jakiś ciąg znaków do pliku PHP,
2. Plik PHP zmiania ten ciag na powiedzmy cyfrę 2 lub 7,
3. Importuje zmienną z pliku PHP do pola Dynamic Text,
4. Sprawdzam czy zaimportowana dana jest równia 2, jeżeli tak skacze do klatki 2, jeżeli nie do 4.

O ile mam już 1,2 i 3 krok, o tyle nie mogę za cholerę wykonac warunku. Chodzi o to że wykonuje sie on za wcześnie, nie czeka aż zaimportuje dana. Wiec cały czas skacze do klatki 4.

Masz moze jakies proste rozwiazanie, ale dobry przykład do samoszkolenia. :)