PDA

Volledige versie bekijken : Xml reader bug met teveel clicks


Wilder
%Europe/Berlin %662 %2007, 15:54
Hey,

Ik heb een xml-reader gemaakt. Deze laat 1 nieuwsbericht zien en er zijn knoppen om 'oudere' berichten te kunnen bekijken. Dit werkt goed, alleen zit er een kleine bug in. Als je te vaak en te snel op de knoppen drukt loopt hij niet meer goed.

Deze as heb ik op de knoppen:

scrollUp.onRelease = function() {
mc = alt_Root.nieuwsHolder;
//this.enabled = false;
//alt_Root.nieuwsFrame.scrollDown.enabled = false;
if (_global.nieuwsKlik>0) {
var nieuwssTween:Tween = new Tween(mc, "_x", Strong.easeOut, mc._x, mc._x+260, 0.5, true);
_global.nieuwsKlik -= 1;
nieuwssTween.onMotionFinished = function() {
alt_Root.scrollUp.enabled = true;
alt_Root.scrollDown.enabled = true;
};
}
};

Hier (http://preview.supersteil.nl/xml_reader/nieuws.swf) een preview

Weet iemand hoe ik dit kan fixen?

Thanks!

Jan
%Europe/Berlin %678 %2007, 16:17
Je baseert je eindpositie in de tween op de huidige positie en telt daar wat bij.
Als je dus in de helft van een tween op de button klikt komt het niet meer uit.

Als de verschuif afstand altijd even groot is (wat me het geval lijkt) dan kan je deze positie iets meer 'fixed' maken door bij het klikken een counter te verhogen en dan als eindpositie: counter*260 te kiezen.
Dus dan maakt het niet uit waar je tween begint, hij eindigt altijd op een veelvoud van 260.

Jan

tbsites
%Europe/Berlin %679 %2007, 16:17
heb je niet nogmeer code's

Wilder
%Europe/Berlin %579 %2007, 13:54
Bedankt, het werkt wel met die counter maar alleen naar rechts. Op het moment dat ik weer terug wil dan gaat het fout. Waarschijnlijk moet ik iets aanpassen in mijn as, maar ik kom er niet helemaal uit. Ik dacht gewoon de min in plus veranderen maar zo simpel is het niet.

scrollRight.onRelease = function() {
mc = alt_Root.nieuwsHolder;
if (_global.nieuwsKlik<_global.lengte-1) {
_global.nieuwsKlik += 1;
var nieuwsTween:Tween = new Tween(mc, "_x", Strong.easeOut, mc._x, -(_global.nieuwsKlik*260)+25, 0.5, true);
};
};


scrollLeft.onRelease = function() {
mc = alt_Root.nieuwsHolder;
if (_global.nieuwsKlik>0) {
_global.nieuwsKlik -= 1;
var nieuwssTween:Tween = new Tween(mc, "_x", Strong.easeOut, mc._x, +(_global.nieuwsKlik*260)-25, 0.5, true);
};
};

De scrollRight functie werkt dus wel maar de scrollLeft niet :(

hier (http://preview.supersteil.nl/xml_reader/nieuws.swf) heb ik weer een voorbeeldje.

Iemand een idee hoe ik dit kan oplossen?

Thanks!

Jan
%Europe/Berlin %592 %2007, 14:13
Tja, 't is weer CS3 dus dat kan ik niet openen.
Daarenboven zijn al die globals niet echt nodig volgens mij.
Als je deze eerst definieert kan je die achteraf gewoon gebruiken.
var nieuwsKlik:Number=0;
var lengte:Number=een waarde;
scrollRight.onRelease = function() {
mc = alt_Root.nieuwsHolder;
if (nieuwsKlik<lengte-1) {
nieuwsKlik += 1;
var nieuwsTween:Tween = new Tween(mc, "_x", Strong.easeOut, mc._x, -(nieuwsKlik*260)+25, 0.5, true);
};
};

Wilder
%Europe/Berlin %610 %2007, 14:39
Wat bedoel je precies met weer CS3? Het is een flash 8 (actionscript 2) bestand, heb 't wel in CS3 gemaakt maar publish settings op flash 8. Moet geen probleem zijn toch?

Heb globals weggehaald en werkt gewoon goed. Enig idee hoe ik die scrollLeft kan fixen? De berichten worden uit XML gehaald:

stop();
system.useCodePage = true;
import mx.transitions.Tween;
import mx.transitions.easing.*;

var alt_Root = this;
var nieuwsKlik:Number=0;

var X:XML = new XML();
X.ignoreWhite = true;
X.onLoad = function(ok) {
if (ok) {
var nodes = X.firstChild.childNodes;
lengte = nodes.length;
for (var i = 0; i<nodes.length; i++) {
mc = alt_Root.nieuwsHolder.attachMovie("nieuwsItem", "item"+i, i);
mc._y = 5;
mc._x = (i*260)+5;
mc.nieuwsTitel.htmlText = nodes[i].childNodes[0];
mc.nieuwsDatum.htmlText = nodes[i].childNodes[1];
mc.nieuwsBericht.htmlText = nodes[i].childNodes[2];
fotoLoader.loadClip(nodes[i].attributes.foto,mc.fotoHolder);
}
} else {
trace("XML loading error!");
}
};
X.load("xml/news.xml");

var fotoLoader:MovieClipLoader = new MovieClipLoader();
var listen:Object = new Object();

listen.onLoadStart = function() {
//trace("start");
};


scrollRight.onRollOver = function() {
this.gotoAndPlay ("over");
};
scrollRight.onRollOut = function() {
this.gotoAndPlay ("out");
};

scrollRight.onRelease = function() {
mc = alt_Root.nieuwsHolder;
if (nieuwsKlik<lengte-1) {
nieuwsKlik += 1;
var nieuwsTween:Tween = new Tween(mc, "_x", Strong.easeOut, mc._x, -(nieuwsKlik*260)+25, 0.5, true);
};
};


scrollLeft.onRollOver = function() {
this.gotoAndPlay ("over");
};
scrollLeft.onRollOut = function() {
this.gotoAndPlay ("out");
};
scrollLeft.onRelease = function() {
mc = alt_Root.nieuwsHolder;
if (nieuwsKlik>0) {
nieuwsKlik -= 1;
var nieuwssTween:Tween = new Tween(mc, "_x", Strong.easeOut, mc._x, +(nieuwsKlik*260)-25, 0.5, true);
};
};

Jan
%Europe/Berlin %615 %2007, 14:46
Wat bedoel je precies met weer CS3? Het is een flash 8 (actionscript 2) bestand, heb 't wel in CS3 gemaakt maar publish settings op flash 8. Moet geen probleem zijn toch?
Ah, ok. Ik zag CS3 staan in je profiel en ik heb al zo dikwijls 'unexpected file format' hier op mijn scherm gezien dat ik zelfs niet meer de moeite neem om dan een fla te (proberen) openen. :X
Ik zal even kijken. edit: hmmm da's een .swf, daar kan ik niet veel in kijken. :)
Jan

Wilder
%Europe/Berlin %625 %2007, 15:00
Oops hier dan de FLA (http://preview.supersteil.nl/xml_reader/nieuws.zip) ;)

Jan
%Europe/Berlin %643 %2007, 15:26
var lengte:Number=een waarde;
var nieuwsKlikR:Number=0;
var nieuwsKlikL:Number=0;
var positie:Number=0;
var afstand:Number=260;
scrollRight.onRelease = function() {
mc = alt_Root.nieuwsHolder;
if (nieuwsKlikR<lengte-1) {
nieuwsKlikR += 1;
nieuwsKlikL -= 1;
positie=nieuwsKlikR*(-afstand);
trace(positie);
//var nieuwsTween:Tween = new Tween(mc, "_x", Strong.easeOut, mc._x, positie+25, 0.5, true);
};
};


scrollLeft.onRelease = function() {
mc = alt_Root.nieuwsHolder;
if (nieuwsKlikL>0) {
nieuwsKlikR -= 1;
nieuwsKlikL += 1;
positie=nieuwsKlikL*afstand;
trace(positie);
//var nieuwsTween:Tween = new Tween(mc, "_x", Strong.easeOut, mc._x, positie-25, 0.5, true);
};
};

Beetje uit de losse pols maar met zoiets zou je er ongeveer moeten komen.
edit:zaten hier en daar wat typfoutjes in, nu aangepast.

Jan

Wilder
%Europe/Berlin %666 %2007, 16:00
Hij werkt! super bedankt.

William

Jan
%Europe/Berlin %675 %2007, 16:13
Hehe, geweldig. Graag gedaan. :)
Jan