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 as3变量和同名包导致flash builder抛出3599错误_Actionscript 3_Actionscript_Flash Builder - Fatal编程技术网

Actionscript 3 as3变量和同名包导致flash builder抛出3599错误

Actionscript 3 as3变量和同名包导致flash builder抛出3599错误,actionscript-3,actionscript,flash-builder,Actionscript 3,Actionscript,Flash Builder,刚切换到flash builder,使用flash中的3代码会抛出大量3599个错误: 3599定义名称与导入的包名称相同。对该名称的非限定引用将解析为包而不是定义 我知道这是因为我的包与驻留在包中的类属性变量具有相同的名称,但我不知道解决这些名称冲突的最佳实践是什么。问题是我有时喜欢在类之后命名包和变量。例如: package icon { import flash.display.DisplayObject; import flash.display.Graphics; import fla

刚切换到flash builder,使用flash中的3代码会抛出大量3599个错误:

3599定义名称与导入的包名称相同。对该名称的非限定引用将解析为包而不是定义

我知道这是因为我的包与驻留在包中的类属性变量具有相同的名称,但我不知道解决这些名称冲突的最佳实践是什么。问题是我有时喜欢在类之后命名包和变量。例如:

package icon {
import flash.display.DisplayObject;
import flash.display.Graphics;
import flash.display.Shape;
import flash.display.Sprite;

public class IconMaker extends Sprite{

    private var icon:Icon;

    public function IconMaker(icon:Icon):void{
        this.icon = icon;
    }
    public function make():void {
        icon.iconButton = new IconButton();
        icon.addChild(icon.iconButton);
    }
}
}
所以我的问题是什么是最佳实践:下划线前缀(_图标)或“我的”前缀(myicon),还是我应该重命名包?或者什么



非常感谢

我建议将这些软件包重命名。如下所示:com.publisher-website.app,然后扩展到更具体的包,如graphics.icons或类似的东西。源代码是针对Java的,但基本上同样适用于AS3。

我建议重命名这些包。如下所示:com.publisher-website.app,然后扩展到更具体的包,如graphics.icons或类似的东西。源代码是针对Java的,但基本上同样适用于AS3。

这实际上最近已经不受欢迎了,除了库代码(在库代码中,您与世界共享,而编写它的trupeting比快速访问您需要的类更重要).我认为更改包层次结构不会对名称冲突产生任何影响。我可能错了……让我检查一下。@Amy我不知道这是失宠。我总是尝试使用这些约定来命名包。特别是在Flash中,因为swf非常容易拆卸,如果有人这样做,他可以看到它的创建者。因此,作为一名开发人员,如果有工作机会,您很容易接触到:)另外,您仍然可以轻松访问所有类,这有什么困难?每个IDE都会为您生成导入行,因此您不必自己编写长行。该约定不是用于广告目的。这是一种避免库之间冲突的方法,无论你如何组合它们。@Florian如果这是它们的最初目的,同意。然而,这并没有使我的观点无效。这实际上最近已经不受欢迎了,除了库代码(你正在与世界共享,编写它的trupeting比快速访问你需要的类更重要)。我不认为更改包层次结构会对名称冲突产生任何影响。我可能错了……让我检查一下。@Amy我不知道这是失宠。我总是尝试使用这些约定来命名包。特别是在Flash中,因为swf非常容易拆卸,如果有人这样做,他可以看到它的创建者。因此,作为一名开发人员,如果有工作机会,您很容易接触到:)另外,您仍然可以轻松访问所有类,这有什么困难?每个IDE都会为您生成导入行,因此您不必自己编写长行。该约定不是用于广告目的。这是一种避免库之间冲突的方法,无论你如何组合它们。@Florian如果这是它们的最初目的,同意。但这并不意味着我的观点无效。通常,下划线前缀表示它是公共属性的aon内部(私有或受保护)表示。所以公共函数集foo(value:String){u foo=value}。一、 就个人而言,通过为变量找到更具描述性的名称来解决这些问题。例如,我与我的服务包和一个名为service的变量发生冲突,我将其重命名为whatThisIsLoadingService。在这种情况下,只有一个icon类来限定它似乎是不必要的,但这可能是最好的选择。顺便说一下,它是一个私有变量,为什么不加下划线呢?如果它是一个私有变量,那就太好了。我没注意到你在帖子里说的是不是。一、 就个人而言,我更喜欢用下划线特别表示“这是一个公开财产的私人存储”(因为它似乎源于防止这个.foo=foo),但我知道很多人更普遍地使用它。如果我理解你,我喜欢你的惯例。你的意思是通过get/set方法“公开”,对吗?通常,下划线前缀表示它是公共属性的aon内部(私有或受保护)表示。所以公共函数集foo(value:String){u foo=value}。一、 就个人而言,通过为变量找到更具描述性的名称来解决这些问题。例如,我与我的服务包和一个名为service的变量发生冲突,我将其重命名为whatThisIsLoadingService。在这种情况下,只有一个icon类来限定它似乎是不必要的,但这可能是最好的选择。顺便说一下,它是一个私有变量,为什么不加下划线呢?如果它是一个私有变量,那就太好了。我没注意到你在帖子里说的是不是。一、 就个人而言,我更喜欢用下划线特别表示“这是一个公开财产的私人存储”(因为它似乎源于防止这个.foo=foo),但我知道很多人更普遍地使用它。如果我理解你,我喜欢你的惯例。你的意思是通过get/set方法“公开曝光”,对吗?