Scrollen in App + Links [AIR 2]
| Beiträge: 1 Registriert: Nov 2013
| 01.11.2013, 23:15
Hallo zusammen,
ich versuche gerade eine App zu entwickeln, allerdings bekomme ich es nicht hin, dass man den Inhalt scrollen kann, aber auch unterschiedliche Links im Inhaltsbereich benutzen kann. Um Scrollen zu können, habe ich nämlich bisher nur eine Lösung gefunden, bei der man den gesamten Bereich, der gescrollt werden soll, in einen Movieclip konvertieren muss. Dadurch kann ich allerdings den Inhaltsbereich nicht unterteilen, sodass der User auf unterschiedliche Links klicken kann. Ich möchte zum Beispiel ein Inhaltsverzeichnis erstellen, welcher gescrollt werden kann, aber bei dem man gleichzeitig auch auf die unterschiedlichen klicken kann und dorthin verlinkt wird.
Bisher nutze ich folgenden Code:
ActionScript:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | var speed:Number;
var speedArray:Array;
var prevY:Number;
var DRAG:Number = 20;
var HEIGHT:int = 550;
scroll_mc.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
function onDown(evt:MouseEvent):void {
speedArray = new Array(0,0,0,0,0,0,0,0,0,0);
speed = 0;
prevY = this.mouseY;
stage.addEventListener(Event.ENTER_FRAME, onDownEnter);
stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
}
function onDownEnter(evt:Event):void {
var sp = this.mouseY - prevY;
scroll_mc.y += sp;
if (scroll_mc.y < (HEIGHT-scroll_mc.height)) {
scroll_mc.y = (HEIGHT-scroll_mc.height);
}
else if (scroll_mc.y > 0) {
scroll_mc.y = 0;
}
speedArray.push(sp);
speedArray.shift();
prevY = this.mouseY;
}
function onUp(evt:MouseEvent):void {
stage.removeEventListener(Event.ENTER_FRAME, onDownEnter);
stage.removeEventListener(MouseEvent.MOUSE_UP, onUp);
speed = 0;
for (var i:int = 0; i<speedArray.length; i++) {
speed += speedArray[i];
}
speed /= speedArray.length;
addEventListener(Event.ENTER_FRAME, onEnter);
}
function onEnter(evt:Event):void {
if (Math.abs(speed) < .5) {
speed = 0;
}
if (speed < 0) {
if (scroll_mc.y > (HEIGHT-scroll_mc.height) - speed) {
scroll_mc.y += speed;
speed -= speed/DRAG;
}
else {
scroll_mc.y = (HEIGHT-scroll_mc.height);
speed = 0;
}
}
else {
if (scroll_mc.y < 0-speed) {
scroll_mc.y += speed;
speed -= speed/DRAG;
}
else {
scroll_mc.y = 0;
speed = 0;
}
}
}
|
Ich bedanke mich jetzt schon mal ganz herzlich für eure Hilfe! | | | Beiträge: 1004 Registriert: Jul 2008
| 24.03.2014, 14:27
|
|