PDA

Volledige versie bekijken : Tekst scrollen op een rare manier..


APB
%Europe/Berlin %409 %2005, 10:49
Ik wil nu met mijn eend scrollbar... een tekst laten scrollen... ik knal er een mask overheen dus de grootte van het tekstveld maakt niet uit... maar nu komt het, ik wil dat als het veld op bijvoorbeeld "_y = 100" komt dat hij dan niet meer verder scrollt of iets in die richting...

mijn frame actions:
myLV = new LoadVars();
myLV.load("data.txt");
myLV.onLoad = function(success) {
if (success) {
//trace(this.inhoud);
tekstVakje.text = this.inhoud;
//inhoud is de naam van de variable in het textbestandje
}
};
if (_root.tekstVakje._y == 100) { //om dit gedeelte gaat het dus
scrollingDown = "no";
} else if (_root.tekstVakje._y == 0) {
scrollingUp = "no";
} else {
scrollingUp = "yes";
scrollingDown = "yes"
}
trace(tekstVakje._y);
trace(scrollingUp);// hij geeft hier wel keurig "yes" aan.
trace(scrollingDown)// hij geeft hier wel keurig "yes" aan.

actions in de scroll eend.
onClipEvent (load) {

this.speed = 70;
// create an array of all MC positions along the tween
this.generatePosArray = function() {
this.pos = new Array();
var curr = this._currentframe;
var L = this._totalFrames;
for (var i = 0; i<L; i++) {
this.gotoAndStop(i+1);
this.pos[i] = {x:this.dragClip._x, y:this.dragClip._y};
}
this.gotoAndStop(curr);
};
// calculate the square of distance from MC to mouse
// (quicker not to take square root)
this.getMouseDist2 = function(position, mousePos) {
var dx = position.x-mousePos.x;
var dy = position.y-mousePos.y;
return dx*dx+dy*dy;
};
// calculate frame in the given range in which
// the MC is closest to the mouse
nearestFrame = function (mousePos) {
// get local references for extra speed
var currFrame = this._currentframe;
var pos = this.pos;
// find out which direction along the curve takes the MC closer to the mouse position
if (this.getMouseDist2(pos[currFrame+1], mousePos)<this.getMouseDist2(pos[currFrame], mousePos)) {
var dir = 1;
// forwards
if(scrollingUp = "yes"){ //ook om dit gedeelte gaat het
_root.tekstVakje._y -= 10;
}
} else if (this.getMouseDist2(pos[currFrame-1], mousePos)<this.getMouseDist2(pos[currFrame], mousePos)) {
var dir = -1;
// backwards
if(scrollingDown = "yes"){ //ook om dit gedeelte gaat het
_root.tekstVakje._y += 10;
}
} else {
return currFrame;
// stay in the same position
}
var lastFrame = currFrame+this.speed*dir;
for (var frame = currFrame; frame != lastFrame; frame += dir) {
if (this.getMouseDist2(pos[frame], mousePos)<this.getMouseDist2(pos[frame+dir], mousePos)) {
return frame;
// return minimum
}
}
// didn't find a minimum, so return closest within the speed limit
return frame;
};
// set position of MC to nearest to mouse
this.setNewPos = function() {
if (this.dragClip.drag) {
var mousePos = {x:this._xmouse, y:this._ymouse};
gotoAndStop(this.nearestFrame(mousePos));
}
};
// calculate all positions of MC before we start
this.generatePosArray();
}
onClipEvent (enterFrame) {
this.setNewPos();
}

wal_toor
%Europe/Berlin %454 %2005, 11:54
Hellow abp,

Ik kan met jouw scripts geen werkend testmodel maken, zou je anders de fla kunnen posten?

greetz,
walter

APB
%Europe/Berlin %460 %2005, 12:03
Da geloof ik gerust... de scrollbar is ook op een hele vreemde manier gemaakt.

Edit: ik heb de "goede" fla erbij gedaan... de andere versie was niet zover (en vast) als hij nu is

theFlashWizard
%Europe/Berlin %462 %2005, 12:05
mshn kun je et hiermee..

APB
%Europe/Berlin %503 %2005, 13:05
nope...

theFlashWizard
%Europe/Berlin %510 %2005, 13:15
why not ? want een nee zegt heel weinig..

APB
%Europe/Berlin %513 %2005, 13:19
ik werk dus met een scroll-bar en jij hebt het met buttons gedaan. in de actions staat onPress dus dat haalt eigenlijk vrij weinig uit. want je hebt maar 1 grote button waar je op kunt klikken. en ik heb wel een beetje zitten kijken en proberen waar ik de actions om het vlak te scrollen neer moest zetten en hoe maar het lukte niet echt..

theFlashWizard
%Europe/Berlin %713 %2005, 18:07
ja maar het max min systeem heb je wel zo nodig.. dat is waar je hier om vraagt toch? en laat is zien hoe je het gebruikt dan.. of wil gebruiken.. dan kan ik je vanaf daar verder helpen..

APB
%Europe/Berlin %745 %2005, 18:53
ik zal even de actions van de scrollbar posten.
ik heb het tussen het gedeelte gezet (waar hij verwijst naar de function) waarmee je voorwaarts, of achterwaart scrollt.
onClipEvent (enterFrame) {
function goUp() {
posY = posY+speed;
if (posY>0) {
posY = 0;
}
// end if
_root.holder.vlak._y = posY;
}
// End of the function
function goDown() {
posY = posY-speed;
if (posY<max) {
posY = max;
}
// end if
_root.holder.vlak._y = posY;
}
// End of the function
//tot hier

}onClipEvent (load) {
this.speed = 70;
// create an array of all MC positions along the tween
this.generatePosArray = function() {
this.pos = new Array();
var curr = this._currentframe;
var L = this._totalFrames;
for (var i = 0; i<L; i++) {
this.gotoAndStop(i+1);
this.pos[i] = {x:this.dragClip._x, y:this.dragClip._y};
}
this.gotoAndStop(curr);
};
// calculate the square of distance from MC to mouse
// (quicker not to take square root)
this.getMouseDist2 = function(position, mousePos) {
var dx = position.x-mousePos.x;
var dy = position.y-mousePos.y;
return dx*dx+dy*dy;
};
// calculate frame in the given range in which
// the MC is closest to the mouse
nearestFrame = function (mousePos) {
// get local references for extra speed
var currFrame = this._currentframe;
var pos = this.pos;
// find out which direction along the curve takes the MC closer to the mouse position
if (this.getMouseDist2(pos[currFrame+1], mousePos)<this.getMouseDist2(pos[currFrame], mousePos)) {
var dir = 1;
// forwards
// het scrollen omhoog
this.onPress = function() {
_root.holder.onEnterFrame = goUp;
};
this.onRelease = this.onReleaseOutside=function () { delete _root.holder["onEnterFrame"];};
// einde scrollen omhoog
} else if (this.getMouseDist2(pos[currFrame-1], mousePos)<this.getMouseDist2(pos[currFrame], mousePos)) {
var dir = -1;
// backwards
// scrollen naar beneden
this.onPress = function() {
_root.holder.onEnterFrame = goDown;
};
this.onRelease = this.onReleaseOutside=function () { delete _root.holder["onEnterFrame"];};
// eind scrollen naar beneden
} else {
return currFrame;
// stay in the same position
}
var lastFrame = currFrame+this.speed*dir;
for (var frame = currFrame; frame != lastFrame; frame += dir) {
if (this.getMouseDist2(pos[frame], mousePos)<this.getMouseDist2(pos[frame+dir], mousePos)) {
return frame;
// return minimum
}
}
// didn't find a minimum, so return closest within the speed limit
return frame;
};
// set position of MC to nearest to mouse
this.setNewPos = function() {
if (this.dragClip.drag) {
var mousePos = {x:this._xmouse, y:this._ymouse};
gotoAndStop(this.nearestFrame(mousePos));
}
};
// calculate all positions of MC before we start
this.generatePosArray();
}
onClipEvent (enterFrame) {
this.setNewPos();
}

Dit zijn wel de actions van de scrollbar die ik bij het bestandje van The Flashwizard heb gebruikt...

wal_toor
%Europe/Berlin %359 %2005, 09:36
Heej APB,

sorry dat ik nog verder niet heb gereageerd. Ik had even wat weinig tijd, ik heb wel een idee waar het zit, maar ik moet dit nog even checken.

grtz,
walter