Actionscript 3 动画横幅启动带有第三方组件的视频的完整窗口覆盖

Actionscript 3 动画横幅启动带有第三方组件的视频的完整窗口覆盖,actionscript-3,flash-cs4,Actionscript 3,Flash Cs4,我对Flash中的这类东西比较陌生,所以如果我的解释在任何方面都有欠缺,我真的很抱歉,如果任何答案都能充分解释我在做什么,我会非常感激,这样我就可以学习,而不是仅仅粘贴在解决方案中 我试图制作的是一个小的动画横幅,点击后会启动一个类似于LightBox的半透明覆盖层,最初它是在LightBox覆盖网页内容并包含视频播放器的情况下构建的。从现在起,我将把这些元素称为“横幅”和“覆盖”。覆盖和横幅包含在单独的.swf文件中 横幅相对比较复杂,在加载时设置动画,在空闲时播放循环动画,在鼠标悬停时播放另

我对Flash中的这类东西比较陌生,所以如果我的解释在任何方面都有欠缺,我真的很抱歉,如果任何答案都能充分解释我在做什么,我会非常感激,这样我就可以学习,而不是仅仅粘贴在解决方案中

我试图制作的是一个小的动画横幅,点击后会启动一个类似于LightBox的半透明覆盖层,最初它是在LightBox覆盖网页内容并包含视频播放器的情况下构建的。从现在起,我将把这些元素称为“横幅”和“覆盖”。覆盖和横幅包含在单独的.swf文件中

横幅相对比较复杂,在加载时设置动画,在空闲时播放循环动画,在鼠标悬停时播放另一个动画。单击横幅或允许鼠标悬停动画完成这两个操作,启动覆盖。我有一个工作版本,可以称为jquerylightbox,但现在被要求使用其他第三方组件构建该功能,它破坏了横幅的动画和交互性

这是横幅文件中的ActionScript

import flash.external.ExternalInterface;
import flash.events.MouseEvent;
import flash.events.Event;

stop();

curl_mc.alpha = 0;

curl_mc.stop();

hotspot_mc.useHandCursor = true;
hotspot_mc.buttonMode = true;

hotspot_mc.addEventListener(MouseEvent.ROLL_OVER, onLoopRollover, false, 0, true);
hotspot_mc.addEventListener(MouseEvent.ROLL_OUT, onLoopRollout, false, 0, true);

hotspot_mc.addEventListener(MouseEvent.CLICK, screenad.shared.callMethod("launchLayer"));
curl_mc.addEventListener('curlComplete', screenad.shared.callMethod("launchLayer"));

function onLoopRollover(e:MouseEvent):void
{
  loop_mc.alpha = 0;
  loop_mc.stop();

  curl_mc.alpha = 1;
  curl_mc.gotoAndPlay(1);
}

function onLoopRollout(e:MouseEvent):void
{
  loop_mc.alpha = 1;
  loop_mc.gotoAndPlay(1);

  curl_mc.alpha = 0;
  curl_mc.stop();
}
这是覆盖文件中的动作脚本

screenad.hide();

screenad.shared.'showAd' = function()
{ 
  screenad.show;
}

这些都反映了组件支持团队向我建议的更改,但横幅中的动画和启动覆盖的互动性仍然存在问题。

我认为您需要混合使用HTML+Flash来解决此问题

我可能会做的是分离flash对象

横幅和视频

该横幅将是一个简单的动画组件一旦点击,你可以把一个HTML覆盖到整个页面,并加载其中的flash视频组件

您可以通过外部接口类通过flash->Javascript进行通信

例如:

AS3

Javascript

function loadOverlayVideo(videoId)
{
    showBlahBlah()
}
注意:如果您的函数位于JQuery嵌入式函数中,则可能需要使用以下方法将函数外部化:

window.loadOverlayVideo = loadOverlayVideo
否则flash将无法找到它

请确保您在每个函数上使用可配置的参数,并且您将获得一个真正可重用的组件,可以根据需要多次使用

希望有帮助

window.loadOverlayVideo = loadOverlayVideo