开发者

targeting sprites from a method in the document class - null object reference

开发者 https://www.devze.com 2023-02-09 08:50 出处:网络
I am trying to code a flash app entirely in the document class.I am using GestureWorks with a touch screen.When a user essentially presses a button it calls a method that should hide a specific graphi

I am trying to code a flash app entirely in the document class. I am using GestureWorks with a touch screen. When a user essentially presses a button it calls a method that should hide a specific graphic but not the graphic they touched.

Essentially I need a way to refer to a graphic on the screen using a method besides 'e.target'.

I am receiving this error: Error #1009: Cannot access a property or method of a null object reference.

            //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);

It can access photo1Sprite as 'e.target' when the button click happens on the photo1Sprite.

Th开发者_运维知识库e problem happens when to click one button (not photo1Sprite) and have it effect photo1Sprite.

So I can make photo1Sprite react if my method is attached to it directly using 'e.target' but not if I am trying to call it from a method that was called from another element on the screen.


I'm not sure what the Tween class constructor expects as it first argument. Is it a Sprite instance or is it the name of a Sprite instance? In any case make sure that - in the context of photo1SpriteFlickHandler - photo1Sprite is 1) defined! and 2) refers to the correct thing.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号