Flex 3 UI ActionScript编程入门

时间:2009-02-16 22:48:55

标签: flex actionscript-3

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

3 个答案:

答案 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语句指向错误的包。 ButtonTileListSliderProgressBar位于fl.controls package

此外,ActionScript指南建议命名以小写字符开头的属性和方法。

哦,最后一件事。我不建议导入整个显示包,因为那里有很多类,真的。