Flashhilfe.de - Flash Community

Scrollen und Tippen in iOS [Flash CS5]

 


AntwortenRegistrieren Seite1  

pat_and_nobody#1
Benutzerbild von pat_and_nobody
Beiträge: 478
Registriert: Aug 2007

06.10.2011, 07:55

Also ich verwende folgendes AS zu Scrollen eines MCs. Das funktioniert sehr gut, auch von der Perfomance her besser als andere AS. Das Problem ist, das sich in den MC der sich bewegen lässt Schaltflächen laden und ich diese beim Scrollen drücke. Die Schaltflächen löse ich mit einem MOUSE.UP aus und das Scrollskript wie gesagt hier:

Gibts für den Fall eine Allround-Lösung?

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
dragarea.addEventListener(MouseEvent.MOUSE_DOWN, mousedown);
dragarea.addEventListener(MouseEvent.MOUSE_UP, mouseup);
addEventListener(Event.ENTER_FRAME, scroller);
var isDragOK = true;
var dragging:Boolean = false;
var isMouseover = false;

function mousedown(e:MouseEvent):void
{
     if (isDragOK)
     {
        dragging = true;
        prevY = mcRect.y;
        mcRect.startDrag(false, new Rectangle(0, dragarea.height - mcRect.height, 0, mcRect.height - dragarea.height));
 
     }
}

function mouseup(e:Event):void
{
     dragging = false;
     mcRect.stopDrag();
}

var friction = 1;
var vel = 0;
var prevVel = 0;
var prevY = mcRect.y;

function scroller(e:Event)
{
     if (dragging)
     {
        prevVel = vel;
        vel = (mcRect.y - prevY)/3;
        prevY = mcRect.y;
     }
     else
     {
        prevVel = vel;
        if (vel > 0)
        {
           vel -=  friction;
           vel = Math.max(0,vel);
        }
        else if (vel < 0)
        {
           vel +=  friction;
           vel = Math.min(vel,0);
        }
        mcRect.y +=  vel;
        mcRect.y = Math.min(mcRect.y,0);
        mcRect.y = Math.max(dragarea.height - mcRect.height,mcRect.y);
     }
}
Schlagwörter: ios, Scroll, Tippen
Werbung
Beiträge: 0
Registriert: Feb 2016


vindel#2
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

06.10.2011, 10:27

Hallo,

wird das Event nicht durchgereicht?
Es gibt die API für ein "TouchEvent" also einen Klick auf das Display:
flash.events.TouchEvent
Und dort die Methode TOUCH_TAP welche mit einem Klick vergleichbar ist. Ein TouchEvent kannst du mit einem mouseevent "koppeln", was wiederrum mit einem Gesten oder Multitouch untereinander nicht möglich ist.
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
pat_and_nobody#3
Benutzerbild von pat_and_nobody
Beiträge: 478
Registriert: Aug 2007

Themenautor/in

06.10.2011, 11:44

Also über dem Clip in den die Elemente zum Klicken geladen werden, liegt die "dragarea". Draggen funktioniert, aber die Clips dahinter sind nicht klickbar.

Würde es klappen, wenn ich den Elemente anstatt MOUSE.UP ein TOUCH.TAP gebe?
vindel#4
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

06.10.2011, 15:58

warum legst du dann nciht deine Dragarea hinter die Elemente?
Solange kein Button da ist, kann ja "durch" ein MC geklickt werden.
Also so (von der untersten ebene zur obersten)
- Drag-Bereich
- Container
- - Content (Text, button etc).
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
Werbung
Beiträge: 0
Registriert: Feb 2016


pat_and_nobody#5
Benutzerbild von pat_and_nobody
Beiträge: 478
Registriert: Aug 2007

Themenautor/in

06.10.2011, 16:34

Dann kann ich nicht mehr draggen, weil ja die Klickbaren Movieclips darüber liegen
Geändert von pat_and_nobody am 06.10.11 um 16:34 Uhr
vindel#6
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

07.10.2011, 10:12

Ok, dann schmeiß deinen MouseListener weg und mach alles mit dem Touchevent.
Per Touch_Move bekommst du die Bewegung (ich würds bühnenbezogen erstellen) und mit Touch_out oder Tpuch Tab (musst du mal sehen weelches besser funktioniert) deine Klick-Option für die MC's.
Ich hoffe das klappt dann so!
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
pat_and_nobody#7
Benutzerbild von pat_and_nobody
Beiträge: 478
Registriert: Aug 2007

Themenautor/in

17.11.2011, 09:36

Hallo Danke mal für deine Antwort:

Ich hab den Scroller jetzt so realisiert. Der scrollt auch perfekt. Nur sobald ich vom Scrollen loslasse wir der Button ausgelöst. Sollte ja nicht. Er sollte nur wenn ich drauf tippe und nicht scrolle:

Button verwendet TOUCH_TAP

Kannst du mir eventuell helfen? Das wäre sehr nett.

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
import com.*;
import flash.events.TouchEvent;
import flash.geom.Point;

Multitouch.inputMode = MultitouchInputMode.GESTURE;


if (Multitouch.supportsTouchEvents)
{
     Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
     nitems2i.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
     nitems2i.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
     nitems2i.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
}


var _mouseDownPoint:Point;
var _mouseDownY:int;
function onTouchBegin(e:TouchEvent):void
{
     _mouseDownPoint = new Point(e.stageX,e.stageY);
     _mouseDownY = nitems2i.y;
}


function onTouchMove(e:TouchEvent):void
{
 
     var point:Point = new Point(e.stageX,e.stageY);
     nitems2i.y = _mouseDownY + (point.y - _mouseDownPoint.y);
 
}

function onTouchEnd(e:TouchEvent):void
{
}
vindel#8
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

19.11.2011, 10:50

hmm.. schwer zu sagen, kannst du zu deinem Aufbau etwas genaueres sagen? wo Liegt dein Button der ausgelöst wird? Oder am besten die Datei senden..
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}
pat_and_nobody#9
Benutzerbild von pat_and_nobody
Beiträge: 478
Registriert: Aug 2007

Themenautor/in

22.11.2011, 07:48

Ich bedanke mich erstmal für eure Hilfe!

Hab es jetzt anders gelöst:

Ich starte beim Scrollbeginn einfach eine Schleife. Solang gescrollt wird sind die Buttons nicht klickbar, Wenn ich nur auf einen Button tippe und nicht scrolle ist er klickbar.

So funktioniert es am Besten. Es gibt kein ruckeln und keine unabsichtlichen Klicks.

In nächster Zeit möchte ich einen App Dummy mit Standardfunktionen zum Download zur Verfügung stellen. Den kann man als Basis für Referenzapps (z.B) verwenden. Wem muss ich den senden, damit er überprüft und im Downloadbereich veröffentlicht wird.
vindel#10
Benutzerbild von vindelFlashhilfe.de Moderator
Beiträge: 3000
Wohnort: Köln
Registriert: Oct 2007

22.11.2011, 10:33

Das kannst du hier machen:
http://www.flashhilfe.de/download_hinzufuegen.html
public Weltformel(Problem){
      if (Problem gelöst) return Lösung;
      else Weltformel(kleiners Problem);
}

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2019 Sebastian Wichmann - Flashhilfe.de