Hi,

hier eine kleine Klasse, mit der auf unkomplizierte Weise Doppelklicks auf MovieClips abgefragt werden können:

Class Quellcode:
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
class DoubleClickListener {
    private var _targetObj:MovieClip;
    private var _startTime:Number;
    private var _interval:Number;
    public var onMouseUp:Function;
    
    public function DoubleClickListener(targetObj:MovieClip, interval:Number) {
        _targetObj = targetObj;
        _interval = (interval != undefined)? interval : 0;
        _startTime = getTimer();
        this.onMouseUp = function() {
            if (_targetObj.hitTest(_root._xmouse, _root._ymouse, false)) {
                var intv:Number = getTimer() - _startTime;
                if (intv <= _interval) {
                    this.onDoubleClick();
                }
                _startTime = getTimer();
            }
        }
        Mouse.addListener(this);
    }
    
    public function get targetObj():MovieClip {
        return _targetObj;
    }
    
    public function set targetObj(obj:MovieClip):Void {
        _targetObj = obj;
    }
    
    public function get interval():Number {
        return _interval;
    }
    
    public function set interval(intv:Number):Void {
        _interval = intv;
        _startTime = getTimer();
    }
}

Aufruf z.B.:
Code :
1
2
3
4
5
var myListener = new DoubleClickListener(myMovieClip, 200);
 
myListener.onDoubleClick = function() {
    trace("Doppelklick auf " + myMovieClip);
}

Die Getter und Setter sind optional und nur sinnvoll, wenn Zielobjekt und Mindestintervall zur Laufzeit geändert werden müssen.

Achtung: Bei eingeladenen Filmen, die nicht auf den Koordinaten 0|0 liegen und mit _lockroot = true arbeiten, muss in der Klasse statt _root._xmouse und _root._ymouse u.U. _level0._xmouse und _level0._xmouse verwendet werden.

Gruß
.