PDA

Volledige versie bekijken : scrollen wil niet


LarsG
%Europe/Berlin %682 %2006, 17:22
Ik probeer een scrollbar aan te maken door vanuit het components panel in Flash 8 Professional de uiscrollbar naar mijn dynamisch tekstveld te slepen. Zodra de muisknop los laat verschijnt er een witte rechthoekige balk die niet in de buurt komt van een scrollbar.

Ik heb geen idee wat er fout gaat, jullie wel?

eagle
%Europe/Berlin %754 %2006, 19:05
Je moet het aan de zijkant van het textfield bevestigen. Als dat niet lukt kan je natuurlijk via actionscipt de scrollbar toevoegen.

VVP
%Europe/Berlin %777 %2006, 19:39
http://www.flashfocus.nl/forum/showthread.php?t=6338
kijk daar eerst even :)

LarsG
%Europe/Berlin %800 %2006, 20:13
Had ik al gedaan, ik lees daar toch echt:
From the Components panel, drag and drop the Scrollbar Component on top of the text box you just created. The scrollbar will automatically resize and snap to your text box:

Maar als ik dit doe wordt er niks automatisch gedaan en blijft er gewoon een wit rechthoekig balkje staan..

VVP
%Europe/Berlin %846 %2006, 21:19
voorbeeld in bijlagen:
mayby heb je er wat aan succes!
btw, met deze scroller kun je er links en selfs plaatjes in zetten.

VVP
%Europe/Berlin %982 %2006, 00:34
zou iemand toevallig weten hoe je ook nog met muis scroll up and down kan scrollen? (A)

theFlashWizard
%Europe/Berlin %006 %2006, 01:09
ik heb n voorbeeldje waarbij ik een mc roteer met de scroller :P
De truc zit em in het onMouseWheel event van de Mouse class.

VVP
%Europe/Berlin %008 %2006, 01:11
ik heb n voorbeeldje waarbij ik een mc roteer met de scroller :P
De truc zit em in het onMouseWheel event van de Mouse class.

tanx tFW !
ik zal even vogelen! :P

theFlashWizard
%Europe/Berlin %009 %2006, 01:14
was je der op aant wachten ofzo :D
graag gedaan ;)

VVP
%Europe/Berlin %020 %2006, 01:29
scrolling = function () {
var scrollHeight:Number = scrollTrack._height;
var contentHeight:Number = contentMain._height;
var scrollFaceHeight:Number = scrollFace._height;
var maskHeight:Number = maskedView._height;
var initPosition:Number = scrollFace._y=scrollTrack._y;
var initContentPos:Number = contentMain._y;
var finalContentPos:Number = maskHeight-contentHeight+initContentPos;
var left:Number = scrollTrack._x;
var top:Number = scrollTrack._y;
var right:Number = scrollTrack._x;
var bottom:Number = scrollTrack._height-scrollFaceHeight+scrollTrack._y;
var dy:Number = 0;
var speed:Number = 10;
var moveVal:Number = (contentHeight-maskHeight)/(scrollHeight-scrollFaceHeight);
scrollFace.onPress = function() {
var currPos:Number = this._y;
startDrag(this, false, left, top, right, bottom);
this.onMouseMove = function() {
dy = Math.abs(initPosition-this._y);
contentMain._y = Math.round(dy*-1*moveVal+initContentPos);
speed = 5;
var mouseListener:Object = new Object();
mouseListener.onMouseWheel = function(delta) {
scrollFace.scroll += delta*speed;
};
};
};
scrollFace.onMouseUp = function() {
stopDrag();
delete this.onMouseMove;
};
Mouse.addListener(mouseListener);
btnUp.onPress = function() {
this.onEnterFrame = function() {
if (contentMain._y+speed<maskedView._y) {
if (scrollFace._y<=top) {
scrollFace._y = top;
} else {
scrollFace._y -= speed/moveVal;
}
contentMain._y += speed;
} else {
scrollFace._y = top;
contentMain._y = maskedView._y;
delete this.onEnterFrame;
}
};
};
if (contentHeight<maskHeight) {
scrollFace._visible = false;
btnUp.enabled = false;
btnDown.enabled = false;
} else {
scrollFace._visible = true;
btnUp.enabled = true;
btnDown.enabled = true;
}
};
scrolling();


ik snapte de code van jou niet helemaal tFW ;) maar ik heb wat geprobeert (copy paste..) maar dit werkt niet.. kun je mij vertellen waar ik op moet letten en of ik in de beurt kom.. (niet het gehelen script aub ;) ik wil leren 8))

theFlashWizard
%Europe/Berlin %091 %2006, 03:11
owke, dan zal ik het proberen uit te leggen :)
de Mouse class verstuurt het onMouseWheel event. Om dit te kunnen ontvangen moet je aangeven dat je er naar wilt luisteren. dat doe je met de addListener() functie:
Mouse.addListener(mouseListener);
tussen de haakjes moet je een listener invullen. Dit moet een object zijn, meestal maakt men daarvoor speciaal een nieuw object aan:
var mouseListener:Object = new Object();

Om nu wat te laten uitvoeren door het object bij mouseWheel moet het object een method krijgen met dezelfde naam als het event.
mouseListener.onMouseWheel = function(){

}
Wanneer je dan de scrolt met dat wieltje merkt dat object dat en voert hij die functie uit.
Via de 1ste parameter krijgt deze functie mee hoever je scrolt.
mouseListener.onMouseWheel = function(delta){

}
Wanneer je bij je muis instellingen hebt ingestelt dat je bijv 3 regels per scroll scrollt dan geeft hij 3 of -3 aan, naar gelang welke richting je scrolt.
Probeer maar eens:
mouseListener.onMouseWheel = function(delta){
trace(delta)
}
Nu kan je vervolgens wat met die waarde doen.

Net als normale functies en variabelen hoef je dit allemaal maar 1x te beschrijven. Niet in een andere functie zetten zoals onMouseMove dus.

VVP
%Europe/Berlin %769 %2006, 19:27
okej bedankt tFW!