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

Вернуться   Форум Flasher.ru > Flash > Общие вопросы о Flash (не затрагивающие ActionScript)

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

Регистрация: Sep 2005
Адрес: Moldova - Chishinau City
Сообщений: 413
Отправить сообщение для vitlance с помощью ICQ
По умолчанию JSFL - Дублирование клипов из библиотеки

Знатоки JSFL..

Такая задача:
Код:
this.createEmptyMovieClip("tile",13);
for (i=1;i<=1000;i++){
  mc_type = random(30);
  tile.attachMovie("ps"+mc_i,"ps"+i,i);
  tile["ps"+i]._x = random(300);
  tile["ps"+i]._y = random(300);
  tile["ps"+i]._rotation = random(360);
}
Помогите плз организовать такое на JSFL
__________________
Code Different

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

Регистрация: Sep 2005
Адрес: Moldova - Chishinau City
Сообщений: 413
Отправить сообщение для vitlance с помощью ICQ
Или подкинте пожалуста хорошую статью по JSFL с примерами..
__________________
Code Different

Старый 11.06.2008, 14:53
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 3  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Код:
if (!fl.getDocumentDOM().library.itemExists("tile")) {
	fl.getDocumentDOM().library.addNewItem("movie clip", "tile");
}
fl.getDocumentDOM().library.editItem ("tile");
for (i = 1; i < 1001; i++){
	obj = {};
	obj.x = (Math.random () * 300) >> 0;
	obj.y = (Math.random () * 300) >> 0;
	angle = Math.random () * 360 * Math.PI / 180;
	fl.getDocumentDOM().library.addItemToDocument (obj, "ps" + (Math.random () * 30) >> 0); 
	fl.getDocumentDOM().selectAll();
	sel = fl.getDocumentDOM().selection[0];
	matrix = sel.matrix;
	matrix.a = Math.cos (angle);
	matrix.b = Math.sin (angle);
	matrix.c = -Math.sin (angle);
	matrix.d = Math.cos (angle);
	sel.matrix = matrix;
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 11.06.2008 в 20:01.
Старый 11.06.2008, 18:14
vitlance вне форума Посмотреть профиль Отправить личное сообщение для vitlance Найти все сообщения от vitlance
  № 4  
Ответить с цитированием
vitlance
 
Аватар для vitlance

Регистрация: Sep 2005
Адрес: Moldova - Chishinau City
Сообщений: 413
Отправить сообщение для vitlance с помощью ICQ
Чего-то то он пишет ошибку:
Код:
At line 14 of file "super.jsfl":
TypeError: sel has no properties
__________________
Code Different

Старый 11.06.2008, 20:00
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 5  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Никаких ошибок не должно быть, проверяйте как скопировали. Тем более в строчке 14 вообще нет sel.
Только строчку
Код:
fl.getDocumentDOM().library.addItemToDocument (obj, "ps" + i);
замените на
Код:
fl.getDocumentDOM().library.addItemToDocument (obj, "ps" + (Math.random () * 30) >> 0);
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Sep 2005
Адрес: Moldova - Chishinau City
Сообщений: 413
Отправить сообщение для vitlance с помощью ICQ
Цитата:
Сообщение от iNils Посмотреть сообщение
Никаких ошибок не должно быть, проверяйте как скопировали. Тем более в строчке 14 вообще нет sel.
[/code]
Я просто добавил там ещё одну переменую type...

Код:
if (!fl.getDocumentDOM().library.itemExists("tile")) {
	fl.getDocumentDOM().library.addNewItem("movie clip", "tile");
}
fl.getDocumentDOM().library.editItem ("tile");
for (i = 1; i < 1001; i++){
	obj = {};
	obj.x = (Math.random () * 300) >> 0;
	obj.y = (Math.random () * 300) >> 0;
	angle = Math.random () * 360 * Math.PI / 180;
	type = (Math.random () * 30) >> 0;
	fl.getDocumentDOM().library.addItemToDocument (obj, "ps" + type); 
	fl.getDocumentDOM().selectAll();
	sel = fl.getDocumentDOM().selection[0];
	matrix = sel.matrix;
	matrix.a = Math.cos (angle);
	matrix.b = Math.sin (angle);
	matrix.c = -Math.sin (angle);
	matrix.d = Math.cos (angle);
	sel.matrix = matrix;
}
несуть, всё равно неработет, и жалуется на эту строчку...
Код:
matrix = sel.matrix;
Код:
TypeError: sel has no properties
__________________
Code Different

Старый 11.06.2008, 23:29
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Понял в чем дело.
Такая ошибка происходит, когда
Код:
fl.getDocumentDOM().library.addItemToDocument (obj, "ps" + type);
не добавляет элемент, поэтому выбирать на сцене нечего и selection[0] равен undefined.
Для работы данного кода, у вас в библиотеке должны быть элементы с именами ps0 .. ps29, именно именами, а не идентификаторами которыми пользуются в attachMovie (это все таки JSFL, а не AS)
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Sep 2005
Адрес: Moldova - Chishinau City
Сообщений: 413
Отправить сообщение для vitlance с помощью ICQ
Всё переименовал... Всё равно выдает ту же ошибку..

Дальше я решил попробывать добавлять определённый клип "ps13"... он всё сдублировал отлично, но самое интересное что в конечном итоге всё равно выдал ту же ошибку..

Значит насколько я понимаю ошибка в:
Код:
fl.getDocumentDOM().library.addItemToDocument (obj, "ps" + (Math.random () * 30) >> 0);
Может к (Math.random () * 30) >> 0 , надо применить что то типа toString()?
__________________
Code Different


Последний раз редактировалось vitlance; 11.06.2008 в 23:55.
Старый 12.06.2008, 00:01
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 9  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Не надо. При тестировании я использовал имена: ps0, ps1, ps2, ps3, ps4 и
Код:
(Math.random () * 5) >> 0
все прекрасно работало. Проверьте еще раз имена, диапазон 0-29, а не 0-30 или 1-30.
Также после строчки fl.getDocumentDOM().library.addItemToDocument вставьте
Код:
fl.trace ("ps" + type);
и посмотрите какое имя вызвает ошибку.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

Регистрация: Sep 2005
Адрес: Moldova - Chishinau City
Сообщений: 413
Отправить сообщение для vitlance с помощью ICQ
Всё я понял, у меня просто был ляп с именами небольшой... Спасибо большое.. Только одна просьба, можите сказать в 2 словах что делает эта часть кода:
Код:
        sel = fl.getDocumentDOM().selection[0];
	matrix = sel.matrix;
	matrix.a = Math.cos (angle);
	matrix.b = Math.sin (angle);
	matrix.c = -Math.sin (angle);
	matrix.d = Math.cos (angle);
	sel.matrix = matrix;
__________________
Code Different

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

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

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


 


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


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