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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 12.03.2011, 21:17
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 1  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
По умолчанию как корректно обратится к методу parent?

есть объект на сцене scroolpane - в нем еще объекты а в них код.
из этого кода надо изменить одно из свойств scroolpane когда идет речь о общих свойствах - длина или позиция
то получается через this.parent
но как только надо обратится к свойству к примеру update или setsize то пишет - обращение к возможно неопределенному методу. каков выход?

говоря проще как обращатся к УНИКАЛЬНЫМ свойствам родительских компонент или к примеру запустить их метод...


Последний раз редактировалось Atarion; 12.03.2011 в 21:30.
Старый 12.03.2011, 21:33
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 2  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
надо из объекта отправить наверх событие, в parent'e его поймать, вытащить из него ссылку на объект (e.target), а из самого объекта - данные, которые и обработать.

Старый 12.03.2011, 21:35
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 3  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
а как наверх событие вообще турнуть то? прямо указать - поймет?

Старый 12.03.2011, 21:45
mikhailk вне форума Посмотреть профиль Отправить личное сообщение для mikhailk Найти все сообщения от mikhailk
  № 4  
Ответить с цитированием
mikhailk
 
Аватар для mikhailk

Регистрация: Nov 2009
Адрес: СПб
Сообщений: 2,236
Код AS3:
package  
{
	import flash.display.*;
	import flash.events.*;
 
	public class MyObject extends Sprite
	{
		public static const CHANGE_PARENT:String = "changeParent";
 
		public var param1:int;
		public var param2:int;
 
		public function MyObject() 
		{
 
		}
 
		public function sendEventToParent() : void
		{
			// задаем параметры, которые потом считаем из парента
			param1 = 1;
			param2 = 2;
 
			// сообщаем паренту, что ему нужно считать параметры в объекте
			dispatchEvent(new Event(CHANGE_PARENT));
		}
 
	}
 
}
Добавлено через 4 минуты
Парент:

Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	public class Main extends Sprite 
	{
		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);
			// entry point
 
			var myObject:MyObject = new MyObject();
			addChild(myObject);
			myObject.addEventListener(MyObject.CHANGE_PARENT, onChangeParent);
			myObject.sendEventToParent();
 
		}
 
		private function onChangeParent(e:Event) : void
		{
			var myObject:MyObject = e.target as MyObject;
			trace(myObject.param1,myObject.param2);
		}
 
	}
 
}

Старый 12.03.2011, 21:55
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 5  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
все ясно. спасибо. попробую

Старый 21.03.2011, 00:04
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 6  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
я пробую - но тут все завязано на то что должно быть package у меня пишет ошибку и публичные переменные и на статик. пишет - что только внутри класса.
а можно как то эти события парента вызывать не объявляя package?

Добавлено через 8 минут
то есть -как использовать этот механизм не обращаясь к этому совершенно нелогичному механизму пакетов - создавая какие то дурацкие внешние файлы as... что за странная логика? есть проект в нем библиотеки в них код - пытаюсь обратится по вышеописанному методу из одного объекта в родитель -а оно требует этого механизма всего - package потому чтоб не хочет ни публичные переменные объявлять ни статические без этого момента.

Старый 21.03.2011, 00:18
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 7  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Вы совсем не в ту степь.
Скопируйте в тему вашу ошибку.
Цитата:
как использовать этот механизм не обращаясь к этому совершенно нелогичному механизму пакетов - создавая какие то дурацкие внешние файлы as...
Так и использовать - не создавая "дурацких файлов". Вы настолько сильно не понимаете того, что делаете - что я даже затрудняюсь понять, что именно вызвало у вас проблему.


Последний раз редактировалось Stargazer; 21.03.2011 в 00:20.
Старый 21.03.2011, 00:25
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 8  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
Атрибут private можно использовать для определений свойств класса. пишет такую ошибку.
код исполняется как "код на объекте" то есть код записанный в первом кадре movieclip в библиотеке.
но я не хочу создавать никакие внешние файлы as! хорошо бы чтобы это был один файл swf какие внешние файлы зачем они?

Старый 21.03.2011, 14:33
Stargazer вне форума Посмотреть профиль Отправить личное сообщение для Stargazer Найти все сообщения от Stargazer
  № 9  
Ответить с цитированием
Stargazer

Регистрация: Nov 2008
Сообщений: 528
Это потому что вы бездумно делаете то, что вам подсказывают. Пример, который вам привели выше, просто иллюстрирует идею, которую вам нужно прочесть, понять и дальше использовать в ваших проектах так, как вам нужно.

(mikhilk-у: названия кастомного события ужасное, я из-за этого 2 раза перечитывал код, чтобы убедиться, что он делает то, что я думаю).

Цитата:
но я не хочу создавать никакие внешние файлы as! хорошо бы чтобы это был один файл swf
as-файлов может быть много, но в итоге, получается один swf.
Цитата:
какие внешние файлы зачем они?
Зачем иметь многокомнатную квартиру?
Лучше, чтобы квартира состояла из 4 стен и входной двери. И строить проще и пользоваться удобнее: не выходя из комнаты можно сразу и спать и есть и мыться и в туалет ходить.

Старый 21.03.2011, 14:48
Atarion вне форума Посмотреть профиль Найти все сообщения от Atarion
  № 10  
Ответить с цитированием
Atarion
Banned
[+6 20.04.11]
[+1 22.08.11]
[+ 31.08.11]

Регистрация: Aug 2010
Сообщений: 196
))))
да. и одежда зачем цветная и рвется. лучше -серые шинели(

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

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

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


 


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


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