Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 10-09-2003, 00:13   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 117
setProperty / Variablen Problem

Hi Ho !

Ich schreibe gerade mein erstes News system, welches auch schon soweit sehr gut funktioniert. Nur leider will ich es so machen, daß meine beiträge auch an den richtigen stellen erscheinen. also die beiträge sollen schön untereinander sein.

da der inhalt dynamisch ist und somit auch bei entsprechender länge sich in der höhe verändert, muss der folgende beitrag auch erst unterhalb angezeigt werden.

folgendes script verwende ich:

ActionScript:
  1. for( var i = 0; i <= _root.newsarray.length; i++ ) {
  2.  
  3.         duplicateMovieClip ( _root.news.newsthread0, "newsthread"+i, i );
  4.         setProperty( _root.news["newsthread"+i], _x, _root.news.newsthread0._x );
  5.  
  6.         if( Number(i) < 1 ) {
  7.  
  8.             setProperty( _root.news["newsthread"+i], _y, 50 );
  9.         } else {
  10.  
  11.             setProperty( _root.news["newsthread"+i], _y, _root.news["newsthread"+i-1]._y+(_root.news["newsthread"+i-1]._height) );
  12.         }
  13.        
  14.         _root.details[i] = _root.newsarray[i].split("|");
  15.         removeMovieClip(_root.news["newsthread"+_root.newsarray.length]);
  16.     }

ich habe mir das so gedacht:

Y vom aktuellen MC ist Y vom vorherigen MC + dessen höhe + 10px um den abstand zu bekommen.

gefüllt wirds später in einer anderen FOR schleife, was auch wunderbar klappt.
__________________
REALITÄT IST DA WO DER PIZZAMANN HER KOMMT
actras ist offline   Mit Zitat antworten
Alt 10-09-2003, 07:33   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
autsch, schmeiß setProperty in den Müll. außerdem sind noch viele fehler drin du kannst nicht newsthread0 duplizieren und newsthread0 erstellen!? also fang mit 1 an
ActionScript:
  1. _root.news.newsthread0=50;
  2. _root.details=[];
  3.  _root.details[0] = _root.newsarray[0].split("|");
  4. for(var i = 1; i <= _root.newsarray.length; i++) {
  5.        
  6.         _root.news.newsthread0.duplicateMovieClip("newsthread"+i,i);
  7.         _root.news["newsthread"+i]._x=_root.news.newsthread0._x;
  8.     _root.news["newsthread"+i]._y=_root.news["newsthread"+(i-1)]._y+_root.news["newsthread"+(i-1)]._height;
  9.        
  10.         _root.details[i] = _root.newsarray[i].split("|");
  11.         _root.news["newsthread"+_root.newsarray.length].removeMovieClip();
  12. }
hab hier kein flash, kann es nicht testen, habs von der syntax her aber etwas modernisiert und auch die fehler die ich gefunden habe rausgenommen bzw verbessert

Sebastian

Geändert von sebastian (10-09-2003 um 07:35 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 10-09-2003, 08:45   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 117
hi ho !

thx für deine antwort. dein code funzt auf jeden fall schon mal besser als meine variante.

war um der start mit 0 ?? tja, wegen dem array. und index 0 vorher schon zu füllen, auf die idee bin ich nicht gekommen .... LOL

was ist denn an setProperty so falsch ???

wenn ich mir das so ansehe ist der code, naja bis auf newsthread0 duplizieren und erstellen (LOL), von der logik nicht anders als meiner.

lag das nur am setProperty ??

ein fehler passiert aber leider noch. der abstand von newthread0 zu newsthread1 ist leider nicht groß genug. der von newsthread1 zu 2 aber hingegen sehr gut und der est dann auch. nur von 0 zu 1 nicht.

ich versuche auch wie verrückt nach einer lösung. wenn du eine idee hast, dann immer her damit.

achso, ein fehler ist dann doch in deinem script:

am anfang sollte

ActionScript:
  1. root.news.newsthread0._y = 50;

stehen

cu

marco
__________________
REALITÄT IST DA WO DER PIZZAMANN HER KOMMT

Geändert von actras (10-09-2003 um 09:34 Uhr)
actras ist offline   Mit Zitat antworten
Alt 10-09-2003, 09:42   #4 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
warum wird das letzte mc wieder gelöscht.
verstehe ich nicht.probier so mal.
ActionScript:
  1. _root.details=[];
  2. var pos=_root.news.newsthread0._y=50
  3. _root.details[0] = _root.newsarray[0].split("|");
  4. for(var i = 1; i <=_root.newsarray.length; i++) {
  5.         mc= _root.news.newsthread0.duplicateMovieClip("newsthread"+i,i);
  6.         mc._x=_root.news.newsthread0._x;
  7.         mc._y=pos
  8.         pos +=mc._height;
  9.        _root.details[i] = _root.newsarray[i].split("|");
  10.        // _root.news["newsthread"+_root.newsarray.length].removeMovieClip();
  11. }
__________________
gruß Harry

Geändert von HAY (10-09-2003 um 09:59 Uhr)
HAY ist offline   Mit Zitat antworten
Alt 10-09-2003, 11:11   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 117
bei dieser lösung funzen zwar die ersten, aber dafür überlappen die nächsten und das scrollstop funktioniert nicht mehr einwandfrei .... komisch hat doch nix damit zu tun .....

wegen removeMc, ist bei meiner neuen version nicht mehr drin.

aber irgendiwe passt das alles nicht so. ich schau mal, daß ich mal ne FLA bereitstelle.
__________________
REALITÄT IST DA WO DER PIZZAMANN HER KOMMT
actras ist offline   Mit Zitat antworten
Alt 10-09-2003, 11:34   #6 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 117
so, hier ist mal das abgespeckte FLA ....


http://www.selfonme.de/bang/download/news.zip
__________________
REALITÄT IST DA WO DER PIZZAMANN HER KOMMT
actras ist offline   Mit Zitat antworten
Alt 10-09-2003, 14:10   #7 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
habs mir mal angeschaut.
1) du must den code in news.as auf 2 frames verteilen.
2) die textfelder müssen vor der Y positionierung initialisiert werde.wegen der mc höhe.
3)die wird aber nicht so schnell ausgelesen deswegen punkt1.
brauchst noch den code!!!
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 11-09-2003, 07:50   #8 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 117
hi ho !

also du meinst die einzelnen MC's sollten vorher initialisiert werden !!!???
__________________
REALITÄT IST DA WO DER PIZZAMANN HER KOMMT
actras ist offline   Mit Zitat antworten
Alt 11-09-2003, 08:22   #9 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
ja.erweitere den mc movNews um einen frame.
gib dem mc newsthread0 den instanznamen newsthread.
den code auf movNews weg.dann diesen code in die frames
von movNews.
ActionScript:
  1. // in den ersten frame
  2. _root.instanz   =  this._name;
  3. var newsdaten   =  new LoadVars();
  4.             newsdaten.onLoad = function() {
  5.             _root.newsarray=    this.news.split( "§" );
  6.             _root.newsarray.reverse();
  7.             _root.details = [];
  8.                 for(var i = 0; i < _root.newsarray.length; i++) {
  9.                 var mc= newsthread.duplicateMovieClip("newsthread"+i,i);
  10.                     _root.details[i] = _root.newsarray[i].split("|");
  11.                             mc.inhalt.htmlText  = _root.details[i][2];
  12.                             mc.eingestelltam.text   =  _root.details[i][0];
  13.                             mc.ueberschrift.text    =   _root.details[i][1];
  14.                 }
  15.                  newsthread._visible=false
  16.                  nextFrame();
  17.             }
  18. newsdaten.load( "news.dat" );
  19. stop()
ActionScript:
  1. //in den zweiten frame
  2. posy = 0;
  3. for (var i = 0; i<_root.newsarray.length; i++) {
  4.     this["newsthread"+i]._y=posy;
  5.     posy += this["newsthread"+i]._height
  6. }
  7.     if( this._height > 100 ) {
  8.         _root.hoch._visible =    true;
  9.         _root.runter._visible   =  true;
  10.     } else {
  11.         _root.hoch._visible =    false;
  12.         _root.runter._visible   =  false;
  13.     }
  14. stop()
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 11-09-2003, 09:02   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2003
Beiträge: 117
jaaaaaaaaaaaaaaaaaaaaaaaaaaa .....


sorry und thx hay für deine mühe !!!

ich hatte es gerade mit der aufteilung versucht, was fehlgeschlagen ist. aber ich habe es anders gelöst.

ich lasse im _root des ersten frame die MC darstellen und erst bei onClipEvent(enterFrame) setze ich die position. ist ja eigentlich nix anderes als eine frameaufteilung, da enterFrame eine Eigenschaft ist, dieerst nach der initialisierung des MC möglich ist ... sowiet ich das jetzt weis ...

dies klappt wunderbar und ich bin eine sorge mehr los ;-)))))))

wenn du willst, stelle ich das nochmal bereit zur ansicht ;-)
__________________
REALITÄT IST DA WO DER PIZZAMANN HER KOMMT

Geändert von actras (11-09-2003 um 09:06 Uhr)
actras ist offline   Mit Zitat antworten
Alt 11-09-2003, 10:24   #11 (permalink)
nie-auslernender
 
Registriert seit: Jul 2001
Beiträge: 466
stell mal rein komplett interessiert mich sehr.

mfg esia
__________________
it´s always the same, but most different
esia 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 06:48 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele