2011-11-22 128 views
0

我有一个项目,在时间轴上嵌入了文本字段的FLA。我们现在需要将这个项目本地化为阿拉伯语,从右到左的文本(从XML拉入) - 我的理解是,这只有在TLF文本字段才有可能。动态地将经典文本字段转换为TFL文本字段?

手动将所有这些texfields转换为TLF将是一项艰巨的任务。有没有办法以编程方式将普通文本字段设置为TLF文本字段?

+0

这是必须发生这种情况在运行时?或者,您是否可以使用创作时(Flash IDE)脚本在编译之前自动执行这些更改? – bigp

+0

这不是强制性的,不是。我不知道你会如何制作创作时间脚本?我们正在使用Flash CS5.5。 – Rich

+0

创作时脚本将是JSFL,在这种情况下(Flash IDE JavaScript语言)...我会尝试为您查看此内容。 – bigp

回答

1

不,没有。当然,您可以创建自己的类来检查每个帧,并在运行时删除并替换现有的TextField(循环显示列表并选择if (timeline.getChildAt(i) is TextField)应该可以工作,但它可能不会提高性能)。但我会建议你不要。当您不必处理大量现有内容时,切换到下一个项目的TLF文本。

虽然使用阿拉伯字体可能是一个真正的麻烦 - 不仅字符顺序必须颠倒,还有连字(两个或多个相邻字符“合并”的各种组合形成一个更复杂的符号) ;几乎没有办法完全正确,甚至没有使用TLF文本 - 如果您不使用输入TextField,Flaraby可能会帮助您基于现有的经典文本创建一个体面的版本。尽管做好准备 - 你可能不得不忍受一些折衷。

+0

准备工作绝对是关键,尤其是对于多语言应用程序/软件。在项目过程中被问及的问题总是一场噩梦(或者最糟糕的,接近完成的时间),以便将项目中似乎是“一件容易的事情”的元素转换给客户,但对于巨大的当必须扫描多重Flash符号和时间表来完成转换时,有可能中断。即使自动化脚本也不会完美。 – bigp

2

如果您对编写您自己的JSFL脚本来完成这个精心制作的任务感到满意,我建议您在导航Flash DOM树并获取FriendsofEd的“扩展Flash MX 2004”的副本时获得一些经验,或者至少拥有一个看看它的JSFL参考预览PDF:http://www.friendsofed.com/books/1590593049/3049_Ref.pdf。虽然这已经过时,但概念,属性和方法并没有明显改变(如果有的话),除了一些更新的功能显然,TLF textfields是'em!'之一!

根据您的具体需求,您将不得不扫描:

  • 主要时间表;
  • 具有时间线的主时间轴实例(MovieClip,Buttons,Graphics);
  • 库符号的时间轴;
  • 的库符号孩子的时间表(虽然,这可能是多余的,因为你已经与前 一步这样的方式;

扫描当前文档的元素时间表,首先它是一个好主意,存储当前时间表的参考,像这样:

var doc = fl.getDocumentDOM(); 
var tl = doc.getTimeline(); 

注:请注意,这将抓住当前显示的时间线的参考(是否会在“正在编辑的象征”模式或其他场景等。为了确保它选择你运行该脚本你的“主时间线”随时,我相信下面就抓住它:

var tl = doc.timelines[0]; //Grabs the Main Timeline 

注:请更正上面,如果我错了!

不完全知道您的项目是否在不同的关键帧中包含TextField,或者它们驻留在单帧时间轴中,扫描时间轴的每个帧以验证是否存在任何TextField实例是有意义的。

要做到这一点,请务必注意,实例或JSFL术语“元素”中的实例不能直接从时间轴对象中检索。你必须深入挖掘才能达到目标!

基本上你必须穿越这条路径:

  • 目前Timeline;
  • Timeline;
  • 每个Layer对象的;
  • 每个Frame对象的元素,然后;
  • 验证它是否为TextField实例;

一旦找到这些TextFields,它就会将它“转换”为TLF文本字段。转换,意思是......创建一个新的TLF文本字段,将经典TextField对象的所有可重用属性传递给它,将TLF文本字段置于经典TextField所在的相同索引(z-depth)处,然后将其丢弃。或者,您可以设置阿拉伯字体支持所需的所有必需的嵌入和/或TLF属性。

没有深入了解如何执行此转换过程的细节,您可以看到仅仅扫描一个时间线是一项艰巨的任务。不是不可能的,而只是几个步骤。

如果您仔细地创建自己的JSFL函数来封装每个必要的步骤,以便可以在其他必要的扫描(其他时间轴,库符号等)中重用它,您将大大降低此任务的复杂性!

希望帮助你(即使它不是一个直接的解毒剂,如“这里的答案,借此......”!)

+0

看起来您无法设置使用JSFL创建的新文本框是TLF还是Classic请参阅http://help.adobe.com/en_US/flash/cs/extend/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7f59.html以及http:/ /help.adobe.com/en_US/flash/cs/extend/WS5b3ccc516d4fbf351e63e3d118a9024f3f-7fa4.html :-( – jolyonruss