gpt4 book ai didi

Flash AS3 - 如果我更改标签,舞台上的按钮不会隐藏 - 错误或遗漏了什么?

转载 作者:行者123 更新时间:2023-12-04 07:04:49 25 4
gpt4 key购买 nike

好的 - 每次都会发生奇怪的问题 - 所以我想我一定是错过了一些非常明显的东西。

如果在 Flash CS3 中我将一个 Button 组件拖到舞台上,并且在 Document Class 中我用 visible = false 隐藏该按钮; - 它工作正常。
但是,如果我将该按钮的标签从默认的“标签”更改为其他任何内容,则该按钮不会变得不可见......

例如。名为 hide_btn 的按钮,文档类 Foo:

包裹 {
导入 flash.display.MovieClip;

公共(public)类 Foo 扩展了 MovieClip{
公共(public)函数 Foo(){
hide_btn.visible = false;//仅当我没有更改按钮标签时才有效!
}
}
}

当我运行电影时,按钮(正确地)不可见......
如果我将标签更改为“LabelX” - 那么按钮仍然存在......

所以如果它是一个错误,肯定有人会注意到这一点,对吧?
那么 - 有人可以解释发生了什么吗?

干杯。

PS。 trace(hide_btn.visible) 的痕迹说是假的,即使它显然不是......

最佳答案

时髦的一个!

没想到:)

我有一个类似的问题......不完全是。我试图在影片剪辑的后一帧中访问一些剪辑,就像在 as2 中一样,但除非播放头转到该帧,否则在 as3 中,剪辑为空。

解决方法是强制舞台无效并访问 RENDER 事件中的对象(我认为这发生在所有东西都被渲染到舞台上之前,但是在你所有的东西都准备好/可以访问之后)

我的猜测是,由于您在“参数”选项卡中设置了标签,该标签在 Document 类构造函数之后进行评估,因此按钮组件失效中可能有一些东西告诉它可见。完成所有操作后将其设置为不可见会更安全。

这是更新的代码...著名的遗言:'它对我有用':)

   package {   
import flash.display.MovieClip;
import flash.events.Event;
public class Foo extends MovieClip{
public function Foo(){
//stage.invalidate() forces the stage to re-evaluate itself
stage.invalidate();
stage.addEventListener(Event.RENDER, stageRenderHandler);
}
//the RENDER events gets fired when invalidation is done
//and everything is ready to be displayed/rendered
private function stageRenderHandler(event:Event):void{
hide_btn.visible = false; // Works
}
}
}

关于Flash AS3 - 如果我更改标签,舞台上的按钮不会隐藏 - 错误或遗漏了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1273724/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com