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

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

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

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
По умолчанию Сcылка на экземпляр из библиотеки... (помогите с динамическими именами)

Хочу достать символ из библиотеки не прямым обращением к нему, а путем регулярного выражения:

например parent.name обьекта в которого хочу импортировать символ называется:Char_01
в него будет загружен экземпляр Char_01_img

Код AS3:
import flash.display.MovieClip;
var tempName:String=parent.name+"_img";
 
trace(tempName);
var tempMC:MovieClip = flash.display.MovieClip[tempName];
 
var c= new tempMC();
addChild(c);
c.x=20;
c.y=20;
и естессно ниче не работает, вообщем нужна ссылка на обьект, имя которого регулярное выражение состоящее из имени обьекта родителя + "_img"

Старый 24.09.2009, 18:46
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 2  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код AS3:
var ClassReference:Class = getDefinitionByName (tempName) as Class;
var tempMC:MovieClip= new ClassReference ();
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 24.09.2009, 18:48
vave вне форума Посмотреть профиль Отправить личное сообщение для vave Найти все сообщения от vave
  № 3  
Ответить с цитированием
vave

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
о - спс

Старый 24.09.2009, 18:49
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
только импорт flash.utils.getDefinitionByName сделайте
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
вот работающий код:
Код AS3:
import flash.display.*;
import flash.utils.getDefinitionByName;
 
var tempName:String=parent.name+"_img";
var ClassReference:Class=getDefinitionByName(tempName) as Class;
var tempMC:MovieClip = new ClassReference ();
 
//var c= new tempMC();
addChild(tempMC);
tempMC.x=0;
tempMC.y=0;
только он шлепает поверх всех слоев
а как сделать чтобы он кидал в тот слой, из которого вызван?

Старый 24.09.2009, 18:58
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 6  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Слоев не существует. Есть глубины, но для символов, код глубины не имеет.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Nov 2003
Адрес: Spb
Сообщений: 33
Отправить сообщение для vave с помощью ICQ
ок, понял, создал тогда символ , положил в слой, и в нем написал parent.parent.name
Тогда сохраняется иерархия слоев
Еще раз огромное спс

Добавлено через 36 минут
а не подскажешь а как использовать getDefinitionByName на существующие обьекты в сцене вот код

Код AS3:
import flash.events.MouseEvent;
import flash.display.*;
import flash.utils.getDefinitionByName;
 
var cherIcon:String="";
this.D_char_bt.addEventListener(MouseEvent.CLICK,Cl_BT);
 
function Cl_BT(event:MouseEvent):void {
	trace('На позиции:' +this.name);
	cherIcon=this.name;
	var Reg_name=this.name.substr(0,6);
 
 
	for (var i=1; i<4; i++) {
 
	var ClassReference:Class=getDefinitionByName(Reg_name+i) as Class;
// как сослатся на все обьекты  
// Char_01,Char_02,Char_03,Char_04 и задать им alpha=50 ?
	}
	// тут именно этому обьекту восстанавливается альфа а все остальные останутся с alpha =50
	this.alpha=100;
}
Добавлено через 41 минуту
в AS 2 было бы : this[Reg_name+i]._alpha=50

Добавлено через 42 минуты
а в AS3 ненаю

Добавлено через 47 минут
А, все разобрался !
parent[Reg_name+i].alpha=50


Последний раз редактировалось vave; 24.09.2009 в 19:38.
Создать новую тему Ответ Часовой пояс GMT +4, время: 17:16.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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