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

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

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

Регистрация: Mar 2009
Сообщений: 49
По умолчанию attachMovie и затем запуск?

Добрый день!.

Как добавить клип на сцену и затем запустить его ?

Код AS1/AS2:
on(press) //по нажатию добавляем клип
{
	if( flag_con==true)
	{
		if(_root.but.attachMovie("con", "contakts1", this.getNextHighestDepth(), {_x:100, _y:100}))
		{
		_root.but.contakts1.gotoAndPlay(3);
		flag_con=false;
	}
	}
	else
	{
		trace("buzy");
 }
 
}
Так не работает, клип добавляет но запускает его не успевает?

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

Регистрация: Nov 2007
Сообщений: 1,724
Код AS1/AS2:
var flag:Boolean = true;
but1.onPress = function():Void {
     if (flag) {
         mc = _root.but.attachMovie("con", "contakts1", this.getNextHighestDepth(), {_x:100, _y:100})
         mc.gotoAndPlay(3);
         flag = false;
     } else {
        trace("buzy");
     }
}

Старый 06.08.2009, 19:36
  № 3  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Присоединяюсь к вопросу. Этот attachMovie вообще какой-то неуловимый Джо(.
Пока в таких случаях пользуюсь чем-то вроде:
Код AS1/AS2:
interval=10;//время в милисекундах (по ситуации и вкусу)
idd=setInterval(
function () {
if(_root.but.contakts1 != undefined){
clearInterval(idd); 
_root.but.contakts1.gotoAndPlay(3);
flag_con=false;
}
}
,interval);
Поэтому тоже не прочь узнать граммотное решение

to ZIK68:
дело не в том, что код записан не "по-научному", а в том, что команда "mc.gotoAndPlay(3);" происходит раньше чем выполняется attachMovie(), хоть мне кто-то и говорил что аттач - последовательная процедура.


Последний раз редактировалось Xero201; 06.08.2009 в 19:41.
Старый 06.08.2009, 19:49
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 4  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
протестил свой код - все работает отлично.

Старый 06.08.2009, 20:23
  № 5  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Цитата:
Сообщение от ZIK68 Посмотреть сообщение
протестил свой код - все работает отлично.
Хм..
Ну если не затруднит, то протестируй, пожалуйста и мой пример.
Есть клип (clip_mc) с одним кадром. В этом кадре есть переменная (id=1).
Сразу после добавления клипа (attachMovie), производиться попытка считать это самое id = выводит undefined. Когда тоже самое делается при нажатии на клип - все хорошо.
В чем дело?
Вложения
Тип файла: rar example.rar (4.2 Кб, 146 просмотров)

Старый 06.08.2009, 20:40
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 6  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
Ну... у меня таких проблем не бывает, потому что я никогда не пишу переменные в клипах, а задаю их на корневой диаграмме.
то есть так:
Код AS1/AS2:
mc = _root.attachMovie("clip_mc","clip_mc",100);
mc.id = 1
trace("Сразу после attachMovie() > "+mc.id)
clip_mc.onPress = function(){trace("По нажатию на клип > "+clip_mc.id);}
безупречно работает.

ну, а в твоем случае я сделал так:
Код AS1/AS2:
mc = _root.attachMovie("clip_mc","clip_mc",100);
mc.onEnterFrame = function () {
	if(this.id != undefined) {
		trace("Сразу после attachMovie() > "+mc.id)
		delete this.onEnterFrame;
	}
}
clip_mc.onPress = function(){trace("По нажатию на клип > "+clip_mc.id);}
это будет быстрее твоих setInterval'ов

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

Регистрация: Mar 2009
Сообщений: 49
Спасибо , надо начинать писать аккуратнее, идея с таймером работает, вопрос решен.

Старый 06.08.2009, 21:21
  № 8  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Точняк, спасибо)
Твои действия хороши если это один кадр и одна переменная.
А как быть, если в клипе например 100 кадров и в каждом из них по 10 переменных (типо таблицы Менделеева)? Конечно, можно скопировать все эти переменные в ассоциативный массив, но тогда его надо будет менять каждый раз, когда поменяются переменные в кадрах клипа. И если, например, чел, который делает этот клип, заметит опечатки, исправит и никому ничего не скажет, то значения массива будут неверными, а постоянно перепроверять тоже не интересно(((

Старый 06.08.2009, 21:40
Zik. вне форума Посмотреть профиль Отправить личное сообщение для Zik. Найти все сообщения от Zik.
  № 9  
Ответить с цитированием
Zik.
 
Аватар для Zik.

Регистрация: Nov 2007
Сообщений: 1,724
а что мешает брать эти значения из массива и вставлять в таблицу?
тогда ничего перепроверять не надо
еще, на мой взгляд, объявлять перменные в клипе не рационально.
лучше прописывать свойства этому клипу, как я сделал в первом коде
Код AS1/AS2:
mc.id = 1;


Последний раз редактировалось Zik.; 06.08.2009 в 21:42.
Старый 06.08.2009, 22:01
  № 10  
Ответить с цитированием
Xero201
Guest

Сообщений: n/a
Ну да, можно. Но это если так делать изначально. А если это большой (но кривой) проект, где таблица используется во многих местах, а не в одном мувике. То придеться много чего менять, а так же уговаривать всех это делать. Конечно, разработчики флэша не обязаны давать инструменты для кривых методов, но ведь переменные в клипах могут, наверное, располагаться и по умесному поводу, а раз так, нужно знать когда они проинициализируются при аттаче.
ЗЫ.
А разве свойство клипа и переменная внутри него не одно и тоже? Вызываются по крайней мере одинаково.

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

Теги
клип , ожидание , последовательность

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

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


 


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


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