Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Как реализовать событие на "виртуальном" movieClip? (http://www.flasher.ru/forum/showthread.php?t=100156)

Vitowd 21.08.2007 08:56

Как реализовать событие на "виртуальном" movieClip?
 
Вопрос касается синтаксиса.
Если методом createEmptyMovieClip() создан "виртуальный" movieClip, поименован, отпозиционирован, смасштабирован, загружен данными и т.д., ТО,
  1. Как такому "виртуальному" movieClip'у присоединить событие onClipEvent()?
    Уточняю: Как должна выглядеть строка кода в кадре TimeLine, содержащем this.createEmptyMovieClip("myMC", 2), если этому мувиклипу "myMC" необходимо присодинить метод с событием, например, onClipEvent(mouseUp)?
  2. Как должна выглядеть строка кода в этом кадре TimeLine, если в "виртуальном" мувиклипе "myMC" необходимо писать некоторый произвольный код (по аналогии с "реальным", лежащим на TimeLine во FLA-документе)?

" - А если ..?
- Нет!
- А может..?
- Попробуйте!"

Bar_Duck13 21.08.2007 09:24

Код:

_root.myMC.onMouseUp = function(){}
ну если у тебя "myMC" здесь находится. И вообще, зачем писать код в кадрах этого клипа? Пиши всё в основном кадре, делай код централизованным. Так проще для отладки.

Vitowd 21.08.2007 09:35

Т.е. метод onClipEvent() к такому клипу применить нельзя? Принципиально? Т.е. форма записи не предусмотрена?
И на событие "по загрузке" (Load) надо писать _root.myMC.Load = function(){}?

Bar_Duck13 21.08.2007 10:09

onClipEvent - потихоньку отмирает. onClipEvent(load) аналог onLoad и т.д.

etc 21.08.2007 10:16

onClipEvent умер уже лет пять назад.

Bar_Duck13 21.08.2007 10:26

Тем более. :-)

Vitowd 21.08.2007 14:08

Итак, в документе 1 пустой кадр.

Код:

ifFrameLoaded (_currentframe) {
  this.createEmptyMovieClip("myMC", 10);    //"виртуальный" клип: успешно
  loadMovie("Pics/konti1.swf", "myMC");    //загрузка клипа:    успешно
 myMC._x = (_root._width - myMC._width) / 2; //позиционирование:  успешно
 myMC._Y = 10;
 _root.myMC.onLoad = function(){
        _root.myMC.stop()  //остановка загруженного клипа: ОТКАЗ
        }
 }

В то время, как для реального клипа с загруженным "Pics/konti1.swf":
Код:

onClipEvent (load) {this.stop()} //остановка загруженного клипа: УСПЕШНО
Мувиклип не останавливается вне зависимости от того, где находится функция _root.myMC.onLoad - внутри логического блока или вне его.
Буду вельми признателен, уважаемые господа, за поучения и за перст в ошибки указующий.

iNils 21.08.2007 14:33

1. onLoad работать не будет, только в классе AS2.
2. Когда код писали на клипе, и грузили в клип другой swf, код сохранялся. Когда код пишут в клипе, то код после начала загрузке удаляется (это кажется неудобным, но на самом деле это не так). Поэтому сначала надо дождаться загрузки. Для это используется MovieClipLoader.
Код:

this.createEmptyMovieClip ("myMC", 10);
myMC._x = (_root._width - vid._width) / 2;
myMC._y = 10;
mcl = new MovieClipLoader ();
mcl.addListener (this);
mcl.loadClip ("Pics/konti1.swf", myMC);
this.onLoadComplete = function () {
        _root.myMC.stop ();
};

3. Прекращайте использовать старые методы типа ifFrameLoaded, глобальный loadMovie и код на клипах, не пользуйтесь исходниками написаными под 5-ую версию и ниже. Это все даже не вчерашний, а позавчерашний день.

Vitowd 21.08.2007 16:06

Уважаемому господину iNils
  1. Это как раз то, что я и пытаюсь сделать. Перейти с AS1 на вчерашний день, то биш на AS2.
    Наверное, это похоже на переход с QuickBasic'a или TP на 32-х битный язык, вроде C++
  2. По п.3.
    Не во гнев будет сказано, милостивейший государь iNils.
    • То, что в AS1 занимает 2 строчки, то для достижения того же результата в AS2 необходимо 5-6 строк. Как всегда и бывает в подобных случаях.
      Церемониальные правила, по при прибытии ко дво_root - классов, их детей, с указанием родословной всех предков и их дочерей, методов их прототипов, конструкторов их правнуков ... напоминают "драконий покер" Асприна.
      А вседа ли это целесообразно и оправдано?
      Может быть, всё же, есть и останутся задачи, вполне удовлетворяемые AS1 ?
      На момент сей, ощущение от AS1 - простота, прозрачность, комфортность.
    • Баннерообменники, чаще всего, желают видеть баннера, всё-таки в 5-й версии.
    • Я понимаю, что AS2, и тем паче AS3, дают больше власти над объектом. И посему имею желание заползти на ступеньку выше. Ибо, даже эта моя задача с "виртуальными клипами" сулит интересную перспективу с рекламой и её размещением.
      Да, я не распробовал еще AS2, но Ваша категоричность в отношении AS1 - действительно ли имеет такое серьёзное основание?
    • Хочу избавиться от всех сомнений!

Спасибо!
Ваш покорный слуга Vitowd!

etc 21.08.2007 16:46

Речь шла о методах семилетней давности: ifFrameLoaded, loadMovie (глобальный) и т.п., а не о конкретно AS1.


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

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