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

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

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

Регистрация: Jul 2011
Сообщений: 29
По умолчанию Обращение к клипам созданных через массив

Здравствуйте! Подскажите решение пожалуйста. Я создаю копии клипов(instance) и заношу их в массив в цикле:
Код AS3:
var url_link:Array = [];
var nameofQuiz:Array =[];
var b:Number = 0;
var a:Number = 5;
while (b<a) {
		with (clip2) {
			nameofQuiz.push(new link_mc());//linc_mc лежит в библ.
			nameofQuiz[b].x = 0;
			nameofQuiz[b].y = 0;
                        //имя на текстовом поле
			nameofQuiz[b].btn.label_txt.text = "lalala"+[b];
			addChild(nameofQuiz[b]);		
 
		}
 
TweenMax.to(nameofQuiz[b].btn, 1, {x:0, y:(b*25), ease:Bounce.easeOut});
TweenMax.to(nameofQuiz[b].btn, 1, {scaleX:1, scaleY:1,  delay:0, ease:Expo.easeInOut});
 
	b = b+1;	
	}
Дерево клипов такое: Рут->Clip1->Clip2-тут этот код
Я пробовал и так и сяк обращаться и потратил не 1 час на поиски путей из другого клипа к этим созданным - без результатно((
Я пробовал:
Код AS3:
clip1.clip2.nameofQuiz[0].alpha = 0;
clip1.clip2.nameofQuiz0.alpha = 0;
clip1.clip2.getChildByName("nameofQuiz0").alpha = 0;
Получаю undefined, null или: A term is undefined and has no properties.
at quizv2_BD_3_fla::MainTimeline/frame1() при Трейсе с этими значениями
в as3 столкнулся с жуткой проблемой по управлению клипами из других клипов или уровней. что делать?


Последний раз редактировалось letsrock85; 26.07.2011 в 01:55.
Старый 25.07.2011, 22:29
tsarapkabel вне форума Посмотреть профиль Отправить личное сообщение для tsarapkabel Найти все сообщения от tsarapkabel
  № 2  
Ответить с цитированием
tsarapkabel
 
Аватар для tsarapkabel

Регистрация: Nov 2009
Адрес: в златоглавой
Сообщений: 745
Цитата:
Сообщение от letsrock85 Посмотреть сообщение
Дерево клипов такое: Рут->Clip1->Clip2-тут этот код
Код в "Clip2"?

AddChild в menu_mc идёт.
__________________
Нормально делай — нормально будет!

Старый 25.07.2011, 22:33
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 3  
Ответить с цитированием
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
давненько я такого страшного кода не видел
зачем вы пишете в каком-то далеком внутреннем клипе?
зачем использовать with?
и вообще вопросов тут еще много...
если хотите и дальше извращаться, то прислушайтесь к ответу tsarapkabel
возможно стоит вынести команду addChild за пределы блока with, чтобы заработал первый из испробованных вами способов...
__________________
сайт, vk

Старый 25.07.2011, 23:26
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Код AS3:
nameofQuiz[b].btn.label_txt.text = "lalala"+[b];
Это как так?
__________________
тут я

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

Регистрация: Jul 2011
Сообщений: 29
Цитата:
Сообщение от olexandr Посмотреть сообщение
давненько я такого страшного кода не видел
зачем вы пишете в каком-то далеком внутреннем клипе?
зачем использовать with?
и вообще вопросов тут еще много...
если хотите и дальше извращаться, то прислушайтесь к ответу tsarapkabel
возможно стоит вынести команду addChild за пределы блока with, чтобы заработал первый из испробованных вами способов...
Поправил - wich(clip2) так и было - я просто урезал код и заменил названия сюда для облегчения. все равно даже за пределами wich не находит путь который я указываю по логике:
Код AS3:
(root as MovieClip).clip1.clip2.nameofQuiz[1].alpha = 0;
- пишу в root сцены, т.е. (root as MovieClip) тут и не нужен в принципе - просто для дальнейшего юза.

я еще сапливы программер - пишу как понимаю, главное чтоб работало, а божить рано мне еще.

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

Регистрация: Dec 2008
Сообщений: 305
Записей в блоге: 1
Цитата:
var b:Number = 0;
var a:Number = 5;
while (b<a)
вот такое вот вижу впервые)))

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

Регистрация: Jul 2011
Сообщений: 29
Цитата:
Сообщение от КорДум Посмотреть сообщение
Код AS3:
nameofQuiz[b].btn.label_txt.text = "lalala"+[b];
Это как так?
Тут все просто. nameofQuiz[b] это массив с клипами(а точнее путями к ним) которые берутся из библиотеки, в которых есть клип btn, в котором есть texfield а [b] номер клипа в массиве

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

Регистрация: Dec 2008
Сообщений: 305
Записей в блоге: 1
Цитата:
b = b+1;
b++ - вот так симпатичнее

Код AS3:
nameofQuiz[b].name = "clip"+b;
и обращайтесь к клипу по имени по человечески


Последний раз редактировалось MXPain; 26.07.2011 в 02:12.
Старый 26.07.2011, 02:14
letsrock85 вне форума Посмотреть профиль Отправить личное сообщение для letsrock85 Найти все сообщения от letsrock85
  № 9  
Ответить с цитированием
letsrock85

Регистрация: Jul 2011
Сообщений: 29
Цитата:
Сообщение от MXPain Посмотреть сообщение
вот такое вот вижу впервые)))
да.. упростил так упростил! Вот код:
Код AS3:
var txtColor:Array = [];
var txtLabel:Array = [];
var url_link:Array = [];
var nameofQuiz:Array =[];
var b:Number = 0;
var xmlURLLoader:URLLoader = new URLLoader();
var xmlURLRequest:URLRequest = new URLRequest("http://213.184.x.x./menuData.xml");
xmlURLLoader.load(xmlURLRequest);
xmlURLLoader.addEventListener(Event.COMPLETE ,dataLoaded);
 
function dataLoaded(event:Event):void {
	var theXMLData:XML = new XML(xmlURLLoader.data);
	var a:Number = theXMLData.url_link.length();
	while (b<a) {
		txtColor.push(theXMLData.txtColor[b]);
		txtLabel.push(theXMLData.txtLabel[b]);
		url_link.push(theXMLData.url_link[b]);
		with (menu_mc) {
			//можно так var menuTemplate:MovieClip = new link_mc();
			nameofQuiz.push(new link_mc());//но так проще
			nameofQuiz[b].x = 0;
			nameofQuiz[b].y = b*2;
 
			nameofQuiz[b].btn.scaleX = 0.5;
			nameofQuiz[b].btn.scaleY = 0.5;
			nameofQuiz[b].btn.label_txt.textColor =  txtColor[b];
 
			nameofQuiz[b].btn.label_txt.text =txtLabel[b];
			nameofQuiz[b].urlVar = url_link[b];
 
			addChild(nameofQuiz[b]);
		}		
TweenMax.to(nameofQuiz[b].btn, 1, {x:0, y:(b*25), ease:Bounce.easeOut});
TweenMax.to(nameofQuiz[b].btn, 1, {scaleX:1, scaleY:1,  delay:0, ease:Expo.easeInOut});
 
	b = b+1;	
	var co:DisplayObject = menu_mc.getChildAt(1);
	trace(co);//думал покажет путь :)
	}
 
}
Добавлено через 35 минут
Код AS3:
nameofQuiz[b].name = "clip"+b;
и обращайтесь к клипу по имени по человечески[/quote]
Было бы просто. Пробовал так:
в menu_mc код:
Код AS3:
nameofQuiz[b].name = "clip"+b;
addChild(nameofQuiz[b]);
На главной
Код AS3:
var testMc:MovieClip = quizMenu1.menu_mc.getChildByName("clip0") as MovieClip;
testMc.alpha = 0;
получаю это: TypeError: Error #1009: Cannot access a property or method of a null object reference.
так же не обошлось без попытки:
Код AS3:
quizMenu1.menu_mc.clip0.alpha = 0;
фиг

Старый 26.07.2011, 13:37
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 10  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
Уберите with!
Что вы хотели им сказать?
И что такое menu_mc?
Это мувик в котором вы написали код?
тогда :
Код AS3:
var txtColor:Array = [];
var txtLabel:Array = [];
var url_link:Array = [];
var nameofQuiz:Array =[];
var b:Number = 0;
var xmlURLLoader:URLLoader = new URLLoader();
var xmlURLRequest:URLRequest = new URLRequest("http://213.184.x.x./menuData.xml");
xmlURLLoader.load(xmlURLRequest);
xmlURLLoader.addEventListener(Event.COMPLETE ,dataLoaded);
 
function dataLoaded(event:Event):void {
	var theXMLData:XML = new XML(xmlURLLoader.data);
	var a:Number = theXMLData.url_link.length();
	while (b<a) {
		txtColor.push(theXMLData.txtColor[b]);
		txtLabel.push(theXMLData.txtLabel[b]);
		url_link.push(theXMLData.url_link[b]);
 
			//нужно так 
                        var menuTemplate:MovieClip = new link_mc();
			nameofQuiz.push(menuTemplate);
			menuTemplate.x = 0;
			menuTemplate.y = b*2;
 
			menuTemplate.btn.scaleX = 0.5;
			menuTemplate.btn.scaleY = 0.5;
			menuTemplate.btn.label_txt.textColor =  txtColor[b];
 
			menuTemplate.btn.label_txt.text =txtLabel[b];
			menuTemplate.urlVar = url_link[b];
 
			addChild(menuTemplate);
 
       TweenMax.to(menuTemplate.btn, 1, {x:0, y:(b*25), ease:Bounce.easeOut});
       TweenMax.to(menuTemplate.btn, 1, {scaleX:1, scaleY:1,  delay:0, ease:Expo.easeInOut});
 
	b++;	
	var co:DisplayObject = this.getChildAt(1);
	trace(co);
	}
 
}
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 26.07.2011 в 13:44.
Создать новую тему Ответ Часовой пояс GMT +4, время: 00:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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