ошибка кнопки сохранения в проекте AS

Что не так со следующим кодом? Ошибка в saveButton.visible = false; discardButton.visible = ложь;

package
{
import flash.display.Sprite;
import flash.media.Camera;
import flash.media.Video;
import flash.display.BitmapData;
import flash.display.Bitmap;
import flash.events.MouseEvent;
import flash.net.FileReference;
import flash.utils.ByteArray;
import com.adobe.images.JPGEncoder;

public class caml extends Sprite
{
    private var camera:Camera = Camera.getCamera();
    private var video:Video = new Video();
    private var bmd:BitmapData = new BitmapData(320,240);
    private var bmp:Bitmap;
    private var fileReference:FileReference = new FileReference();
    private var byteArray:ByteArray;
    private var jpg:JPGEncoder = new JPGEncoder();

    public function caml()
    {
        saveButton.visible = false;
        discardButton.visible = false;

        saveButton.addEventListener(MouseEvent.MOUSE_UP, saveImage);
        discardButton.addEventListener(MouseEvent.MOUSE_UP, discard);
        capture.addEventListener(MouseEvent.MOUSE_UP, captureImage);

        if (camera != null)
        {
            video.smoothing = true;
            video.attachCamera(camera);
            video.x = 140;
            video.y = 40;
            addChild(video);
        }
        else
        {
            trace("No Camera Detected");
        }
    }
        private function captureImage(e:MouseEvent):void
        {
            bmd.draw(video);
            bmp = new Bitmap(bmd);
            bmp.x = 140;
            bmp.y = 40;
            addChild(bmp);

            capture.visible = false;
            saveButton.visible = true;
            discardButton.visible = true;
        }

        private function saveImage(e:MouseEvent):void
        {
            byteArray = jpg.encode(bmd);
            fileReference.save(byteArray, "Image.jpg");
            removeChild(bmp);
            saveButton.visible = false;
            discardButton.visible = false;
            capture.visible = true;
        }

        private function discard(e:MouseEvent):void
        {
            removeChild(bmp);
            saveButton.visible = false;
            discardButton.visible = false;
            capture.visible = true;
        }


}
}

person Rajeev    schedule 23.12.2010    source источник
comment
насколько я могу судить из этого кода (если он не частичный), тогда saveButton и discardButton будут нулевыми в тот момент, когда вы туда доберетесь. у вас нет инициализации этих переменных.   -  person KensoDev    schedule 23.12.2010
comment
Я думал о том же и как прикрепить кнопку к событию кнопки   -  person Rajeev    schedule 23.12.2010


Ответы (1)


Я предполагаю, что это корневой класс документа, и кнопки добавляются к этапу в файле флэш-памяти. В этом случае вам нужно добавить кнопки в свою декларацию в качестве общедоступных членов:

public var saveButton : Button;
public var discardButton : Button;

ОБНОВЛЕНИЕ

Я никогда не использую Flash-компоненты самостоятельно, но вы можете найти здесь ответ о том, как использовать Flash-компоненты в Flashbuilder: http://www.moock.org/blog/archives/000253.html http://www.ruttencutter.com/?p=20

person Mattias    schedule 23.12.2010
comment
И как вы импортируете кнопку. Это проект AS - person Rajeev; 23.12.2010
comment
импортировать fl.controls.Button; (перед компиляцией убедитесь, что компонент добавлен в вашу сцену или библиотеку ресурсов, иначе он не будет работать). - person Chunky Chunk; 24.12.2010