Я пытаюсь создать простое меню в AS3. Есть спрайт под названием startButton
, который при нажатии вызывает function
startGame
, и все! Но, не так просто. Я использую flashdevelop IDE, поэтому я пытаюсь позвонить loader
, чтобы получить файл изображения .png
для spite
startButton
. Но это не сработает. Нет сообщений об ошибках, отладчик просто не отвечает. Любая помощь? Вот код для обоих файловОтладчик AS3 перестает отвечать при попытке загрузить изображение в спрайт с помощью Loader
Основной код:
package {
//Other Files
import Menu;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.ui.Mouse;
public class Main extends Sprite {
//Game values
public static var gameWidth:int = 750;
public static var gameHeight:int = 750;
public function Main() {
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
addChild(Menu.startButton);
Menu.startButton.addEventListener(MouseEvent.CLICK, startGame);
stage.addEventListener(Event.ENTER_FRAME, update);
}
private function init(e:Event = null):void {
removeEventListener(Event.ADDED_TO_STAGE, init);
// entry point
}
//Function starts game
public function startGame(evt:MouseEvent):void {
removeChild(Menu.startButton);
}
//Updates every 60 seconds
public function update():void {
trace("Updated");
}
}
}
И код меню изображения:
package {
//Other files
import Main;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLRequest;
public class Menu extends Sprite {
public static function imageLoaded():void {
startButton.addChild(loader);
//initizlize values for startButton Bitmap
startButton.x = (Main.gameWidth/2) - (startButton.width/2);
startButton.y = (Main.gameHeight/2) - (startButton.height/2);
}
//create startButton Bitmap
public static var startButton:Sprite = new Sprite();
public static var loader:Loader = new Loader();
loader.load(new URLRequest("lib/menustartbutton.png"));
loader.addEventListener(Event.COMPLETE, imageLoaded);
}
}
Кстати, я жду загрузчиком, чтобы успешно загрузить изображение, прежде чем работать с это, на случай, если изображение занимает больше времени, и оно рисует ошибки.
Поместите скобки вокруг блоков 'if'-'else'. – Brian
Во-первых, по умолчанию они не должны быть скобками для этих конкретных утверждений. Два, отлично, если функция оператора if не имеет скобок, это не вызовет ошибок. Это даже не обязательно считается лучше. Пожалуйста, комментарий только в том случае, если это полезно для моей проблемы. –
Более склонны к ошибкам опустить фигурные скобки. Может быть, завтра вам нужно добавить второго слушателя событий в случае 'else' - oops, вы забыли добавить фигурные скобки; теперь он добавляется, нужно ли это или нет. Что касается не комментирования ... вы тот, кто разместил вашу проблему на общедоступном веб-сайте. Не жалуйтесь, что ответы вам не по душе. – Brian