我有一个程序,我将它放在FlashDevelop中,它将有几个不同的窗口,每个窗口侧面有一些按钮,允许用户从一个窗口转到另一个窗口。窗口不会同时打开 - 基本上需要重新绘制背景并添加或删除功能。窗户侧面的按钮将是相同的。
现在一切正常,除了从按钮的左上角绘制位图而不是窗口的左上角。我在一个月前问了这个问题并得到了与场景相关的答案。我一直很忙,没有多少时间与之合作,但这似乎不起作用。如果我理解正确,场景只是时间轴的不同部分。我没有使用Flash,否则这将很简单 - goToAndPlay。
我在这里缺少什么?我应该使用Stage或Document类吗?代码在下面,此时我只是绘制一个黑色矩形,但是当我做位图时,情况也是一样的:
来自Main:
songbutton = new SongButton;
addChild(songbutton);
songbutton.x = 680;
songbutton.y = 100;
来自SongButton:
public class SongButton extends MusicPlay
{
public var songsYellow:Loader;
public var songsWhite:Loader;
public function SongButton(): void
{
songsYellow = new Loader();
songsYellow.load(new URLRequest("images/SongsYellow.jpg"));
songsWhite = new Loader();
songsWhite.load(new URLRequest("images/SongsWhite.jpg"));
addChild(songsWhite);
addEventListener(MouseEvent.MOUSE_OVER, mouseOver);
addEventListener(MouseEvent.MOUSE_OUT, mouseOut);
addEventListener(MouseEvent.MOUSE_UP, mouseUp);
}
private function mouseOver(e:MouseEvent):void {
addChild(songsYellow);
}
private function mouseOut(e:MouseEvent):void {
addChild(songsWhite);
}
private function mouseUp(e:MouseEvent):void {
SetMusicScreen();
}
}
来自MusicPlay:
public function SetMusicScreen():void
{
graphics.beginFill(0x0);
graphics.drawRect(0, 0, 800, 550);
graphics.endFill();
}
答案 0 :(得分:0)
至少在Flash中,您可以通过stage.graphics.beginFill(0x0);
如果由于某种原因,这超出了范围,你也应该能够通过MovieClip(parent).graphics.beginfill(0x0);
到达MovieClip的父级。为了得到更多的父母,你可以“退后一步”{{1} 1}},MovieClip(parent.parent)
等等。
这是否适用于FlashDevelop,我不知道。我认为它会,因为它基于ActionScript 3。
答案 1 :(得分:0)
除了从按钮的左上角绘制位图
因为您正在使用按钮的Graphics对象
public function SetMusicScreen():void
{
graphics.beginFill(0x0);
graphics.drawRect(0, 0, 800, 550);
graphics.endFill();
}
SetMusicScreen
是按钮的方法,graphics
也与按钮相关。你应该改变SetMusicScreen
方法的逻辑,它应该引用正确的Graphics对象。例如,此类方法将更改应用程序的背景颜色:
function SetMusicScreen():void {
//This will change background color of document class
var myRoot: Sprite = Sprite(root);
myRoot.graphics.clear();
myRoot.graphics.beginFill(0);
myRoot.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight); //x,y, width, height
}
您可以放置窗口精灵对象,它会改变颜色,或者您可以在SetMusicScreen
中沿X轴偏移绘图,因此左侧网站按钮下的背景不会改变。
答案 2 :(得分:0)
好的,我找到了办法。可能不是最好的方法,但事实证明我可以在调用类中放置一个addEventListener(MouseEvent.MOUSE_UP,gottaMouseUp),在按钮类中添加一个公共变量,让我知道是否单击了正确的按钮,并且在调用类中使用它来决定单击哪个按钮。我知道这很简单......