2010-12-23 1 views
0

다음 코드에 무엇이 잘못 되었습니까? 에 오류가 있습니다. saveButton.visible = false; discardButton.visible = false;AS 프로젝트의 버튼 저장 오류가 발생했습니다.

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; 
     } 


} 
} 
+0

를 지금까지 (그렇지 않은 부분의 경우)이 코드에서 말할 수있는 다음 saveButton d discardButton은 당신이 도착할 때 null이 될 것입니다. 이러한 변수는 초기화되어 있지 않습니다. – KensoDev

+0

동일한 단추를 단추 이벤트에 연결하는 방법을 생각했습니다. – Rajeev

답변

0

아마도 이것은 문서 루트 클래스이며 버튼이 플래시 FLA 파일의 스테이지에 추가 된 것 같습니다. 이 경우 공용 멤버로 선언에 버튼을 추가해야

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

UPDATE

내가 플래시 구성 요소 나 자신을 사용하지 않습니다하지만 당신은 방법에 여기에 대한 답을 찾을 수 있습니다 Flashbuilder 플래시 구성 요소를 사용 http://www.moock.org/blog/archives/000253.html http://www.ruttencutter.com/?p=20

+0

그리고 Button.Its를 AS 프로젝트로 가져 오는 방법 – Rajeev

+0

내 대답이 업데이트되었습니다. – Mattias

+0

import fl.controls.Button; (컴파일하기 전에 구성 요소가 무대 또는 자산 라이브러리에 추가되었는지 확인하십시오. 그렇지 않으면 작동하지 않습니다). – TheDarkIn1978

관련 문제