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

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

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

Регистрация: Apr 2008
Сообщений: 81
По умолчанию Не могу достать имя(глупая ошибка)

Код AS3:
import fl.controls.Label;
 
///Load XML
var myXMLLoader:URLLoader = new URLLoader();
myXMLLoader.load(new URLRequest("1.xml"));
myXMLLoader.addEventListener(Event.COMPLETE, processXML);
 
var myXML:XML;
function processXML (e:Event):void
{
	myXML = new XML(e.target.data);
	createLabel();
} 
 
var myLabel:Label;
 
function createLabel()
{
	var object:XMLList = myXML.TEST;
	for (var t:int=0; t<object.length(); t++) 
	{
		myLabel = new Label();
		myLabel.move(10,t*20);
		myLabel.htmlText = "<u>"+object[t].@title+"</u>";
		myLabel.name = object[t].@title;
		myLabel.addEventListener(MouseEvent.CLICK, moveTo);
		addChild(myLabel);
	}
}
 
function moveTo(e:MouseEvent):void 
{
	var mylab:Label = e.target as Label;
	trace(mylab);
}
mylab - должно быть имя того объекта который я нажал.

Старый 11.06.2009, 01:38
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 2  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
trace(mylab.name);
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 11.06.2009, 01:49
DEN123 вне форума Посмотреть профиль Отправить личное сообщение для DEN123 Найти все сообщения от DEN123
  № 3  
Ответить с цитированием
DEN123

Регистрация: Apr 2008
Сообщений: 81
Код AS3:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
	at test_fla::MainTimeline/moveTo()
проверял уже ,вот такая ошибка

Старый 11.06.2009, 02:00
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 4  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
сорри, сразу не заметил:

Код AS1/AS2:
function moveTo(event:MouseEvent):void {
	var mylab:Label = event.currentTarget as Label;
	trace(mylab.name);
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Apr 2008
Сообщений: 81
эм можешь объяснить почему так? просто у меня тот код в другом месте работал

и сразу.
хотел сделать массив ХМЛ.
а меня обругали

Код AS3:
var myXML:Array;
function processXML (e:Event):void
{
	myXML[0]:XML = new XML(e.target.data);
	createLabel();
}
и вообще мне кажется я не верно делаю, мне надо что бы если ХМЛ один раз загрузился то он остался.


Последний раз редактировалось DEN123; 11.06.2009 в 02:08.
Старый 11.06.2009, 02:14
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Судя по Вашему количеству вопросов на откровенно "нубские" темы, Вы не удосужились почитать ни одного авторитетного источника для начинающих программировать в AS3. Вот мой ответ.

Это упрек только в пользу того, что потерять время на обсуждения на форуме можно гораздо больше, чем занимаясь самообразованием. Следующий Ваш вопрос должен звучать так: "Где я могу прочитать о E4X реализации для AS3, желательно на русском языке?".
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 11.06.2009 в 02:18.
Старый 11.06.2009, 02:20
DEN123 вне форума Посмотреть профиль Отправить личное сообщение для DEN123 Найти все сообщения от DEN123
  № 7  
Ответить с цитированием
DEN123

Регистрация: Apr 2008
Сообщений: 81
эхх ты прав.

Старый 11.06.2009, 02:30
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от DEN123 Посмотреть сообщение
эм можешь объяснить почему так? просто у меня тот код в другом месте работал
разница в event.target и event.currentTarget. разницу легко определить и запомнить.
Слушай сюда. target - это тот, кто инициировал событие. currentTarget - кто событие явно отдиспатчил.
На примере.
Есть

Код AS3:
var sprite:Sprite = new Sprite();
super.addChild(sprite);
var shape:Shape = new Shape();
sprite.addChild(shape);
sprite.addEventListener(MouseEvent.CLICK, this.handler_click);
 
function handler_click(event:Event):void {
   trace(event.target);
   trace(event.currentTarget);
}
Так вот, если ты кликнешь на sprite - то он явно задиспатчит событие MouseEvent.CLICK потомучто мы специально на него и подписали спрайт. а значит, что

trace(event.target); // sprite
trace(event.currentTarget); // sprite

А теперь кликни на его дитё (shape):

trace(event.target); // shape
trace(event.currentTarget); // sprite

Потому что события всплывающие к родителю.

Т. о. в event.currentTarget всегда падает тот, кто явно диспатчит событие (на кого подписали), а в event.target попадает тот, на ком кликнули (кто вызвал событие).

Добавлено через 9 минут
Мой совет, не пожалей денег и времени на покупку этой книги Колина Мука. Он очень хорошо объясняет и достаточно хоршо переведен на русский. Дима Гурский там там был "заведующий редакцией". Поэтому и "достаточно" хорошо. Если бы Нокс - то было бы "прелесть".
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 11.06.2009 в 02:48.
Старый 11.06.2009, 02:46
DEN123 вне форума Посмотреть профиль Отправить личное сообщение для DEN123 Найти все сообщения от DEN123
  № 9  
Ответить с цитированием
DEN123

Регистрация: Apr 2008
Сообщений: 81
Спасибо огромное.
Книга уже лежит.
Времени просто сейчас нету, вот если появляется время сразу лезу в реализацию идеи без теории.

Старый 11.06.2009, 02:54
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 10  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
В книге Мука популярно описаны E4X, namespaces и Event.RENDER. Меня очень просвятило. Правда, вынужден был просто ознакомиться с этими разделами, т. к. прикладных задач на тот час для применения этих технологий не было. Но сейчас периодически обращаюсь, чтобы вспомнить про этот "E4X" и подумать о применении неймспейсов в своих проектах (пока обхожусь нативными).
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 11.06.2009 в 02:57.
Создать новую тему Ответ Часовой пояс GMT +4, время: 12:46.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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