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

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

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

Регистрация: Aug 2007
Сообщений: 28
По умолчанию Как реализовать событие на "виртуальном" movieClip?

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

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

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

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

Старый 21.08.2007, 09:35
Vitowd вне форума Посмотреть профиль Отправить личное сообщение для Vitowd Найти все сообщения от Vitowd
  № 3  
Ответить с цитированием
Vitowd

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


Последний раз редактировалось Vitowd; 21.08.2007 в 09:39.
Старый 21.08.2007, 10:09
Bar_Duck13 вне форума Посмотреть профиль Отправить личное сообщение для Bar_Duck13 Найти все сообщения от Bar_Duck13
  № 4  
Ответить с цитированием
Bar_Duck13
 
Аватар для Bar_Duck13

Регистрация: Oct 2005
Сообщений: 99
onClipEvent - потихоньку отмирает. onClipEvent(load) аналог onLoad и т.д.
__________________
Достали проблемы - прими лекарство "Факитол".

Старый 21.08.2007, 10:16
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 5  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
onClipEvent умер уже лет пять назад.

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

Регистрация: Oct 2005
Сообщений: 99
Тем более. :-)
__________________
Достали проблемы - прими лекарство "Факитол".

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

Регистрация: Aug 2007
Сообщений: 28
Итак, в документе 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 - внутри логического блока или вне его.
Буду вельми признателен, уважаемые господа, за поучения и за перст в ошибки указующий.


Последний раз редактировалось Vitowd; 21.08.2007 в 14:33.
Старый 21.08.2007, 14:33
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 8  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
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-ую версию и ниже. Это все даже не вчерашний, а позавчерашний день.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 21.08.2007, 16:06
Vitowd вне форума Посмотреть профиль Отправить личное сообщение для Vitowd Найти все сообщения от Vitowd
  № 9  
Ответить с цитированием
Vitowd

Регистрация: Aug 2007
Сообщений: 28
Уважаемому господину 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!


Последний раз редактировалось Vitowd; 21.08.2007 в 16:31.
Старый 21.08.2007, 16:46
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Речь шла о методах семилетней давности: ifFrameLoaded, loadMovie (глобальный) и т.п., а не о конкретно AS1.

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

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

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


 


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


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