【问题标题】:AIR AS3 : Display a long text document in an appAIR AS3:在应用程序中显示长文本文档
【发布时间】:2015-05-16 14:14:55
【问题描述】:

所以我正在完成一个 AIR 应用程序,它将同时部署在 Android 和 iOS 手机上。

我想附上一本详细解释如何使用该应用程序的手册。

首先,我在WORD上用英语、法语和西班牙语编写了使用说明书。 事实证明,每份文件重 8Mo,有 20 页和十几张图片。 调整 DPI,每个转换为 PDF 的文件现在重 0.5Mo。

我的目标是:如何将本手册包含在我的应用程序中,最好没有外部阅读器和互联网连接,并具有流畅直观的文档导航。

我在网上的研究使我找到了很多解决方案,我想在这里分享它们,并尽可能多地收集你的想法和意见。

1 在我的应用程序中包含一个 PDF 阅读器来阅读内部 PDF 文件(来自应用程序存储目录的 PDF)

优点:用户始终可以使用 pdf,无需互联网连接或外部阅读器。

缺点:鉴于下面列出的 ANE 仅适用于一个操作系统,我需要为 android 和 iOS 环境编写不同的代码。也不确定下面的 ANE 是否与最新的 64 位操作系统版本兼容(有些在过去 2 年没有更新)。

链接:

适用于 iOS 的 PDF Reader ANE(免费):(抱歉,声誉不足以发布链接)(某些论坛上报告了一些应用程序崩溃)

适用于 iOS 的 PDF 阅读器 ANE(10 美元):(抱歉,声誉不足以发布链接)

适用于 Android 的 PDF Reader ANE(免费):(抱歉,链接发布的声誉不够)

PurePDF(不是 ANE,而是 AS3 类,不确定是否与两种操作系统兼容):(对不起,声誉不足以发布链接)

有人用过 PurePDF 吗?由于它是 100% 的 AS3 代码,它应该可以在所有操作系统上运行,听起来很有希望。但是我不知道怎么用!!

2 启动外部 PDF 阅读器以阅读内部 PDF 文件(在应用内)。

优点:使用 openWithDefaultApplication() 方法,相同的代码可能适用于两个操作系统。

论坛上的一些用户发现问题指向内部 PDF 文件,尤其是在手机上。

缺点:显然,如果用户没有安装 PDF 阅读器,他将无法阅读文档。

一些 ANE 也可用于实现此目标:

ANDROID:PDF 阅读器 ANE(在 Android 上打开默认 PDF 阅读器 - 5 美元)(抱歉,声誉不足以发布链接)

ANDROID:适用于 Android 的 PDF Reader ANE(免费)(抱歉,声誉不足以发布链接)

ANDROID:DocLauncher ANE(7 美元,不再可用)(抱歉,声誉不足以发布链接)

iOS:ANE DEVICE FILE UTIL(免费并支持 iOS 64 位)(抱歉,链接发布的声誉不够)

  1. 将我的 PDF 转换为 SWF,然后在我的应用中显示。

使用特殊工具,我将我的 PDF 转换为 SWF,然后将其嵌入到我的 IPA 或 APK 中。

优点:它适用于桌面。此外,以下一些工具还提供导航界面和缩放选项。

缺点:我还没有弄清楚如何将 SWF 嵌入到我的最终 IPA 或 APK 中(在将 SWF 添加到 Flash CS6 FLA 库之后),而且导航界面无法自定义以适应移动环境。

链接: SWF 工具中的 PDF2SWF(免费)(抱歉,声誉不足以发布链接)

PDFMate PDF 转换器(免费,专业版 40 美元)(对不起,声誉不足以发布链接)

4。 创建一个包含很多帧的动画片段 (+50);然后将我的文档内容划分为框架并将我的文本粘贴到 textFields 中。然后添加一些基本的导航按钮。

优点:100% 多平台解决方案。

缺点:耗时。您可能会丢失布局。您失去了 PDF 阅读器中常见的缩放功能。上下滚动不流畅。 Textfield内的文本长度是有限的等等。

5。 启动外部 PDF 阅读器以读取外部 PDF 文件(存储在服务器中)。

优点:也许相同的代码可能适用于两个操作系统。

缺点:用户需要互联网连接和安装的 PDF 阅读器。我将不得不为远程存储服务付费,这将(可能)施加下载限制。 在 iOS 上:可以通过 navigateToUrl 打开在线 PDF,然后将其导入 iBooks。

6。 使用 StageWebView 类(或 StageWebViewBridge 类)显示 HTML 文件(将我的 PDF 转换为 HTML 之后)。

缺点:在最终的 IPA 或 APK 文件中嵌入带有图片的 HTML 文件似乎很棘手。

具有讽刺意味的是,ADOBE 是 PDF 格式的创建者,而 AIR 正在进行第 17 次重大更新。

但据我所知,AIR 没有提供简单且令人满意的解决方案来在所有平台上显示 PDF。

你们中是否有人知道显示 pdf 的多平台解决方案,具有良好的性能(平滑滚动和缩放)?

读者应该有翻页、基本控件(下一页/上一页等),并且应该阅读本地存储或在线的 pdf(作为最后的手段)。

等待您的回复!

BR

【问题讨论】:

  • 虽然你的问题还不错,但征求意见是违反规则的,超出了 StackOverflow 的范围。
  • 对不起,如果我的帖子听起来像是一个分享意见的邀请。但这确实是一个问题,它应该是这样的:“谁找到了一个真正的多平台解决方案,可以在 AIR for mobile 中显示带有导航界面的长而“丰富”的文档?
  • 您只需在常规 AIR/Flash 中显示您的手册。您将手册放在 xml 中,加载 xml,在文本字段中显示文本。这是移动设备的关键部分——您必须将所有内容都转换为位图。因此,您使用 mcManualText 并将其绘制到位图(制作矢量动画剪辑的位图副本),添加位图版本,删除矢量版本,位图以 60fps 平滑滚动、移动。
  • @moot:感谢分享线索。我很容易找到一些将我的 PDF 转换为 XML 的工具。问题是:我发现的所有 AS3-XML 教程都涉及从加载的 XML 文件中检索和显示数据。而我正在寻找一种方法来显示整个文本文档,保留文本格式,并带有缩放和导航按钮。您仍然认为您的建议是可行的方法吗?谢谢!!
  • 使用 XML 传递或存储数据。如果您的应用程序不超过一页,则无需使用 XML。只需在影片剪辑中手动创建您的文档,使其看起来像您想要的那样,然后将其绘制到位图图块(位图不应大于屏幕尺寸)。一旦你只有位图,位图动画剪辑将平滑移动。我可以展示平铺的示例代码。如果您想了解 gpu 优化,gotoandlearn.com 有很棒的视频教程。

标签: android actionscript-3 pdf air


【解决方案1】:

使用 StageWebViewBridge 类,我使用了相同的 AS3 代码,并且我的本地 HTML 页面与图片完美地显示在 AIR for Android 和 AIR for Windows 上。

这是迄今为止最好的解决方案!

很遗憾我找不到使用导航按钮从锚点跳转到下一个锚点的方法..

很快将在 iOS 上测试相同的代码。

干杯!

【讨论】:

    【解决方案2】:

    我终于找到时间在 iphone 上进行测试(iOS v8.1.2 上的 AIR v18 for iOS)。 这是我对此事的最后一句话:

    在 iphone 上,使用 StageWebViewBridge 类无法访问 HTML 文件。 相反,我通过下面的方法使用了 StageWebView,并且成功了:

    var fPath:String = new File(new File("app:/output-html/index.html").nativePath).url; webView.loadURL(fPath);

    StageWebViewBridge 类与 AIR for Android 和 AIR for Windows 一起使用。

    所以它成功了一半,因为我必须为不同的平台编写不同的代码。 但是,嘿,有用的东西总比没有好;)

    最好的问候。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多