首页 > 解决方案 > TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 ColoringScreen/freezeColor()

问题描述

嗨,我再次询问我在这里做错了什么,代码工作正常,但是当我测试播放它时,输出消息有:

TypeError: Error #1009: Cannot access a property or method of a null object reference.
    at ColoringScreen/freezeColor()

这是代码

public class ColoringScreen extends MovieClip {
        
        var bitmapDt:BitmapData = new BitmapData (176.8, 176.8);
        var ct:ColorTransform = new ColorTransform();
        var hexaColor:*;
        var myObject:Object;
        
        public function ColoringScreen() {
            // constructor code
            
            chBackBtn.addEventListener(MouseEvent.CLICK, backtoMainScreen)
            
            bitmapDt.draw(ColorPickerMc.spectrum);
            ColorPickerMc.spectrum.addEventListener(MouseEvent.CLICK, freezeColor);
            
            addEvents(oneMc, twoMc, threeMc, fourMc, fiveMc, sixMc, sevenMc, eightMc, nineMc, tenMc, elevenMc, twelveMc, thirteenMc, fourteenMc, fifteenMc, sixteenMc, seventeenMc, eighteenMc, ninteenMc, twentyMc, twentyoneMc, twentytwoMc, twentythreeMc, twentyfourMc, twentyfiveMc);
        }
        private function addEvents(...objects){
            for(var i:Number=0; i<objects.lenght; i++){
                objects[i].addEventListener(MouseEvent.CLICK, selectObject);
            }
        }
        private function selectObject(e:MouseEvent){
            myObject = e.target;
            ColorPickerMc.spectrum.addEventListener(MouseEvent.MOUSE_MOVE, updateColor);
        }
        private function backtoMainScreen(e:MouseEvent) {
            MovieClip(stage.getChildAt(0)).gotoAndStop("Intro");
        }
        
        private function updateColor(e:MouseEvent){
            hexaColor = "0x"+bitmapDt.getPixel(ColorPickerMc.spectrum.mouseX, ColorPickerMc.spectrum.mouseY).toString(16);
            
            ct.color = hexaColor;
            myObject.transform.colorTransform = ct;

        }
        
        private function freezeColor(e:MouseEvent){
            myObject.transform.colorTransform = ct;
            ColorPickerMc.spectrum.removeEventListener(MouseEvent.MOUSE_MOVE, updateColor);
        }
}

我知道它已经被问了一百万次,但我仍然在摸索我缺少什么属性或方法或什么实例,因为我检查了它,一切似乎都到位了我命名了我的实例和电影剪辑符号在同一个关键帧中为什么我的 freezeColor 不再工作了?任何帮助将非常感激

标签: actionscript-3colorsactionscript

解决方案


推荐阅读