如何动态更改Edge Animate符号中的图像?

时间:2013-05-20 02:30:12

标签: symbols rollover adobe-edge

我正在处理导航中有许多翻转图像的网站原型。每个图像都是唯一的,但翻转和转出代码是相同的。我试图创建一个可用于所有翻转的单个符号,但需要一些帮助来解决这个问题,因为它会显着加快我的工作。

我认为伪代码会像这样工作

  1. 创建包含默认翻转图像的符号。
  2. 在符号中,添加翻转和转出代码。这可以从0 - >调整透明度。 100又回来了。
  3. 在导航中的每个项目上创建符号实例。
  4. 对于每个实例,设置一个包含要使用的翻转图像名称的变量。
  5. 在该符号实例中,获取变量值。
  6. 在该符号实例中,使用变量中的图像名称替换默认图像。
  7. 问题:如何让步骤4-6工作? 我有1-3个工作顺利。


    更新:我已经#6解决了

    图像全部由CSS background-image属性管理,而不是旧学校<img src=...>。因此,要为元素设置图像,语法为:

    $(sym.lookupSelector("[ElementName]")).css('background-image', [image]);
    

    还有第二部分,即[图像]正确。

    1. 使用Edge图像的默认相对URL:images/[image]
    2. 使用CSS background-image的标准语法:url(images/[image])

    3. P.S。我最后一次开发工作是回到Director,PHP和ColdFusion。我仍然掌握基本原则,如使用函数,对象,实例,继承等,但语言已经改变。我对DOM的经验非常少。


      附录:我如何手动执行此操作

      1. 导航的背景图像显示所有未选择的状态

      2. 导航中的每个项目都有一个相应的翻转图像,位于nav元素顶部的一系列元素中。每次翻转都会将不透明度初始设置为0%。

      3. 每个图像元素都有翻转,转出和点击触发器。翻转和展开触发器各自相同。还有一些带有rollout的代码可以快速淡出。这意味着要复制相同的代码。我不想考虑改变代码的任何部分。

1 个答案:

答案 0 :(得分:1)

我得出了与你相同的结论。

步骤4-5我这样做:当我创建符号实例时,我给它一个特殊的名字,比如“button_image1”。 然后在代码中,您可以检查此属性:

var symbolElement = sym.getSymbolElement();
var id = symbolElement.attr("id")
var tokens = id.split("_");
var image = tokens[1];

将正确的图像设置为背景。

您可以将此代码放在符号的creation_complete事件上。