在ActionScript中启动Flex 3 UI编程有什么好的资源吗?如果有人有任何想法,我会遇到以下问题。它的大小合适,但我的按钮没有出现。有人有什么想法吗?
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);
}
}
}
答案 0 :(得分:1)
对于真正的Flex应用程序,我认为您需要从顶级mx.core.Application
(通常在MXML而不是ActionScript中定义)开始,您将添加mx.core.UIComponent
。我认为你的PhotoUploader
将是自定义UIComponent的一个很好的例子。
Flex help/tutorial页非常好。我建议从那里开始。 Custom components已明确涵盖,但您可能希望在流中提前开始。
答案 1 :(得分:0)
尝试覆盖组件的createChildren()
方法(不要忘记在其中调用super.createChildren()
)并将三个调用移至addChild()
。不要打电话给你自己的createChildren
方法; Flex框架将确保在将组件添加到显示列表时调用它。
在MXML中编写组件使您不必了解Flex Component Lifecycle,因为mxmlc将为您生成正确的AS3源代码,但是当您想自己在AS3中编写自定义组件时,真的需要熟悉它。
答案 2 :(得分:-1)
检查livedocs page regarding actionscript projects。即:
关于ActionScript项目
Flex Builder允许您创建使用Flash API(而非Flex框架)的ActionScript项目。这利用了Flex Builder工作台工具和ActionScript编辑器,这意味着您拥有一个用于开发ActionScript应用程序的全功能IDE。
因此,您无法在ActionScript项目中使用Flex组件。我很惊讶你甚至成功编写了这门课程。如果您使用的是其他方法,请在问题中指明。
如果您使用的是Flex 3和addChild
,我假设您使用的是ActionScript 3.在这种情况下,您的import语句指向错误的包。 Button
,TileList
,Slider
和ProgressBar
位于fl.controls package
。
此外,ActionScript指南建议命名以小写字符开头的属性和方法。
哦,最后一件事。我不建议导入整个显示包,因为那里有很多类,真的。