从文档类中的方法定位sprite - null对象引用

时间:2011-02-09 23:24:56

标签: class actionscript document targeting

我正在尝试完全在文档类中编写Flash应用程序。我正在使用带有触摸屏的GestureWorks。当用户实际按下按钮时,它会调用一种方法,该方法应隐藏特定图形,而不是他们触摸的图形。

基本上我需要一种方法来使用“e.target”之外的方法来引用屏幕上的图形。

我收到此错误:错误#1009:无法访问空对象引用的属性或方法。

            //This code works 
            private function photo1SpriteFlickHandler(e:GestureEvent):void {
                    var openTween:Tween = new Tween(e.target, "x", Strong.easeOut, 232, 970, 5, true);
            }

            //this code gives me a null object reference 

            private function photo1SpriteFlickHandler(e:GestureEvent):void {
                    var openTween:Tween = new Tween(photo1Sprite, "x", Strong.easeOut, 232, 970, 5, true);
            }

            //photo1Sprite has already been programatically added to the screen as so:
            var photo1Sprite = new TouchSprite();
                    var photo1Loader=new Loader();
                    photo1Loader.load(new URLRequest("media/photos1/photo1.jpg"));
                    photo1Loader.contentLoaderInfo.addEventListener(Event.COMPLETE,loaderComplete);

                    photo1Sprite.x = 232;
                    photo1Sprite.y = 538;
                    photo1Sprite.scaleX = .3;
                    photo1Sprite.scaleY = .3;
                    photo1Sprite.blobContainerEnabled = true;
                    photo1Sprite.addEventListener(TouchEvent.TOUCH_DOWN, startDrag_Press);
                    photo1Sprite.addEventListener(TouchEvent.TOUCH_UP, stopDrag_Release);

                    photo1Sprite.addChild(photo1Loader);

                addChild(photo1Sprite);

当photo1Sprite上发生按钮点击时,它可以将photo1Sprite作为'e.target'访问。

当点击一个按钮(不是photo1Sprite)并让它影响photo1Sprite时会出现问题。

所以如果我的方法直接使用'e.target'附加到我的方法,我可以使photo1Sprite做出反应,但如果我试图从屏幕上另一个元素调用的方法调用它,则不能。

1 个答案:

答案 0 :(得分:0)

我不确定Tween类构造函数对第一个参数的期望。它是Sprite实例还是Sprite实例的名称?在任何情况下都要确保 - 在photo1SpriteFlickHandler的上下文中 - photo1Sprite是1)定义的! 2)指正确的事情。