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

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

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

Регистрация: Jan 2006
Сообщений: 179
По умолчанию Доступ из класса к элементу другого класса

Добавил два класса на сцену

Код AS3:
var main : Class = loaderInfo.applicationDomain.getDefinition("MainClass") as Class;
				addChild(new main());
 
				var upload : Class = loaderInfo.applicationDomain.getDefinition("UploadClass") as Class;
				addChild(new upload());
Скажите как мне допустим из класса UploadClass обратится к элементу из класса MainClass

Старый 20.02.2011, 13:41
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 2  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Через события.
__________________
Griver

Старый 20.02.2011, 14:11
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 3  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
А можно поподробнее...

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

Регистрация: Feb 2011
Сообщений: 3
Взаимно, хотелось бы услышать подробнее. Спасибо

Старый 21.02.2011, 01:00
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 5  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
что-то ни у кого совсем нет идей?

Старый 21.02.2011, 01:31
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 6  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Я думаю большинству лень расписывать основы просто. К тому же у вас достаточно странный код, и скорей всего у вас появится ещё масса вопросов, даже если вам помогут. В книжечки то не побывали заглядывать? Или поиском воспользоватся.

Хотя ещё воскресенье, если лень искать и читать книги, то в понедельник точно кто нибудь ответит.

Старый 21.02.2011, 01:45
expl вне форума Посмотреть профиль Отправить личное сообщение для expl Найти все сообщения от expl
  № 7  
Ответить с цитированием
expl

блогер
Регистрация: Feb 2006
Сообщений: 1,474
Записей в блоге: 3
loaderInfo.sharedEvents где-то на форуме уже мелькало - это общая шина событий для всех загруженных флешек. Внутри классов можно в нее события кидать и на нее подписываться

Хотя... Здесь, может быть, политика позволит передавать события тупо через stage или через parent - он у них общий.

Но с событиями не очень удобно данные получать - можно динамически через общего родителя main и upload общаться:
Код AS3:
public class Main {
    ...
        parent["parentValue"] = 10;
 
 
public class Uploaded {
     parent.addEventListener(Event.CHANGE, onParentChange);
    ...
    function onParentChange(e:Event) {
        trace (parent["parentValue"]);
    }
Явно приводить parent к классу родителя нельзя - иначе он увеличит вес подгружаемой флешки, а если Вы грузите в тот же домен - то еще и будет перетёрт одноименным классом главной флешки
Но можно использовать интерфейсы и приводить к ним

Должны быть и другие способы


Последний раз редактировалось expl; 21.02.2011 в 01:49.
Старый 21.02.2011, 01:51
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 8  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
Могу более подробно описать проблему:
мувик в нем прописан класс com.Preloader,
собственно все остальное разнесено по классам ...
Код AS3:
package com {
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.ProgressEvent;
 
	public class Preloader extends MovieClip {
 
		private static const ENTRY_FRAME : int = 3;
 
		public function Preloader() : void {
			super();
			stop();
			loaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
			loaderInfo.addEventListener(Event.COMPLETE, completeHandler);
		}
 
		private function completeHandler(event : Event) : void {
			play();
			addEventListener(Event.ENTER_FRAME, enterFrameHandler);
		}
 
		private function progressHandler(event : ProgressEvent) : void {
			var loaded:uint = event.bytesLoaded;
			var total:uint = event.bytesTotal;
			var percentLoaded:Number = Math.round((loaded/total) * 100);
			animation.gotoAndStop(percentLoaded);
		}
 
		private function enterFrameHandler(event : Event) : void {
			if (currentFrame >= ENTRY_FRAME) {
				removeEventListener(Event.ENTER_FRAME, enterFrameHandler);
				stop();
 
				var main : Class = loaderInfo.applicationDomain.getDefinition("MainClass") as Class;
				addChild(new main());
 
				var upload : Class = loaderInfo.applicationDomain.getDefinition("UploadClass") as Class;
				addChild(new upload());
			}
		}
	}
}
Выше код прелоадера... на сцену я добавляю два класса mainClass и UploadClass
Примерные структуры классов

Код AS3:
 
package com {
 
public class MainClass extends Sprite {
 
public function MainClass() {
			super();
			addEventListener(Event.ADDED_TO_STAGE, onAddedToStage);
		}
 
		private function onAddedToStage(event:Event):void {
////// собственно тут добавляю элементы на сцену
}
 
}
}
Все так же аналогично и в другом классе
Задача такая, обращаться к мувикам из mainClass и так же что не мало важно, обращаться к переменным, т.е получать данные из mainClass и принимать их в uploadClass

Конечно я могу эти классы совместить, но получится совсем "каша" хотелось по логике разнести эти два класса

Добавлено через 21 минуту
Хотя по сути классы main и upload у меня равноправны


Последний раз редактировалось motoroller; 21.02.2011 в 01:54.
Старый 21.02.2011, 10:00
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 9  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Значит, Вы хотите обращаться откуда угодно к чему угодно. Это противоречит принципам "нормального" проектирования.
В MainClass пускайте событие, ловите его в Preloader (он будет контроллером), и в обработчике решайте, что нужно сделать в UploadClass по этому событию.
__________________
Griver

Старый 21.02.2011, 13:17
motoroller вне форума Посмотреть профиль Отправить личное сообщение для motoroller Найти все сообщения от motoroller
  № 10  
Ответить с цитированием
motoroller

Регистрация: Jan 2006
Сообщений: 179
Нет вообщем, я не хочу откуда куда угодно ... вообщем у меня в upload^
1) должен быть доступ к некоторым переменным из mainClass
2) Доступ к некоторым textField

Добавлено через 31 секунду
А вот с событиями можно, примерчик ...
хотя бы просто на переменную ...

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

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

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


 


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


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