Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 16-09-2004, 16:59   #1 (permalink)
Digger2k3
Gast
 
Beiträge: n/a
Unhappy Übergabe von Variablen aus schleife an Funtion

Hallo ... also heute bin ich ja hier echt stammkunde

Ich lasse Koordinaten aus einer Datenbank auslesen, diesen Array lasse ich dann nach einem Trennzeichen durchsuchen und lasse ihn dann mittels einer schleife splitten.

Dann lasse ich die gesplitteten Teile nochmal durchsuchen und lasse auch diese Splitten ... das geht auch alles gut, aber ich möchte dann die Werte an einer Funtion übergeben ... das geht eigentlich auch so weit, aber er macht damit nichts und ich weiß net warum ... ich habe hier mal das AS

ActionScript:
  1. //Zeichnungsfunktion:_______________________________________________________________________________________________
  2. function redrawing(x_pos, y_pos, dicke, farbe) {
  3.     _root.mal_mc_2.lineStyle(dicke, farbe, 100);
  4.     _root.mal_mc_2.moveTo(_root.mal_mc_2._x=x_pos, _root.mal_mc_2._y=x_pos);
  5.     _root.mal_mc_2.onEnterFrame = function() {
  6.         //if (_root.mal_mc_2.hitTest(_root.x_pos, _root.y_pos, true)) {
  7.         _root.mal_mc_2.lineTo(_root.mal_mc_2._x=x_pos, _root.mal_mc_2._y=y_pos);
  8.         updateAfterEvent();
  9.         //} else {
  10.         //delete _root.mal_mc_2.onEnterFrame;
  11.         //}
  12.     };
  13. }
  14. //Wenn auf weiter geklickt wird:__________________________________
  15. _root.weiter_mc.onRelease = function() {
  16.     if (eintragsnummer<vorhanden) {
  17.         eintragsnummer = eintragsnummer+1;
  18.         var zielLoadVars:LoadVars = new LoadVars();
  19.         var id_senden:LoadVars = new LoadVars();
  20.         id_senden.id_db = eintragsnummer;
  21.         id_senden.onLoad = function(erfolgreich) {
  22.             if (erfolgreich) {
  23.             }
  24.         };
  25.         id_senden.sendAndLoad("http://localhost/tino/forum/read_drawbook.php", zielLoadVars, "POST");
  26.         zielLoadVars.onLoad = function() {
  27.             name_auslesen = this.name_auslesen;
  28.             email_auslesen = "<a href='mailto:"+this.email_auslesen+"'>"+this.email_auslesen+"</a>";
  29.             kommentar_auslesen = this.kommentar_auslesen;
  30.             dicke = this.dicke_auslesen;
  31.             farbe = this.farbe_auslesen;
  32.            
  33.             koordinaten = new Array();
  34.             koordinaten = this.koordinaten_auslesen;
  35.             var koor = koordinaten.split(",");
  36.             laenge = koor.length;
  37.            
  38.             for (i=0; i<laenge-1; i++) {
  39.                 var koor_s = koor[i].split("!?!");
  40.                
  41.                 x_pos = koor_s[0];
  42.                 y_pos = koor_s[1];
  43.                
  44.                 redrawing(x_pos, y_pos, dicke, farbe);
  45.             }
  46.         };
  47.     } else {
  48.     }
  49. };

Er zeichnet einfach net die punkte nach, es geht aber, wenn ich x_pos und y_pos manuel setze, dann zeichnet er die punkte ....

HILFE !!! BITTE !!!


DANKE !!!

Mfg

Tino
  Mit Zitat antworten
Alt 16-09-2004, 17:04   #2 (permalink)
lounger one
 
Benutzerbild von linkage
 
Registriert seit: Jul 2002
Ort: Kassel
Beiträge: 556
ich hatte gestern ein ähnliches Problem!
der Fehler war, nach dem Splitten hatten die Variablen aufgrund dessen wie sie angelegt wurden ein Leerzeichen hinter der zahl! dadurch war es Flash nicht möglich die Werte als Number zu verwerten! ... nur so eine Idee.
__________________
your friendly Neighbour

Linkage

m.link@gmx.de
linkage ist offline   Mit Zitat antworten
Alt 16-09-2004, 17:08   #3 (permalink)
Digger2k3
Gast
 
Beiträge: n/a
... das hört sich sehr gut an ... und wie hast du das gelöst ???

Gibt es eine funtion um leerzeichen zu entfernen ??

Mfg

Tino
  Mit Zitat antworten
Alt 16-09-2004, 17:15   #4 (permalink)
Neuer User
 
Benutzerbild von lukasboehle
 
Registriert seit: Jul 2004
Ort: Köln
Beiträge: 102
Hi,

wenn du mit ner Funktion rechnen willst musst du sie ggf casten. Also von ner String var in ne Number var.

Wenn du dazu Leerzeichen "ignorieren" willst castet man mit:

parseInt(deineVariable,10);

Die 10 ist notwendig um ins richtige Zahlensystem zu casten. Ich hoff das hilft dir

Gruss, Lukas.
lukasboehle ist offline   Mit Zitat antworten
Alt 16-09-2004, 17:19   #5 (permalink)
Digger2k3
Gast
 
Beiträge: n/a
hi lukas ...

also ich muss dir ehrlich sagen, dass ich da nicht so richtig mitkomme ... kannst du mir das nochmal ein bisschen erklären bitte ???

Mfg

Tino
  Mit Zitat antworten
Alt 16-09-2004, 17:28   #6 (permalink)
Digger2k3
Gast
 
Beiträge: n/a
also ich lasse mir jetzt mal in einer Funktion den Wert von x_pos ausgeben ... der ist komischer weise immer gleich ????

Aber warum ????

Das finde ich sehr seltsam
  Mit Zitat antworten
Alt 16-09-2004, 17:32   #7 (permalink)
Neuer User
 
Benutzerbild von lukasboehle
 
Registriert seit: Jul 2004
Ort: Köln
Beiträge: 102
Ich habs mir selbst letztens noch erklären lassen. Ich hoffe ich sage jetzt nichts falsches, aber:

Wenn du mit einer Variable rechnen willst musst du sie vom einem Typen (String/Text) in den anderen (Number/Zahl) wandeln (casten).

Wenn du nun aber Leerzeichen ignorieren willst castest du besser mit parseInt, als mit Number.

Kannste aber auch Nachlesen... "csv in Array laden" hieß meine Frage, die mir der gute alte ludabruda gelöst hat

Gruss, Lukas
lukasboehle ist offline   Mit Zitat antworten
Alt 16-09-2004, 17:38   #8 (permalink)
Digger2k3
Gast
 
Beiträge: n/a
hi nochmal ...

also ich habe mir das mal reingezogen und das auch ausprobiert, aber das ist leider net die lösung meines Problems....

Wenn ich an dieser stelle die x_pos und die y_pos ausgeben lasse:

ActionScript:
  1. for (i=0; i<laenge-1; i++) {
  2.                 var koor_s = koor[i].split("!?!");
  3.                                
  4.                 var x_pos = koor_s[0];
  5.                 var y_pos = koor_s[1];
  6.                
  7.                 trace(x_pos);
  8.                 trace(y_pos);
  9.                
  10.                 redrawing(x_pos, y_pos, dicke, farbe);
  11.             }

... dann geht das, also dann zeigt er mir alle koordinaten an, aber wenn ich es hier ausgeben lasse:

ActionScript:
  1. //Zeichnungsfunktion:_______________________________________________________________________________________________
  2. function redrawing(x_pos, y_pos, dicke, farbe) {
  3.     _root.mal_mc_2.lineStyle(dicke, farbe, 100);
  4.     _root.mal_mc_2.moveTo(_root.mal_mc_2._x=x_pos, _root.mal_mc_2._y=x_pos);
  5.     _root.mal_mc_2.onEnterFrame = function() {
  6.         _root.mal_mc_2.lineTo(_root.mal_mc_2._x=x_pos, _root.mal_mc_2._y=y_pos);
  7.         updateAfterEvent();
  8.         trace (x_pos);
  9.     };
  10. }

... dann ist x_pos immer die selbe koordinate .... aber ich übergebe ihm doch in der for schleife die koordinaten, warum bekommt der nur die erste ???
  Mit Zitat antworten
Alt 16-09-2004, 18:30   #9 (permalink)
Digger2k3
Gast
 
Beiträge: n/a
hallo nochmal ...

also ich glaube ich weiß woran das liegt ...

undzwar:

ActionScript:
  1. _root.mal_mc_2.moveTo(_root.mal_mc_2.x_pos, _root.mal_mc_2.y_pos);

An dieser Stelle bekomme ich nicht die koordinaten für das moveTo richtig eingestellt, d.h. er erkennt sie net ... ich weiß nicht so richtig, wie ich die anhängen muss an _root.mal_mc_2 ....

Hat noch jemand n Tip für mich ???

DANKE

Mfg

Tino
  Mit Zitat antworten
Alt 16-09-2004, 18:42   #10 (permalink)
Digger2k3
Gast
 
Beiträge: n/a
ok also jetzt zeichnet er zwar, aber er beginnt von der mitte des MCs und zeichnet schräg nach rechts unten weg ... ich verstehe es einfach net mehr....

ich habe das hier mal online getstellt, ich würde mich freuen, wenn mir nochmal jemand hilft ... bitte

http://www.pixel-shock.de/draw_book_mx.rar


Mfg

Tino
  Mit Zitat antworten
Alt 16-09-2004, 19:33   #11 (permalink)
freundlich ...
 
Benutzerbild von LoRMiddleCLass
 
Registriert seit: Aug 2002
Ort: Berlin
Beiträge: 588
ähm ... hab mir das grad mal runtergeladen. funktioniert doch wunderbar! ich seh grad das problem nicht.
außer, dass ne strg+z funktion fehlt

*m
__________________
the universe wants you to win...
LoRMiddleCLass ist offline   Mit Zitat antworten
Alt 16-09-2004, 19:44   #12 (permalink)
Digger2k3
Gast
 
Beiträge: n/a
hi ... naja, das zeichnen geht auch wunderbar, aber das wiederzeichnen das geht net, wenn man sich die einträge ansieht ....

was meinst du mit strg+z ???

Mfg

Tino
  Mit Zitat antworten
Alt 16-09-2004, 20:00   #13 (permalink)
freundlich ...
 
Benutzerbild von LoRMiddleCLass
 
Registriert seit: Aug 2002
Ort: Berlin
Beiträge: 588
ahhhhh so! das redrawing! sorry

also, auf den ersten bilck scheint es mir folgendes problem zu geben:

du gehst in deiner schleife den kompletten array durch und übergibst die werte an die redrawing-funktion.
die redrawing funct macht ein moveTo auf die x/y pos von mal_2, was dann höchstwahrscheinlich der mittelpunkt der zeichenfläche ist?
aber das eigentliche problem könnte sein, dass redrawing jedes mal eine onEnterFrame-function für mal_2 definiert. das heißt, bei jedem aufruf wird das onenterframe überschrieben. und dann bleibt nur das letzte mal übrig und deshalb wir dir beim trace nur ein wert ausgegeben.

verständlich?

*m
__________________
the universe wants you to win...
LoRMiddleCLass ist offline   Mit Zitat antworten
Alt 16-09-2004, 20:04   #14 (permalink)
Digger2k3
Gast
 
Beiträge: n/a
jo .. .das hört sich logisch an ... aber ich muss ehrlich sagen, ich bewege mich heute im kreis .... irgendwie verstehe ich net, wie ich dieses Prob lösen kann ...

ich habe auch das problem, das ich denke, dass es auch daran liegt, dass ich die funtion nur dann aufrufe, wenn man den weiter_button loslässt ...

kann es damit auch was zu tun haben ?
  Mit Zitat antworten
Alt 16-09-2004, 20:11   #15 (permalink)
freundlich ...
 
Benutzerbild von LoRMiddleCLass
 
Registriert seit: Aug 2002
Ort: Berlin
Beiträge: 588
hmm.. kann das jetzt scglecht ausprobieren - du könntest mal so n php mit textdatei online stellen, so, dass man das halt mal wirklich ausprobieren kann, dein script.

aber n versuch wäre das hier:

PHP-Code:
function drawInit dickefarbe ) {
    
_root.mal_mc_2.lineStyle(dickefarbe100);
    
_root.mal_mc_2.moveTo(_root.mal_mc_2._y_root.mal_mc_2._y);
}
function 
redrawing(x_posy_pos) {
    
_root.mal_mc_2.lineTo(_root.x_pos_root.y_pos);

drawInit nur einmal aufrufen vor der for-schleife und in der fpr-schleife weiter redrawing aufrufen...
versuch mal.

muss jetzt weg - mein bier ruft!

*m
__________________
the universe wants you to win...
LoRMiddleCLass 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 07:44 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele