Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 如何编译本Flash教程的代码?_Actionscript 3_Flash - Fatal编程技术网

Actionscript 3 如何编译本Flash教程的代码?

Actionscript 3 如何编译本Flash教程的代码?,actionscript-3,flash,Actionscript 3,Flash,我开始阅读本教程: 我正在使用FlashDevelop,并将完整代码粘贴到ActionScript文件中。我收到的错误如下: C:\Users\tempus\Documents\uploaderas\Uploader.as(30): col: 4 Error: Access of undefined property select_btn. select_btn.addEventListener( MouseEvent.CLICK, browse ); ^ C:\Users\tempus\Doc

我开始阅读本教程:

我正在使用FlashDevelop,并将完整代码粘贴到ActionScript文件中。我收到的错误如下:

C:\Users\tempus\Documents\uploaderas\Uploader.as(30): col: 4 Error: Access of undefined property select_btn.
select_btn.addEventListener( MouseEvent.CLICK, browse );
^
C:\Users\tempus\Documents\uploaderas\Uploader.as(31): col: 4 Error: Access of undefined property progress_mc.
progress_mc.bar.scaleX = 0;

...
public var select_btn:Sprite;
public var progress_mc:Sprite;

public function Uploader(){
    var displayAssets:DisplayAssets = new DisplayAssets();
    addChild(displayAssets);

    select_btn = displayAssets.select_btn;
    progress_mc = displayAssets.progress_mc;

    //the rest of the code
}

我知道出现错误是因为对象没有被声明(而且它们似乎是从某个地方实例化的),但我不知道如何/应该包括什么来声明它们。你能告诉我一个解决方案吗?

这是因为按钮是在Flash IDE中创建的(因为本教程是使用Flash IDE编译的)。由于这些按钮在代码方面不存在,因此会出现该错误

您可以通过代码自己创建元素,也可以使用FlashIDE导出必要UI元素的swc/swf,并将其包含在flashDevelop项目中。我想你会想做后者-

在FlashIDE中,打开.fla,打开库面板,找到进度资源,右键单击它并显示属性。选中“Export For ActionScript”选项,然后在“Class”字段中为其指定一个唯一的名称,如“SelectBtn”。对“progress”资产执行相同操作(仅使用不同的类名,如“ProgressBar”)。转到flash发布设置,并在flash选项卡上选择“导出swc”。发布文件并将发布的swc放在FlashDevelop项目文件夹(传统上是项目的lib文件夹)中

在FlashDevelop中,右键单击swc并选择“添加到库”。(您可能需要再次单击鼠标右键,然后转到“选项”并选择“完全包含”选项)。现在,您可以访问在Flash中设置的类。然后在代码中声明并初始化显示资源:

public var select_btn:SelectBtn = new SelectBtn();
public var progress_mc:ProgressBar = new ProgressBar();
你也需要做这个文本字段。不过,在代码中这样做是最简单的

public var label_txt:TextField = new TextField();
请记住,您需要以这种方式手动定位并在所有三个元素上使用addChild。如果你想保持flash中的定位,只需选择舞台上的所有元素,然后按F8键将它们转换为电影剪辑。然后在库中设置与其他链接相同的链接,并给它一个类似“DisplayAssets”的类名,然后导出一个新的swc。那么您的代码将如下所示:

C:\Users\tempus\Documents\uploaderas\Uploader.as(30): col: 4 Error: Access of undefined property select_btn.
select_btn.addEventListener( MouseEvent.CLICK, browse );
^
C:\Users\tempus\Documents\uploaderas\Uploader.as(31): col: 4 Error: Access of undefined property progress_mc.
progress_mc.bar.scaleX = 0;

...
public var select_btn:Sprite;
public var progress_mc:Sprite;

public function Uploader(){
    var displayAssets:DisplayAssets = new DisplayAssets();
    addChild(displayAssets);

    select_btn = displayAssets.select_btn;
    progress_mc = displayAssets.progress_mc;

    //the rest of the code
}

不是我投的反对票:)。下载的代码提供了一个swf文件,但我真的不确定如何处理它。我应该从代码中加载它吗?我在FlashDevelop中有一个选项“添加到库”,我在构建项目时收到了相同的错误。我只是查看了.fla,它们没有链接设置,这就是为什么仍然会出现错误。进度条和选择按钮需要指定它们自己的链接类名,然后您必须再次导出它。之后,您可以通过flash develop访问它,我将用更具体的说明更新我的答案谢谢您花时间进行如此详细的解释。如果你正好有一分钟的时间,你能看一下吗?谷歌搜索“不用类编译flash文件”并没有给我相关的结果。