Apache flex 将按钮错误另存为项目
下面的代码有什么问题,上有一个错误 saveButton.visible=false; discardButton.visible=falseApache flex 将按钮错误另存为项目,apache-flex,actionscript-3,actionscript,mxml,mxmlc,Apache Flex,Actionscript 3,Actionscript,Mxml,Mxmlc,下面的代码有什么问题,上有一个错误 saveButton.visible=false; discardButton.visible=false package { import flash.display.Sprite; import flash.media.Camera; import flash.media.Video; import flash.display.BitmapData; import flash.display.Bitmap; import flash.events.Mous
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;
}
}
}
我猜这是一个文档根类,按钮被添加到flashfla文件的stage中。在这种情况下,您需要将按钮添加到您作为公共成员的声明中:
public var saveButton : Button;
public var discardButton : Button;
更新 我本人从未使用过flash组件,但您可以在此处找到有关如何在Flashbuilder中使用flash组件的答案:
从这段代码(如果不是部分代码)中可以看出,saveButton和discardButton在您到达的地方将为null。您没有初始化这些变量。我想到了同样的问题,以及如何将按钮附加到按钮事件,以及如何导入按钮;(请确保在编译之前将组件添加到您的阶段或资源库中,否则它将无法工作)。