Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.03.2011, 17:09
stathem вне форума Посмотреть профиль Отправить личное сообщение для stathem Найти все сообщения от stathem
  № 1  
Ответить с цитированием
stathem

Регистрация: Mar 2011
Сообщений: 6
По умолчанию как обратится к методу экземпляра?

В этом классе создается экземпляр класса Hero, и по нажатию кнопки нужно обратиться к его методу moov().

Код AS3:
package  game{
	import flash.display.*;
	import flash.events.KeyboardEvent;
	import game.Hero;
 
	public class Game extends MovieClip{
 
		public function Game() {
			var hero:Hero = new Hero();
			addChild(hero);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
		}
		public function key_down(e:KeyboardEvent):void
		{
			trace(e.keyCode);
			hero.moov();
		}
	}
}
Вот класс Hero где находится метод moov().

Код AS3:
package game
{
	import flash.display.MovieClip;
 
	public class Hero extends MovieClip
	{
		public function Hero()
		{
			x = 200;
			y = 300;
			trace("entered");
		}
		public function moov()
		{
			trace("mooved");
		}
	}
}
Выдает ошибку:

1120: Обращение несуществующего свойства hero.

Старый 16.03.2011, 17:25
Jewelz вне форума Посмотреть профиль Отправить личное сообщение для Jewelz Найти все сообщения от Jewelz
  № 2  
Ответить с цитированием
Jewelz
 
Аватар для Jewelz

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
у вас hero - локальная переменная конструктора, вынесите ее в
Код AS3:
private var hero:Hero
а в конструкторе просто создайте его экземпляр:
Код AS3:
hero = new Hero();
__________________
low +

Старый 16.03.2011, 17:26
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 3  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Код AS3:
package  game{
	import flash.display.*;
	import flash.events.KeyboardEvent;
	import game.Hero;
 
	public class Game extends MovieClip{
 
		private var _hero:Hero = new Hero();
 
		public function Game() {
			_hero = new Hero();
			addChild(_hero);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
		}
		public function key_down(e:KeyboardEvent):void
		{
			trace(e.keyCode);
			_hero.moov();
		}
	}
}

Старый 16.03.2011, 17:36
stathem вне форума Посмотреть профиль Отправить личное сообщение для stathem Найти все сообщения от stathem
  № 4  
Ответить с цитированием
stathem

Регистрация: Mar 2011
Сообщений: 6
Спасибо, работает но теперь, когда доходит до hero.moov(); выдает сообщение:
TypeError: Error #1006: moov не является функцией.
at game::Game/key_down()

вот код с этим методом:

Код AS3:
package game
{
	import flash.display.MovieClip;
 
	public class Hero extends MovieClip
	{
		public function Hero()
		{
			x = 200;
			y = 300;
			trace("entered");
		}
		public function moov()
		{
			trace("mooved");
		}
	}
}

Старый 16.03.2011, 18:14
cleptoman вне форума Посмотреть профиль Отправить личное сообщение для cleptoman Найти все сообщения от cleptoman
  № 5  
Ответить с цитированием
cleptoman
 
Аватар для cleptoman

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
ну да, moov является пончиком.)

а покажите весь ваш итоговый код.
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

Старый 16.03.2011, 18:33
stathem вне форума Посмотреть профиль Отправить личное сообщение для stathem Найти все сообщения от stathem
  № 6  
Ответить с цитированием
stathem

Регистрация: Mar 2011
Сообщений: 6
Это и есть весь код.
В классе Game создается экземпляр класса Hero, затем по событию необходимо запустить moov();

Код AS3:
package  game{
	import flash.display.*;
	import flash.events.KeyboardEvent;
	import game.Hero;
 
	public class Game extends MovieClip{
                         private var hero:Hero;
		public function Game() {
			hero = new Hero();
			addChild(hero);
			stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
		}
		public function key_down(e:KeyboardEvent):void
		{
			trace(e.keyCode);
			hero.moov();
		}
	}
}
Код AS3:
package game
{
	import flash.display.MovieClip;
 
	public class Hero extends MovieClip
	{
		public function Hero()
		{
			x = 200;
			y = 300;
			trace("entered");
		}
		public function moov()
		{
			trace("mooved");
		}
	}
}

Создать новую тему Ответ Часовой пояс GMT +4, время: 04:31.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 04:31.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.