在ActionScript中开始Flex3UI编程有什么好的资源吗?如果任何人有任何想法,我对以下内容有一些问题。它的尺寸正确,但我的按钮没有显示出来。有谁有什么想法吗?
package
{
import flash.display.*;
import mx.controls.Button;
import mx.controls.TileList;
import mx.controls.sliderClasses.Slider;
import mx.controls.ProgressBar;
import flash.net.FileReferenceList;
[SWF(width="720", height="480", backgroundColor="#ffffff", framerate="30")]
public class PhotoUploader extends Sprite
{
var AddPhotosButton:Button;
var RemovePhotoButton:Button;
var UploadPhotosButton:Button;
public function PhotoUploader():void
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
AddPhotosButton = new Button();
AddPhotosButton.x = 10;
AddPhotosButton.y = 10;
AddPhotosButton.width = 100;
AddPhotosButton.height = 20;
RemovePhotoButton = new Button();
UploadPhotosButton = new Button();
addChild(AddPhotosButton);
addChild(RemovePhotoButton);
addChild(UploadPhotosButton);
}
}
}发布于 2009-02-17 00:32:28
对于一个真正的Flex应用程序,我认为你需要从一个顶级的mx.core.Application (通常是用MXML而不是ActionScript定义的)开始,然后在其中添加mx.core.UIComponent,我认为你的PhotoUploader就是一个很好的自定义UIComponent的例子。
Flex help/tutorial页面相当不错。我建议从那里开始。Custom components是显式介绍的,但是您可能希望在流中更早地开始。
发布于 2009-02-17 12:18:42
尝试覆盖组件的createChildren()方法(不要忘记在其中调用super.createChildren() ),并将对addChild()的三个调用移到该方法中。不要调用您自己的createChildren方法;Flex框架将确保在将组件添加到显示列表时调用该方法。
使用mxmlc编写组件使您不必了解很多关于Flex Component Lifecycle的知识,因为mxmlc将为您生成适当的AS3源代码,但是当您想要自己用AS3编写自定义组件时,您确实需要熟悉它。
发布于 2009-02-17 05:14:45
检查livedocs page regarding actionscript projects。即:
关于ActionScript项目
Flex Builder允许您创建使用Flash API (而不是Flex框架)的ActionScript项目。这充分利用了Flex Builder工作台工具和ActionScript编辑器,这意味着您拥有了一个用于开发ActionScript应用程序的全功能集成开发环境。
因此,您不能在ActionScript项目中使用Flex组件。我很惊讶你竟然成功地编译了这个类。如果您使用不同的方法,请在问题中指明。
如果您使用的是Flex3和addChild,我假设您使用的是ActionScript 3。在这种情况下,您的导入语句指向错误的包。Button、TileList、Slider和ProgressBar都在fl.controls package中。
此外,ActionScript指南建议以小写字符开头命名属性和方法。
哦,最后一件事。我不推荐导入整个显示包,因为里面有一大堆类。
https://stackoverflow.com/questions/554899
复制相似问题