Adobe Animate Starling 错误

Posted

技术标签:

【中文标题】Adobe Animate Starling 错误【英文标题】:Adobe Animate Starling Error 【发布时间】:2017-04-26 09:27:06 【问题描述】:

我使用 starling 框架在 adobe animate 中创建了饥饿英雄游戏(重新创建)。 从下面这个地址下载:

(http://www.test.farsvila.ir/animate_starling_Error.rar)

package 
    import flash.display3D.textures.Texture;
    import flash.utils.Dictionary;
    import flash.display.Bitmap;

    import starling.textures.Texture;
    import starling.display.Sprite;
    import starling.events.Event;
    import starling.display.Image;
    import starling.display.Button;
    import starling.core.Starling;
    import starling.events.Event;
    import screens.Welcome;

    public class Assets 

        [Embed(source = "media/graphics/bgWelcome.jpg")]
        public static const BgWelcome: Class;

        [Embed(source = "media/graphics/welcome_hero.png")]
        public static const WelcomeHero: Class;

        [Embed(source = "media/graphics/welcome_title.png")]
        public static const WelcomeTitle: Class;

        [Embed(source = "media/graphics/welcome_playButton.png")]
        public static const WelcomePlayBtn: Class;

        [Embed(source = "media/graphics/welcome_aboutButton.png")]
        public static const WelcomeAboutBtn: Class;

        private static var gameTextures: Dictionary = new Dictionary();

        public static function getTexture(name: String): Texture 
            if (gameTextures[name] == undefined) 
                var bitmap: Bitmap = new Assets[name]();
                gameTextures[name] = Texture.fromBitmap(bitmap);
            
            return gameTextures[name];
        
    


它出错了 --> 通过静态类型 Class 的引用从 Bitmap 调用可能未定义的方法。

【问题讨论】:

请提供一些代码,请确保,没有人不会下载该 RAR 文件,所以在您发布生成该错误消息的那部分代码之前,这个问题无法解决。 会这样做的兄弟:) مرسی زیاد کدهاشم میذارم 好的,谢谢 :) ,也不是我的反对票,不幸的是,这里不允许说波斯语,但在 chat.***.com 中。 欣赏兄弟。哦,别介意你是积极的:)。我的部分代码已添加到我的帖子中。请检查并帮助我 【参考方案1】:

乍一看,一切正常!根据DOC fromBitmapstarling.textures.Texture 的公共静态成员

但问题是因为import flash.display3D.textures.Texture 超出了您帖子中的代码块,让我被绞死了几分钟!

所以在这种情况下,我们有相同的类名,两个纹理。编译器也搞混了(不明确的引用错误)。

试试看

已编辑

public static function getTexture(name: String): starling.textures.Texture 
    if (gameTextures[name] == undefined) 
        var bitmap: Bitmap = new Assets[name]();
        gameTextures[name] = starling.textures.Texture.fromBitmap(bitmap);
    
    return gameTextures[name];

为了让编译器清楚,你的意思是哪个纹理

建议

我猜你真的不需要import flash.display3D.textures.Texture; 所以把它从你的默认代码中删除(在不将Texture 更改为starling.textures.Texture 的情况下解决了问题)

【讨论】:

@Mohammadtavakoly 我们必须将所有纹理更改为starling.textures.Texture,我现在将编辑我的答案 是吗?我们将它添加到类并从两个超类 starling.textures 扩展! @Mohammadtavakoly 你试过我编辑的代码吗?另请阅读作为另一个答案的附加建议(与第一部分无关) @Mohammadtavakoly 如果您还需要更多讨论,请加入此处Chat 当您超过 20 名代表时 @Mohammadtavakoly 好,所以这个答案已经解决并且应该被接受,但是对于你的新问题,将它作为一个新问题发布,不幸的是我不熟悉 starling-frameworkstage3d.

以上是关于Adobe Animate Starling 错误的主要内容,如果未能解决你的问题,请参考以下文章

Adobe Animate ReferenceError:错误 #1069:在 _ 上找不到属性 loopMode,并且没有默认值

Flash好望角

Adobe Animate/Flash ios 应用程序上传器

【An教程】快速入门Animate(原Adobe Flash)

Adobe Animate EXE 和分析

Adobe Animate JS 输出文件