我正在编写拖动机制的代码,它在启动拖动操作之前调用等待一小段时间。动作脚本3 - “错误#1006:startDrag不是函数”
但我在mouseDownHandler()函数中收到此错误消息。
TypeError: Error #1006: startDrag is not a function.
at Function/<anonymous>()[C:\blahblah_8216\bobo\flex2\src\ui\map\WorldMap.as:105]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at SetIntervalTimer/onTimer()
at flash.utils::Timer/_timerDispatch()
at flash.utils::Timer/tick()
我已经通过声明一个克隆可变的_me此
private var _me:WorldMap;
实例化它在构造
public function WorldMap(){
_me = this;
}
更换稍微改变的代码中发现的溶液这与_me在下面的代码工作没有错误
代码
public var dragInProgress:Boolean = false;
private var dragTime:int = 100;
private var dragInProgressInt:int;
private function mouseDownHandler(event:MouseEvent):void {
trace(this.name," mouse down ",getTimer());
dragInProgressInt = setTimeout(function():void
{
dragInProgress = true;
this.startDrag(false,new Rectangle(Config.GAME_SCREEN_WIDTH - Config.FULL_GAME_SCREEN_WIDTH,
Config.GAME_SCREEN_HEIGHT - Config.FULL_GAME_SCREEN_HEIGHT,
Config.FULL_GAME_SCREEN_WIDTH - Config.GAME_SCREEN_WIDTH,
Config.FULL_GAME_SCREEN_HEIGHT - Config.GAME_SCREEN_HEIGHT));
}, dragTime);
}
private function mouseUpHandler(event:MouseEvent):void {
clearTimeout(dragInProgressInt);
setTimeout(function():void
{
dragInProgress = false;
this.stopDrag();
}, 1);
谁能告诉我为什么发生这种情况?
如果您自己修复此问题,请发布答案并接受答案,以便其他人也意识到这一点。谢谢。 – pkyeck 2012-02-24 10:13:01