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

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

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

Регистрация: Feb 2012
Сообщений: 1,540
По умолчанию Классы и функции. Обращение к функции через объект.

Я создаю свою библиотеку со всякими полезными классами.
Итак, возник к вопрос:
Как сделать так?:
Код AS3:
obj1.Func(obj2)
Ну вот как в классе узнать, что я обращаюсь к Func через obj1? (Надеюсь, правильно выразился)

Надеюсь на помощь.

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

Регистрация: Sep 2010
Адрес: Ростов-на-Дону
Сообщений: 369
Ссылку передать.

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

Регистрация: Feb 2012
Сообщений: 1,540
Цитата:
Сообщение от Silicium Посмотреть сообщение
Ссылку передать.
Перевод в студию.

Прошу говорить понятней. Может, дать пример.

Старый 12.02.2012, 22:37
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
Ну вот как в классе узнать, что я обращаюсь к Func через obj1?
this же.
__________________
тут я

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

Регистрация: Feb 2012
Сообщений: 1,540
КорДум,
Код AS3:
package  MikroacseAS3Lib.hitObject{
 
	import flash.display.Bitmap;
        import flash.display.BitmapData;
 
	public class hitObject{
 
		public function hitObject() {
			trace(this.name)
		}
 
	}
 
}
Вызов:
Код AS3:
import MikroacseAS3Lib.hitObject.*
 
mc1.hitObject()
Ошибка:
Код:
TypeError: Error #1006: hitObject не является функцией.
	at libtest_fla::MainTimeline/frame1()

Старый 12.02.2012, 22:44
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Потому что это конструктор.
Код AS3:
var mc1:hitObject = new hitObject();
mc1.foo();
Код AS3:
package  MikroacseAS3Lib.hitObject{
	public class hitObject{
 		private var name:String = "shalala";
 
		public function hitObject() {
			trace(this.name)
		}
 
		public function foo():void {
			trace(this);
		}
	}
}
__________________
тут я

Старый 12.02.2012, 22:46
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 7  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
КорДум,
Это я знаю, но вот как сделан, например, hitTestObject?
Код AS3:
mc1.hitTestObject(mc2)
Он же как-то узнает, что мы обращаемся к mc1?

Старый 12.02.2012, 22:58
elder_Nosferatu вне форума Посмотреть профиль Отправить личное сообщение для elder_Nosferatu Найти все сообщения от elder_Nosferatu
  № 8  
Ответить с цитированием
elder_Nosferatu
 
Аватар для elder_Nosferatu

Регистрация: Nov 2010
Адрес: 48° 55'N 24° 42'E GMT +2:00
Сообщений: 399
Записей в блоге: 1
hitTestObject не только функция, но и родной метод для mc1 (метод описан в Классе объекта mc1 или его Классе, который тот наследует)

Добавлено через 1 минуту
Если вы хотите сделать библиотеку независимых функций, то они должны принимать ваши объекты (типа mc1), как параметры

Добавлено через 3 минуты
Пример:
Код AS3:
MyUtils.myHitTestObject(obj1, obj2)


Последний раз редактировалось elder_Nosferatu; 12.02.2012 в 23:01.
Старый 12.02.2012, 23:11
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 9  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
elder_Nosferatu, спасибо.
Именно так я и думал.
Так даже удобней будет.
Сделать несколько функций в одном MyUtils.

Сложные вопросы - простые решения.


Последний раз редактировалось Wolsh; 15.02.2012 в 16:20.
Старый 13.02.2012, 00:19
HardCoder вне форума Посмотреть профиль Отправить личное сообщение для HardCoder Найти все сообщения от HardCoder
  № 10  
Ответить с цитированием
HardCoder
 
Аватар для HardCoder

блогер
Регистрация: Apr 2011
Сообщений: 583
Записей в блоге: 2
Цитата:
Сообщение от MikroAcse Посмотреть сообщение
elder_Nosferatu, спасибо.
Именно так я и думал.
Так даже удобней будет.
Сделать несколько функций в одном MyUtils.
Это в том случае, если класс MyUtils будет одной целенаправленности, например предоставляет методы работы с битмапдатами или др. Но, если в одном классе будет и метод hitObject(), который проверяет столкновения и getFPS(), который проверяет fps - то это плохое решение. Советую создать пакет, например: mikroAcseUtils. В этом пакете другие классы/пакеты и грамотно погруппировать их по целям, для которых они предназначены. Если появится функция, как например, getDefinitionByName(), которую нельзя отнести ни к одному классу, то сделать ее как отдельную функцию в пакете...
__________________
Я мало чего умею, но зато хорошо умею учиться...

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

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

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


 


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


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