AS3 设置 Sprite 容器的宽度和高度

2023-11-27

好吧,我对这个问题感到困惑。我知道这似乎是一个很简单的问题,我不明白为什么我无法弄清楚,但我仍然无法解决,我几乎放弃了。问题是这样的:

我有一个精灵容器,它应该保存一堆视频的缩略图。我可以用所有视频和整个作品填充容器,但显然如果我添加一堆视频,它会超出 Flash 文档的大小,所以我需要添加一个 UIScrollBar (我这样做了)现在滚动条目标设置为容器,但不允许我滚动,如果我正确的话,这是因为容器没有设置高度。所以我试图设置这个容器的高度,但第二次我尝试设置高度甚至宽度时,我以前能看到的所有缩略图都消失了!就好像大小被设置为 0 而不是我什至尝试将其设置为指定大小只是为了测试但什么也没做。无论如何,这是我的代码,如果有人可以帮助我,我将非常感激!提前致谢!


import fl.controls.UIScrollBar; 

var videoList:XMLList;
var numVideos:Number;
var current_Video:Number = 0;
var video_position:Number;
var video_paused:Boolean;
var xmlPlaylist:String;

//XML File setup
var playlist_xml:XML;
var myLoader:URLLoader = new URLLoader();

//Playlist setup
var thumb_width:Number;
var thumb_height:Number;
var thumbs_x:Number;
var thumbs_y:Number;
var main_container:Sprite;
var thumbs:Sprite;
var scrollbar:UIScrollBar;

//Loader Data
this.loaderInfo.addEventListener(Event.COMPLETE, loaderComplete);
function loaderComplete(e:Event):void
{
    var myQueryStrings = this.loaderInfo.parameters;
    xmlPlaylist = myQueryStrings.pList;

    myLoader.load(new URLRequest(xmlPlaylist + "?uniq=" + new Date().getTime()));
}

myLoader.addEventListener(Event.COMPLETE, processXML);
function processXML(e:Event):void {
    playlist_xml = new XML(e.target.data);

    numVideos = playlist_xml.video.length();
    videoList = playlist_xml.video;

    thumb_width = playlist_xml.@thumb_width;
    thumb_height = playlist_xml.@thumb_height;
    thumbs_x = playlist_xml.@thumbs_x;
    thumbs_y = playlist_xml.@thumbs_y;

    current_Video = Math.round(Math.random()*(numVideos-1))+1;
    current_Video--;

    startPlayer();
}

function startPlayer()
{
    makeContainers();
    callThumbs();
    setVideo(current_Video);
}

function makeContainers():void
{
    main_container = new Sprite();
    addChild(main_container);

    thumbs = new Sprite();
    thumbs.addEventListener(MouseEvent.CLICK, playVideo);
    thumbs.addEventListener(MouseEvent.MOUSE_OVER, onOver);
    thumbs.addEventListener(MouseEvent.MOUSE_OUT, onOut);
    thumbs.x = thumbs_x;
    thumbs.y = thumbs_y;

这就是问题所在:(如果我注释掉这段代码,它会显示缩略图)


    thumbs.width = thumb_width;
    thumbs.height = (thumb_height + 11) * 3;

    thumbs.buttonMode = true;
    main_container.addChild(thumbs);

    scrollbar = new UIScrollBar();
    scrollbar.x = thumbs_x + thumb_width + 2;
    scrollbar.y = thumbs_y;
    scrollbar.setSize(25, (thumb_height + 11) * 3);
    scrollbar.visible = true;
    scrollbar.scrollTarget = thumbs;
    main_container.addChild(scrollbar);
}

function callThumbs():void
{
    for (var i:Number = 0; i (less than) numVideos; i++) //For some reason Stack Overflow isnt allowing me to put the symbol less than so i just typed it in...
    {
        var thumb_url = videoList[i].@thumb;
        var thumb_loader = new Loader();
        thumb_loader.name = i;
        thumb_loader.load(new URLRequest(thumb_url));

        thumb_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, thumbLoaded);

        thumb_loader.y = (thumb_height + 11) * i;
    }
}

function thumbLoaded(e:Event):void
{
    var my_thumb:Loader = Loader(e.target.loader);
    thumbs.addChild(my_thumb);
}

function playVideo(e:MouseEvent):void
{
    setVideo(e.target.name);
}

function onOver (e:MouseEvent):void
{
    var my_thumb:Loader = Loader(e.target);
    my_thumb.alpha = 0.5;
}

function onOut (e:MouseEvent):void
{
    var my_thumb:Loader = Loader (e.target);
    my_thumb.alpha = 1;
}

function setVideo(current_Video)
{
    var display:String = videoList[current_Video].@title;
    var video:String = videoList[current_Video].@url;

    txt_Display.text = display;
    flvPlayer.source = video;
}

stop();

这很容易。您正在创建 Sprite、添加侦听器、设置坐标。精灵仍然是空的。然后设置宽度和高度,它们将转换为scaleX和scaleY。在空精灵上,这会弄乱变换矩阵,并且精灵将永远不会显示。仅在非空精灵上设置宽度、高度或scaleX/Y。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

AS3 设置 Sprite 容器的宽度和高度 的相关文章

随机推荐

  • 将图像文件保存到sql Server并将字节数组转换为图像

    我将图像存储在数据库中 并希望将它们从字节数组转换为图像 将对象转换为字节数组没有问题 但在尝试从字节数组转换为图像时出现 参数无效 错误 我传递给方法的对象来自数据集行 存储过程 USE GO Object StoredProcedure
  • R 中的 diag() 函数

    有没有办法使用diag 矩阵中的函数而不使用内置函数或迭代 M lt matrix 1 9 ncol 3 make a matrix q5b lt function M function 我知道M 1 1 M 2 2 and M 3 3 会
  • 如何在没有库函数的情况下将字符串解析为整数?

    最近我在一次采访中被问到这个问题 如何在不使用任何库函数且不考虑语言的情况下将 12345 形式的字符串解析为其整数表示形式 12345 我想到了两个答案 但面试官说还有第三个 这是我的两个解决方案 解决方案 1 保留一本映射 1 gt 1
  • 如何相对于鼠标位置旋转图像?

    我正在尝试做这样的效果 http metatroid com articles在页面顶部 但我无法仅使用他们给出的代码来旋转它 var img image if img length gt 0 var offset img offset f
  • 如何告诉 google bot 跳过部分 HTML?

    有很多关于相反情况的信息 当人们尝试在 HTML 中包含内容时 谷歌机器人可以看到这些内容 但用户不可见 就我而言 我需要相反的东西 从谷歌机器人隐藏一些 html 问题是如何 闪存不是答案 也不想使用花哨的 ajax 东西 主要是因为我立
  • 获取 Cocoa 中的当前壁纸

    我正在使用此代码来获取当前壁纸 NSURL imageURL NSWorkspace sharedWorkspace desktopImageURLForScreen NSScreen mainScreen 这工作正常 但是当我将图片文件夹
  • 使用 PrimeFaces 手动添加/加载 jQuery 会导致未捕获的类型错误

    我正在使用 PrimeFaces 3 5 和 JSF 2 0 我想使用 jQuery 插件 因此我将 jQuery 包含在我的 web 应用程序中
  • Python 从子文件夹导入

    我正在尝试对每个学生在单独文件夹中的一些 python 提交进行评分 为此 我想运行一个函数 例如 f 我明白 如果我当前的路径与文件所在的路径相同 我可以简单地执行以下操作 import filename filename f 然而 还有
  • 可以推荐 .NET 的 ZedGraph 图表库吗? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我正在为我的公司做一个项目 在研究股票市场的过程中 我需要将一些不同类型和平均复杂度的图表集成到C 中 我在互联网上找到了这个免费图书馆 ZedGraph 如果您遇到过它 您会推荐使
  • 使用 @font-face 并在当前 HTML 页面中嵌入 SVG 字体

    我有一个想要分发的独立 HTML 文档 没有任何外部依赖项 我在本文档中使用了非标准字体 只有我的部分用户会安装该字体 对于那些没有安装该字体的用户 我在顶部的嵌入 SVG 文档中包含了该字体的副本 在此示例中我使用的是单字形字体 真实文档
  • 计算 numpy 数组中一行中重复元素的数量

    我正在寻找一种快速方法来执行以下操作 假设我有一个数组 X np array 1 1 1 2 2 2 2 2 3 3 1 1 0 0 0 5 我不是在寻找元素的简单频率 而是在寻找连续的频率 所以第一个 1 重复 3 次 比 2 重复 5
  • Word 2016 中的导航窗格:强制折叠标题视图的 VBA 代码

    我正在尝试编写一个在打开 docx 文档时运行的 VBA 宏 我希望它强制显示导航窗格 然后强制所有标题 任何级别 以折叠模式显示 我正在尝试使用宏记录器获取折叠命令的代码 当我录制宏时 我所拥有的只是 ActiveWindow Docum
  • 类型错误:预期的字符串或缓冲区

    我有这个简单的代码 import re sys f open findallEX txt r lines f readlines match re findall A Z lines print match 我不知道为什么我会收到错误 预期
  • Winforms(.NET Core 3)是否支持所有.NET Framework控件

    我们刚刚迁移到 NET 正在尝试使用 C NET 重新创建一个旧项目 我们听说 NET Core 是新项目的最佳选择 我们对此使用 WinForms 非常感兴趣 所以我一直在尝试 Visual Studio 2019 预览版 16 5 0
  • Gradle:排除依赖项的包

    是否可以排除一个package来自 Android Gradle 依赖项 因此它不会最终出现在 APK 中 As dependencies compile com facebook android facebook android sdk
  • EmptyDataTemplate 和 EmptyDataText 在 GridView 中不起作用

    我似乎也无法得到EmptyDataTemplate or EmptyDataText of a GridView上班 我正在获取GridViewde codebehind 中的内容并使用 using 附加它们DataBind 我试过让它们作
  • Android 共享首选项的默认值

    我正在尝试了解 Android 的 SharedPreferences 我是初学者 并且对此了解不多 我为我的应用程序首选项实现了这个课程 public class Preferences public static final Strin
  • 数组获取比其他值大的最小值

    我有以下数组 float arr 0 0 1f 0 0 1f 0 0 2f 选择大于的最小值的最优雅的方法是什么0或者比其他值大 我尝试过使用Min and Select From OrderBy First 但直到现在还没有运气 使用LI
  • linux perf record:计数(-c)和频率(-F)选项之间的差异

    我试图了解 c 和 F 选项性能记录确实如此 但我无法解释我所看到的 我正在运行这些命令 perf record a F
  • AS3 设置 Sprite 容器的宽度和高度

    好吧 我对这个问题感到困惑 我知道这似乎是一个很简单的问题 我不明白为什么我无法弄清楚 但我仍然无法解决 我几乎放弃了 问题是这样的 我有一个精灵容器 它应该保存一堆视频的缩略图 我可以用所有视频和整个作品填充容器 但显然如果我添加一堆视频