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

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

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

Регистрация: Nov 2007
Сообщений: 25
По умолчанию Доступ к объектам в разных фреймах

Создал я Document class, добавил мувик в первый фрейм, всё отлично, доступ к нему из Document class есть по name.
Потом перешёл на следуйщий фрейм и добавил ещё один мувик, как получить к нему доступ с Document class ?

Старый 09.02.2008, 12:13
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 2  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
точно так же как и в первом кадре.

Старый 09.02.2008, 13:52
Galleon вне форума Посмотреть профиль Отправить личное сообщение для Galleon Найти все сообщения от Galleon
  № 3  
Ответить с цитированием
Galleon

Регистрация: Nov 2007
Сообщений: 25
BlooDHounD, нет не точно также.
Код:
Код:
package main{
	import flash.display.MovieClip;
	import flash.text.TextField;
	public class test1 extends MovieClip {
		public function test1() {
			trace(tx);
			tx.text = "Hello!";
		}
	}
}
Вывод:
Код:
null
TypeError: Error #1009: Cannot access a property or method of a null object reference.
	at main::test1$iinit()
Текстовое поле tx находится во втором фрейме мувика.

Я перетащил его из библиотеки на таймлайн во второй кадр. Неужели к нему нельзя получить доступ програмно?

Старый 09.02.2008, 14:10
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
А где у вас объявлена переменная-ссылка на TextField?
Для получения доступа к полю, надо перейти на второй кадр, если оно во втором кадре. А так вы пытаетесь выйти на втором этаже, не поднимаясь с первого на второй.
И ещё, кто вас так классы научил называть?

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

Регистрация: Nov 2007
Сообщений: 25
Цитата:
А где у вас объявлена переменная-ссылка на TextField
Во втором фрейме есть текстовое поле, в панеле Properties я задаю ему имя tx. Потом пытаюсь обратится к нему из класа Document class. Если текстовое поле находится в первом фрейме, то проблем нет, а во втором не неходит.
Цитата:
Для получения доступа к полю, надо перейти на второй кадр, если оно во втором кадре. А так вы пытаетесь выйти на втором этаже, не поднимаясь с первого на второй.
Вы имеете ввиду gotoAndStop(2)? А нелзя обратится как-то так: frame2.tx?
Цитата:
И ещё, кто вас так классы научил называть?
Переделаный пример Hello World с вашего форума))

Старый 09.02.2008, 14:43
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 6  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
а у вас она существует до тех пор пока вы не перешли на второй кадр? у меня бы не существовала.

Старый 09.02.2008, 19:40
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от Galleon
Во втором фрейме есть текстовое поле, в панеле Properties я задаю ему имя tx.
Это за вас CS3 объявляет поля, что есть зло. Отключайте автоматическое объявление полей-ссылок на DisplayObject-ы, иначе при использовании любого нормального редактора AS3-кода, у вас сразу же посыпятся ошибки.

Цитата:
Сообщение от Galleon
Вы имеете ввиду gotoAndStop(2)? А нелзя обратится как-то так: frame2.tx?
Нельзя. Вы пытаетесь из одной комнаты достать вещь из другой, не входя в неё.

Цитата:
Сообщение от Galleon
Переделаный пример Hello World с вашего форума))
Значит его надо удалить.

Старый 09.02.2008, 21:01
Galleon вне форума Посмотреть профиль Отправить личное сообщение для Galleon Найти все сообщения от Galleon
  № 8  
Ответить с цитированием
Galleon

Регистрация: Nov 2007
Сообщений: 25
__etc, спасибо!
Работает код:
Код:
package main{
	import flash.display.MovieClip;
	import flash.text.TextField;
	public class TestFrame extends MovieClip {
		public function TestFrame() {
			this.gotoAndStop(2);
			tx.text = "Hello!";
		}
	}
}
Цитата:
Это за вас CS3 объявляет поля, что есть зло. Отключайте автоматическое объявление полей-ссылок на DisplayObject-ы, иначе при использовании любого нормального редактора AS3-кода, у вас сразу же посыпятся ошибки.
А как иначе получить ссылку на DisplayObject ? Если я его добавлял не программно, а перетаскиванием из библиотеки на таймлайн?

Старый 09.02.2008, 21:39
BlooDHounD вне форума Посмотреть профиль Отправить личное сообщение для BlooDHounD Посетить домашнюю страницу BlooDHounD Найти все сообщения от BlooDHounD
  № 9  
Ответить с цитированием
BlooDHounD
стервочка (я мужик)
 
Аватар для BlooDHounD

блогер
Регистрация: Mar 2004
Адрес: Борисов
Сообщений: 3,161
Записей в блоге: 22
getChildByName

Старый 10.02.2008, 02:03
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Цитата:
Сообщение от BlooDHounD
getChildByName
Либо отключить автоматическое объявление переменных и указать их самому. Но нельзя вообще не указывать, что есть минус для CS3.

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

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

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


 


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


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