Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-08-2005, 17:34   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 61
probleme beim uebergeben von vars

Also folgendes problem... ich wollte so eine art balkendiagramm erstellen zu uebungszwecken... stolper aber irgendwie bei der uebergabe der variablen aus php nach flash...


hier der flash code:
Code:
onClipEvent(load){
	

this.loadVariables("test.php?cache=" + (new Date().getTime()));

this.onData = function() {
    _root.proz_1 = this.pro_1;
    _root.proz_2 = this.pro_2;
}

	attachMovie("bla","prozent",1);
	prozent._x = 20;
	prozent._y = -20;
	
	
	attachMovie("bla","prozent2",2);
	prozent2._x = 100;
	prozent2._y = -20;
		
this.prozent.onEnterFrame = function() {
        this._height<proz_1 ? this._height++ : (delete this.onEnterFrame);
};

this.prozent2.onEnterFrame = function() {
        this._height<proz_2 ? this._height++ : (delete this.onEnterFrame);
};

}

und hier die dazugehoerige test.php aus der ich die vars laden moechte:
Code:
<?php

$prozent_1 = 38;
$prozent_2 = 46;

echo '&pro_1=' . $prozent_1 . '&pro_2=' . $prozent_2 . '&';

?>
ich weiss echt nicht was ich falsch gemacht habe

mfg dragoon

Geändert von dragoon (11-08-2005 um 17:35 Uhr)
dragoon ist offline   Mit Zitat antworten
Alt 11-08-2005, 17:46   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Wenn du das schon mit Clipevents machst, solltest du für deinen onData auch einen eigenen Clipevent nehmen...

Schau aber besser unter "Suchen" nach den Threads zur LoadVars-Klasse, damit geht das Nachladen einfacher.
  Mit Zitat antworten
Alt 11-08-2005, 20:30   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 61
danke ... sry aber ich bin nen bissl doof was as angeht... aber alle haben ja mal klein angefangen ^^.. also ich hab jetzt wie du gesagt hast nach loadvars-klasse gesucht und ein anderen post von dir entdeckt in dem du eine gepostet hattest...

daraufhin hab ich versucht die in meine swf einzubringen.. leider ohne erfolg

ich hab einfachshalber das mal kopiert und direkt so eingefuegt... (ums im as code nicht zuviel zu veraendern hab ich eine var im phpfile in meineVariable umbenannt... um es ersteinmal mit einer variable zu testen ... leider ohne erfolg...

Code:
onClipEvent(load){

function geladen(erfolgreich) {
        if(erfolgreich) {
             trace("this.meineVariable="+this.meineVariable);        
        }
        else {
                trace("Fehler beim Laden");
        }
}
LadeObj = new LoadVars();
LadeObj.onLoad = geladen;
LadeObj.sendAndLoad("test.php",LadeObj,"POST");


	attachMovie("bla","prozent",1);
	prozent._x = 20;
	prozent._y = -20;
	
	
	attachMovie("bla","prozent2",2);
	prozent2._x = 100;
	prozent2._y = -20;
		
this.prozent.onEnterFrame = function() {
        this._height<meineVariable ? this._height++ : (delete this.onEnterFrame);
};

this.prozent2.onEnterFrame = function() {
        this._height<60 ? this._height++ : (delete this.onEnterFrame);
};
}
ich bin anfaenger also bitte nicht zu hart mit mir ins gericht gehen
dragoon ist offline   Mit Zitat antworten
Alt 11-08-2005, 20:43   #4 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
also, du übergibst per php zwei variablen an flash:

PHP-Code:
?php

$prozent_1 
38;
$prozent_2 46;

echo 
'&pro_1=' $prozent_1 '&pro_2=' $prozent_2 '&';

?> 
var 1= pro_1 (38)
var 2= pro_2 (46)

flash kann jetzt nur diese vars erkennen, nix anderes.


PHP-Code:
function geladen(erfolgreich
{
        if(
erfolgreich
       {
             
trace('variable 1: '+this.pro_1+'   '+'variable 2: '+this.pro_2);//  <-------         
        
}
        else {
                
trace("Fehler beim Laden");
        }
}
LadeObj = new LoadVars();
LadeObj.onLoad geladen;
LadeObj.sendAndLoad("test.php",LadeObj,"POST"); 

die vars aus der php gehören jetzt dem loadvars-objekt.
du kannst sie direkt ansprechen oder im onload (anstelle des trace)
einer anderen instanz zuordnen (z.b. _root)

grz
warrantmaster ist offline   Mit Zitat antworten
Alt 11-08-2005, 20:59   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 61
also wenn ich dich richtig verstanden habe.. kann ich die vars jetzt direkt ansprechen... also irgendwo im weiteren script verwenden? oder muss diese dann direkt in der bedingung verwenden wo das trace steht?und btw die bezeichung der variable ist dann immernoch pro_1 bzw pro_2 oder aendert sich da was?
dragoon ist offline   Mit Zitat antworten
Alt 11-08-2005, 21:15   #6 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich hab doch schon geschrieben: lass diesen blöden Clipevent weg und leg das Script auf die Hauptzeitleiste. Wenn du den MC ansteuern musst, gib ihm einen Instanznamen, dann kannst du ihn im Script über diesen Instanznamen ansprechen.

ActionScript:
  1. function geladen(erfolgreich) {
  2.         if(erfolgreich) {
  3.              trace("this.pro_1="+this.pro_1)
  4.              trace("this.pro_2="+this.pro_2);
  5.              _level0.pro_1 = this.pro_1;
  6.              _level0.pro_2 = this.pro_2;
  7.  
  8.              _level0.attachMovie("bla","prozent",1);
  9.          _level0.prozent._x = 20;
  10.          _level0.prozent._y = -20;
  11.         
  12.    
  13.          _level0.attachMovie("bla","prozent2",2);
  14.          _level0.prozent2._x = 100;
  15.          _level0.prozent2._y = -20
  16.  
  17.             //und hier die onEnterFrame-Events, falls die nicht auf den MCs laufen, auf andere MCs legen
  18.            _level0.prozent.onEnterFrame = function() {
  19.         _level0.prozent._height<_level0.pro_1 ? _level0.prozent._height++ : (delete this.onEnterFrame);
  20. };
  21.  
  22. _level0.prozent2.onEnterFrame = function() {
  23.         _level0.prozent2._height<_level0.pro_2 ? _level0.prozent2._height++ : (delete this.onEnterFrame);
  24. };   
  25.         }
  26.         else {
  27.                 trace("Fehler beim Laden");
  28.         }
  29. }
  30. LadeObj = new LoadVars();
  31. LadeObj.onLoad = geladen;
  32. LadeObj.sendAndLoad("test.php",LadeObj,"POST");
Du musst bei Nachladeoperationen immer sicher stellen, dass deine Variablen auch angekommen sind. Erst dann kannst du darauf zurückgreifen.

In der Praxis geht das, indem man im onLoad-Callback wartet, bis die Variablen da sind und erst dann Funktionen startet, die diese Variablen benötigen.

Geändert von agedoubleju (11-08-2005 um 21:17 Uhr)
  Mit Zitat antworten
Alt 11-08-2005, 21:18   #7 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
direkt ansprechen:

LadeObj.pro_1

das ganze geht natürlich erst, wenn loadvars fertig geladen hat.

weitergeben:

PHP-Code:
function geladen(erfolgreich)
{
        if(
erfolgreich)
       {
             
//trace('variable 1: '+this.pro_1+'   '+'variable 2: '+this.pro_2)
                
_root.meine_var1=this.pro_1
                _root
.meine_var2=this.pro_2
               ausgabe
()     
        }
        else {
                
trace("Fehler beim Laden");
        }
}
LadeObj = new LoadVars();
LadeObj.onLoad geladen;
LadeObj.sendAndLoad("test.php",LadeObj,"POST"); 

function 
ausgabe()
{
     
trace(_root.meine_var1+'    '+_root.meine_var2)

warrantmaster ist offline   Mit Zitat antworten
Alt 11-08-2005, 21:35   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 61
ok soweit klar ... danke bis hierhin... was ich aber nicht verstehe ist, das der mir beim trace folgendes ausgibt:

Zitat:
this.pro_1='.$prozent_1.'
this.pro_2='.$prozent_2.'
müsste ich nicht rein theoretisch die variable als zweiten wert stehen haben?

edit: ok das problem hab ich mittlerweile selber hinbekommen... und nun laeuft es zumindest wenn ich den movie in flash teste... nur laeuft es leider nicht wenn ich das auf meinen localhostserver packe und von dort aus starte

kann mir da einer weiterhelfen?

btw ich danke schoneinmal den beiden oberen genies... die es mir newbie so verklickert haben das ich es zu 70% schoneinmal verstanden habe (die restlichen 30% kommen spaeter)

Geändert von dragoon (11-08-2005 um 21:59 Uhr)
dragoon ist offline   Mit Zitat antworten
Alt 11-08-2005, 23:31   #9 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Das sollte eigentlich funzen:
PHP-Code:
<?php
$pro_1 
38;
$pro_2 46;

echo 
"&pro_1=".$pro_1."&pro_2=".$pro_2."&";
?>
Lass dir den echo-Befehl sonst mal in einem Browserfenster testhalber ausgeben...
  Mit Zitat antworten
Alt 11-08-2005, 23:34   #10 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 61
das hab ich mittlerweile schon selber wieder hinbekommen ^^

problem imo ist nur das das alles perfekt funktioniert wenn ich auf film testen gehe... aber nicht sobald ich auf veröffentlichen gehe... dann zeigt er mir gar nix mehr an (mit inet exp und firefox probiert also denke ich nicht das es am browser liegt)
dragoon ist offline   Mit Zitat antworten
Alt 11-08-2005, 23:51   #11 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Dann versuch mal im sendAndLoad statt mit "POST" mit "GET" zu arbeiten...
  Mit Zitat antworten
Alt 11-08-2005, 23:53   #12 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 61
leider keine verbesserung... nur weisser bildschirm beim veröffentlichen bzw bei der vorschau fuers veröffentlichen... ich verstehs nicht dabei funzt das doch wenn ich auf film testen klicke

ich such nun schon seit stunden im forum heir nach einem aehnlichen problem... aber bis jetzt hab ich da nix gefunden was hilft

Geändert von dragoon (11-08-2005 um 23:55 Uhr)
dragoon ist offline   Mit Zitat antworten
Alt 12-08-2005, 05:59   #13 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
du nutzt aber doch einen server...oder ?
warrantmaster ist offline   Mit Zitat antworten
Alt 12-08-2005, 13:43   #14 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Beiträge: 61
ja natuerlich...

habs mittlerweile nun auch hinbekommen... nur musste ich dazu die temporäre datei welche beim film testen erstellt wird mir kopieren... muss also irgend ein problem mit flash selber sein...
dragoon 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 02:41 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele