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

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

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

Регистрация: Sep 2010
Адрес: Красноярск
Сообщений: 217
Отправить сообщение для Lyso с помощью Skype™
По умолчанию Обращение к Main из созданного объекта

Допустим у меня есть Main есть такой код:
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	/**
	 * ...
	 * @author LysoSutriN
	 */
	public class Main extends Sprite 
	{
		public var s:uint = 10;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			var w:Window = new Window();
		}
 
		public function test():void
		{
			trace('Функция в Main');
		}
	}
 
}
Вот код класса Window:
Код AS3:
package  
{
	import flash.display.Sprite;
 
	/**
	 * ...
	 * @author LysoSutriN
	 */
	public final class Window extends Sprite 
	{
 
		public function Window() 
		{
 
		}
 
	}
 
}
Мне нужно из Window вызвать функцию test и получить переменную s. Как это можно сделать? Передавать функцию и переменную в качестве параметра, думаю, глупо.
__________________
Humanity.push(new Man());

Старый 08.12.2011, 09:12
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 2  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	/**
	 * ...
	 * @author LysoSutriN
	 */
	public class Main extends Sprite 
	{
		public var s:uint = 10;
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			var w:Window = new Window(this);
		}
 
		public function test():void
		{
			trace('Функция в Main');
		}
	}
 
}
Код AS3:
package  
{
	import flash.display.Sprite;
 
	/**
	 * ...
	 * @author LysoSutriN
	 */
	public final class Window extends Sprite 
	{
 
		public function Window(main:Main) 
		{
                                 main.test();
                                 trace(main.s);
		}
 
	}
 
}
Вообще, все зависит от задач. Конкретно в этом случае лучше передавать Main в качестве параметра.
Но можно и через сеттер организовать


Последний раз редактировалось goodguy; 08.12.2011 в 09:19.
Старый 08.12.2011, 09:23
Dukobpa3 вне форума Посмотреть профиль Отправить личное сообщение для Dukobpa3 Найти все сообщения от Dukobpa3
  № 3  
Ответить с цитированием
Dukobpa3
 
Аватар для Dukobpa3

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Конкретно в этом случае, как и во всех остальных, лучше подумать а нужно ли пытаться мейном управлять из какого-то там окна.
События никто не отменял. И есть куча вариантов чтоб этого избежать. Не ок это из подчиненного класса дергать управляющий.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 08.12.2011, 11:41
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 4  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Я думаю вопрос был общий, а не конкретно для главного класса во всех случаях. Но в общем да, согласен.

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

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

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


 


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


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