调用函数时flex4 1195错误(未获取或设置)

时间:2011-09-30 17:50:04

标签: actionscript-3 flex flex4

我有一个名为S3Uploader的类,它扩展了Sprite,它有一个私有函数init,看起来像这样:

private function init(signatureUrl:String,  
                              prefixPath:String, 
                              fileSizeLimit:Number,
                                queueSizeLimit:Number,
                              fileTypes:String,
                              fileTypeDescs:String,
                              selectMultipleFiles:Boolean,
                                buttonWidth:Number,
                                buttonHeight:Number,
                                buttonUpUrl:String,
                                buttonDownUrl:String,
                                buttonOverUrl:String
                                ):void { 
//do stuff

}

在我的flex应用程序中,我正在尝试显示精灵并在加载应用程序时调用init函数。我的代码到目前为止是这样的:

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600"
                initialize="init();">
    <fx:Declarations>
        <!-- Place non-visual elements (e.g., services, value objects) here -->
    </fx:Declarations>
    <fx:Script>
        <![CDATA[
            import S3Uploader;

            function init() {   
                var s3upload:S3Uploader = new S3Uploader();
                s3upload.init('/s3_uploads2.xml', '', 524288000, 100, '*.*', 'All Files', true, 100, 30, '/images/upload-button.png', '/images/upload-button.png', '/images/upload-button.png');
                uploader.addChild(s3upload);
            }
        ]]>
    </fx:Script>
    <s:SpriteVisualElement id="uploader" />
</s:Application>

然而,在我调用s3upload.init的行上,我收到1195错误,说“1195:尝试通过静态类型S3Uploader的引用访问不可访问的方法init。”

当我查看这个错误时,似乎几乎每个人都试图用set或get来调用函数。但是,我没有这样做,我不知道为什么我得到这个错误。有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:7)

你应该学习OOP的基础知识。您不能从函数所有者对象中调用private函数。将其标记为public