Просмотр полной версии : attachMovie и затем запуск?
Добрый день!.
Как добавить клип на сцену и затем запустить его ?
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");
}
}
Так не работает, клип добавляет но запускает его не успевает?
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");
}
}
Присоединяюсь к вопросу. Этот attachMovie вообще какой-то неуловимый Джо(.
Пока в таких случаях пользуюсь чем-то вроде:
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(), хоть мне кто-то и говорил что аттач - последовательная процедура.
протестил свой код - все работает отлично.
протестил свой код - все работает отлично.
Хм..
Ну если не затруднит, то протестируй, пожалуйста и мой пример.
Есть клип (clip_mc) с одним кадром. В этом кадре есть переменная (id=1).
Сразу после добавления клипа (attachMovie), производиться попытка считать это самое id = выводит undefined. Когда тоже самое делается при нажатии на клип - все хорошо.
В чем дело?
Ну... у меня таких проблем не бывает, потому что я никогда не пишу переменные в клипах, а задаю их на корневой диаграмме.
то есть так:
mc = _root.attachMovie("clip_mc","clip_mc",100);
mc.id = 1
trace("Сразу после attachMovie() > "+mc.id)
clip_mc.onPress = function(){trace("По нажатию на клип > "+clip_mc.id);}
безупречно работает.
ну, а в твоем случае я сделал так:
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'ов
Спасибо , надо начинать писать аккуратнее, идея с таймером работает, вопрос решен.
Точняк, спасибо)
Твои действия хороши если это один кадр и одна переменная.
А как быть, если в клипе например 100 кадров и в каждом из них по 10 переменных (типо таблицы Менделеева)? Конечно, можно скопировать все эти переменные в ассоциативный массив, но тогда его надо будет менять каждый раз, когда поменяются переменные в кадрах клипа. И если, например, чел, который делает этот клип, заметит опечатки, исправит и никому ничего не скажет, то значения массива будут неверными, а постоянно перепроверять тоже не интересно(((
а что мешает брать эти значения из массива и вставлять в таблицу?
тогда ничего перепроверять не надо
еще, на мой взгляд, объявлять перменные в клипе не рационально.
лучше прописывать свойства этому клипу, как я сделал в первом коде
mc.id = 1;
Ну да, можно. Но это если так делать изначально. А если это большой (но кривой) проект, где таблица используется во многих местах, а не в одном мувике. То придеться много чего менять, а так же уговаривать всех это делать. Конечно, разработчики флэша не обязаны давать инструменты для кривых методов, но ведь переменные в клипах могут, наверное, располагаться и по умесному поводу, а раз так, нужно знать когда они проинициализируются при аттаче.
ЗЫ.
А разве свойство клипа и переменная внутри него не одно и тоже? Вызываются по крайней мере одинаково.
А разве свойство клипа и переменная внутри него не одно и тоже? Вызываются по крайней мере одинаково.
Вы правы - одно и тоже.
Поэтому я и пишу, что лучше прописывать свойства на корневой диаграмме, так как разницы нет, а вызывать после аттача можно.
О-о, в AS 3.0 ваще нет attachMovie! Туда ему и дорога)))
в AS 3.0 куда лучше с этим.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.