我有一个名为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来调用函数。但是,我没有这样做,我不知道为什么我得到这个错误。有谁知道我做错了什么?
答案 0 :(得分:7)
你应该学习OOP的基础知识。您不能从函数所有者对象中调用private
函数。将其标记为public
。