AS3 如何将 adMob 添加到 Adob​​e Flash/Animate?

Posted

技术标签:

【中文标题】AS3 如何将 adMob 添加到 Adob​​e Flash/Animate?【英文标题】:AS3 How to add adMob to Adobe Flash/Animate? 【发布时间】:2021-02-12 04:20:10 【问题描述】:

请帮助我弄清楚如何将 adMMob 添加到我的 Actionscript 3 应用程序中。没有关于如何做到这一点的精心编写的文档。我只找到了一个解释它的 youtube 视频,但它仍然没有得到很好的描述。对于我收集的点点滴滴的信息,我设法构造了以下代码,但是它出错了。请帮助重构代码,以便我让它工作。

    首先我从 github 获得了 Pozirk 的 AdMob Air Native Extension 我在高级 ActionScript 设置中安装了 AdMob.swc 和 AdMob.ane 文件 我创建了一个名为 Main.as 的类文件,其中包含以下代码:
package    
import flash.display.MovieClip;
import com.pozirk.ads.admob.AdMob;
import com.pozirk.ads.admob.AdParams;
import com.pozirk.ads.admob.AdEvent;
var _admob: AdMob = new AdMob();
public class Main extends MovieClip
    
        public function Main()
        
            //> initialization of AdMob
            _admob.addEventListener(AdEvent.INIT_OK, onEvent);
            _admob.addEventListener(AdEvent.INIT_FAIL, onEvent);
            _admob.addEventListener(AdEvent.BANNER_SHOW_OK, onEvent);
            _admob.addEventListener(AdEvent.BANNER_SHOW_FAIL, onEvent);
            _admob.addEventListener(AdEvent.BANNER_LEFT_APP, onEvent);
            _admob.addEventListener(AdEvent.BANNER_OPENED, onEvent);
            _admob.addEventListener(AdEvent.BANNER_CLOSED, onEvent);
            _admob.addEventListener(AdEvent.INTERSTITIAL_SHOW_OK, onEvent);
            _admob.addEventListener(AdEvent.INTERSTITIAL_SHOW_FAIL, onEvent);
            _admob.addEventListener(AdEvent.INTERSTITIAL_CACHE_OK, onEvent);
            _admob.addEventListener(AdEvent.INTERSTITIAL_CACHE_FAIL, onEvent);
            _admob.addEventListener(AdEvent.INTERSTITIAL_LEFT_APP, onEvent);
            _admob.addEventListener(AdEvent.INTERSTITIAL_OPENED, onEvent);
            _admob.addEventListener(AdEvent.INTERSTITIAL_CLOSED, onEvent);
            _admob.addEventListener(AdEvent.REWARDED_CACHE_FAIL, onEvent);
            _admob.addEventListener(AdEvent.REWARDED_CACHE_OK, onEvent);
            _admob.addEventListener(AdEvent.REWARDED_CLOSED, onEvent);
            _admob.addEventListener(AdEvent.REWARDED_COMPLETED, onEvent);
            _admob.addEventListener(AdEvent.REWARDED_LEFT_APP, onEvent);
            _admob.addEventListener(AdEvent.REWARDED_OPENED, onEvent);
            _admob.addEventListener(AdEvent.REWARDED_REWARDED, onEvent);
            _admob.addEventListener(AdEvent.REWARDED_STARTED, onEvent);
            _admob.init();
        
    


    我将此行添加到脚本中,它位于顶部根目录,而不是函数或其他任何内容的一部分。我不确定它是否应该嵌套在某个地方。

_admob.show("ca-app-pub-3940256099942544/6300978111", AdParams.SIZE_SMART_BANNER, AdParams.HALIGN_CENTER, AdParams.VALIGN_BOTTOM);

在尝试编译代码时使用上述设置,我收到以下错误消息:

"Main.as,第 1 行 5006:一个 ActionScript 文件不能有多个 外部可见定义:_admob, Main"

    为什么我会收到此错误消息? 此代码是否适合运行 adMob? 我错过了什么吗?

【问题讨论】:

请将您的脚本示例格式化为可读性,这样行就不会被塞满并且所有行都正确缩进。 我做到了,但无论出于何种原因,它都没有流行起来。 我可以编辑我的帖子吗?我没有看到这个选项。 我找到了它的编辑链接,我重新编辑了我的帖子 500 次,但格式在这里只部分起作用。所以请原谅这篇文章的格式并尝试提供帮助。谢谢。 在 5001 上还可以。 【参考方案1】:

我对包进行了更改,并将var 移到了类部分中。

package    
import flash.display.MovieClip;
import com.pozirk.ads.admob.AdMob;
import com.pozirk.ads.admob.AdParams;
import com.pozirk.ads.admob.AdEvent;

public class Main extends MovieClip
    var _admob: AdMob = new AdMob();
        public function Main()

我也意识到我可能需要把这个语句放在一个函数中。我做了。但现在我在编译应用程序时收到此错误消息。

the swf file specified as the root content is missing

function onEvent():void

    _admob.show("ca-app-pub-3940256099942544/6300978111", AdParams.SIZE_SMART_BANNER, AdParams.HALIGN_CENTER, AdParams.VALIGN_BOTTOM);

【讨论】:

将您的主类链接到 adobe animate 的主类(只需写下您的类的名称)也在 ActionScript 设置/库路径中添加 Pozirk 的 AdMob Air Native Extension 的 ANE/SWC 并在其上进行测试移动设备

以上是关于AS3 如何将 adMob 添加到 Adob​​e Flash/Animate?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Adob​​e air 在静音模式下检测设备并与之交互 - AS3

如何导出与 Flash Player 8 兼容的 Adob​​e Flash cc 文件?

使用AS3 Adob e AIR加载YouTube视频

带有 Distriqt Compass 的 Adob​​e Flash Professional CS5.5(AS3) 总是说“无法创建本机扩展上下文”

将 Google Play 服务添加到 Adob​​e AIR Android 的本机扩展

如何在 Adob​​e Animate CC 中使用舞台宽度和高度(Canvas doc)