AS3 如何将 adMob 添加到 Adobe Flash/Animate?
Posted
技术标签:
【中文标题】AS3 如何将 adMob 添加到 Adobe 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 添加到 Adobe Flash/Animate?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Adobe air 在静音模式下检测设备并与之交互 - AS3
如何导出与 Flash Player 8 兼容的 Adobe Flash cc 文件?
带有 Distriqt Compass 的 Adobe Flash Professional CS5.5(AS3) 总是说“无法创建本机扩展上下文”