Среда, 20 Ноября 2024, 12:18

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Как сделать кликабельную кнопку?
MadMaxДата: Пятница, 29 Июня 2012, 23:42 | Сообщение # 1
\o
Сейчас нет на сайте
Как сделать кнопку в flashpunk?
саму кнопку я уже сделал, но как сделать так, чтобы если нажалась то загружался новый мир?
MainMenu.as
Code
package {
   import entity.Button;
   import flash.display.MovieClip;
   import flash.ui.MouseCursor;
   import net.flashpunk.Entity;
   import flashpunk.Button;
   import net.flashpunk.World;
   import net.flashpunk.FP;
   import net.flashpunk.graphics.Image;
   import net.flashpunk.utils.Input;
   import net.flashpunk.utils.Key;
   import net.flashpunk.graphics.Text;
   import flash.events.MouseEvent;
     

   public class MainMenu extends World {
    private var buttonNewGame:Button; //переменная для кнопки
    private var graphic:Image;   
    [Embed(source='assets/back.png')] //фон
                  private const MenuFon:Class;
                  private var xyButton:Number = (FP.width - 150) / 2; // координата x для кнопок
       
                         public function MainMenu() {
     graphic = new Image(MenuFon);

     addGraphic(graphic, 0, 0, 0) //добавляем фон
       
     buttonNewGame = new Button("New Game", "newGame", xyButton, FP.height - 200 ); //создаем кнопку
     addList (buttonNewGame);
    }

    private function addListeners():void { //попытался добавить слушатели
     buttonNewGame.addEventListener(MouseEvent.CLICK, handler);
    }
    override public function update():void {

       
     if (Input.check(Key.X)){ //сейчас стоит переход при помощи Х, а хотелось бы на кнопку
      FP.world = new Level();
     }
       
   }
   }


Button.as
Code
package  {
import net.flashpunk.Entity;
import net.flashpunk.graphics.Graphiclist;
import net.flashpunk.graphics.Spritemap;
import net.flashpunk.graphics.Text;
import net.flashpunk.utils.Input;

public class Button extends Entity {
   public var sprite:Spritemap = new Spritemap(GFX.Button, 159, 38);
   public var txt:Text;
   public var namee:String;

   public function Button(text:String, namee:String, xx:Number, yy:Number, spriteMap:Spritemap = null, color:Number = 0xFFFFFF, size:int = 18) {
    //в конструктор передается текст кнопки, ее имя, начальные координаты, спрайт кнопки, цвет текста и размер
    this.name = namee;
      
    if (spriteMap) sprite = spriteMap;
      
    txt = new Text(text, 0,10,150);
    txt.color = color;
    txt.size = size;
    txt.x = (sprite.width - txt.width) / 2;
    txt.y = (sprite.height - txt.height) / 2;
      
    var content:Graphiclist = new Graphiclist(sprite, txt);
    graphic = content;
      
    x = xx;
    y = yy;
      
    type = "button";
    setHitbox(sprite.width, sprite.height);
      
    createAnimation();
   }
     
   private function createAnimation():void {
    sprite.add("mouseOver", [1], 5, false); //режим спрайт на два кадра
    sprite.add("mouseOut", [0], 5, false); //один показывается когда мышка находится над кнопкой, другой когда не находится
   }
}
}


пишу по урокам, AS только 2 день учу как и FlashPunk, пытался добавить слушатели, но ошибка при запуске
Quote
Error: Call to a possibly undefined method addEventListener through a reference with static type Button.
buttonNewGame.addEventListener(MouseEvent.CLICK, handler);


помогите cry


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]




Сообщение отредактировал MadMax - Пятница, 29 Июня 2012, 23:43
anton-garДата: Пятница, 29 Июня 2012, 23:50 | Сообщение # 2
WEBmaster
Сейчас нет на сайте
Quote (MadMax)
private function addListeners():void { //попытался добавить слушатели
buttonNewGame.addEventListener(MouseEvent.CLICK, handler);
}


Что это?

Надо так:
Code
stage.addEventListener(MouseEvent.CLICK, name_fk);  
function name_fk(event:MouseEvent):void {

//что будет происходить...

}


MadMaxДата: Суббота, 30 Июня 2012, 13:14 | Сообщение # 3
\o
Сейчас нет на сайте
Code
buttonNewGame.addEventListener(MouseEvent.CLICK, name_fk);     
function name_fk(event:MouseEvent):void {    

FP.world = new Level;

}


вот так сделал. ошибка
Quote
Error: Call to a possibly undefined method addEventListener through a reference with static type Button.
buttonNewGame.addEventListener(MouseEvent.CLICK, name_fk);



Добавлено (30.06.2012, 00:28)
---------------------------------------------
buttonNewGame это кнопка которую я добавил

buttonNewGame = new Button("New Game", "newGame", xyButton, FP.height - 200 ); //создаем кнопки

Добавлено (30.06.2012, 06:22)
---------------------------------------------
помогите

Добавлено (30.06.2012, 13:14)
---------------------------------------------
что никто не знает?

Добавлено (30.06.2012, 13:14)
---------------------------------------------
вроде сам сделал. скачал старую версию флешпанка, там есть класс Button


[Gamiron #10] Prison Break
[2D] Revenge [iOS, Android]




Сообщение отредактировал MadMax - Суббота, 30 Июня 2012, 06:24
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг