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

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

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

Регистрация: Dec 2006
Адрес: Россия, Пермь
Сообщений: 72
Отправить сообщение для Amra Kimmerian с помощью ICQ
По умолчанию Как с помощью скрипта заполнить экран точками (любыми объектами)

Здравствуйте.
Нужно с помощью кода сделать так, чтобы черный фон наполнился звездами. Пусть это будут хоть квадратики.
Алгоритм понимаю: сделать цикл создания или загрузки из библиотеки объекта (graphic или mc) и случаным образом разместить по экрану.
Как это все выглядит в Action Script?
Можно ли объект создать в процессе выполнения скрипта или он должен уже лежать в Library?
Может ли этот объект быть graphic или обязательно movieClip?
У меня есть уже в Library movieClip внутри которого лежит graphic белый квадрат. Пробую через цикл загружать его:
Код:
onClipEvent(load) { for ( i=0; i<200; i++)
					{
	attachMovie ("Star", "Star" + i, i, {_x:100, _y:100});
						};
}
, но ничего на экране не отображается. Пусть они упадут в одно и тоже место, но хоть один то должен быть виден - размер мувика с квадратом 10х10 пикселей.
Подскажите, пожалуйста, что я делаю неправильно.
И еще вопрос: как потом получить доступ к любому из этих образцов Star+i. Ну, например, чтобы поменять координаты.
Заранее благодарен.


Последний раз редактировалось iNils; 21.01.2007 в 16:49.
Старый 20.01.2007, 13:41
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 2  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
1. Код надо обрамлять тегами , в твоем коде в таком виде даже разбираться не хочется.
2. Создаешь мувиклип на сцене, после в нем делаешь маленькую точку, делаешь точку мувиклипом с именем dot. После в начальном мувиклипе (в которым находится мувик dot) в кадре прописываешь:
Код:
var i:Number = 0;
for (i=0; i<400; i++) {
	duplicateMovieClip(dot,"dot"+i,i);
	this["dot"+i]._x = random (1200)
	this["dot"+i]._y = random (1200)
	this["dot"+i]._alpha = random(100);
	this["dot"+i].onEnterFrame = function () {
		this._x -= random(4)/20;
		this._y -= random(4)/20;
	}

}
Главное чтобы фон был черным.
Это чтобы кружащими звездами фон отделать.

Старый 20.01.2007, 14:01
Amra Kimmerian вне форума Посмотреть профиль Отправить личное сообщение для Amra Kimmerian Найти все сообщения от Amra Kimmerian
  № 3  
Ответить с цитированием
Amra Kimmerian

Регистрация: Dec 2006
Адрес: Россия, Пермь
Сообщений: 72
Отправить сообщение для Amra Kimmerian с помощью ICQ
Спасибо за все!
За критику, за метод, за синтаксис! Ну и за проявленную инициативу!
Красиво и величественно движутся звезды!
Спасибо!

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от Amra Kimmerian
Спасибо за все!
За критику, за метод, за синтаксис! Ну и за проявленную инициативу!
Красиво и величественно движутся звезды!
Спасибо!
Чтобы звезды не кончались в коде MINASTIS'а:
Код:
this["dot"+i].onEnterFrame = function () {
if(this._x < -10)this._x = 1200;
else  this._x -= random(4)/20;
if(this._y < -10)this._y = 1200;
  this._y -= random(4)/20;
}
1200 - условное число, поставь другое = размер клипа + ширина звезды

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

Регистрация: Sep 2002
Сообщений: 30,787
MINASTIS, а почему нельзя было сделать ссылку на мувик, а не использовать прямой доступ, который медлителен?

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

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
duplicateMovieClip не надо.
не надо onClipEvent.
это устарело.
Сабж. можно сделать хотя бы следующим образом:
1) рисуем черный прямокгольник без рамки на всю сцену, ctrl+k и выравниваем его.
2) кликаем на нем дважды, F8 -> мувиклип с точкой опоры слева вверху.
3) на основной линейке времени с помощью панели свойств даем клипу имя, допустим bg.
Эти операции необходимы, чтобы звезды падали именно на задний план.
Далее рисуем звезду, F8, мувиклип с опорой по центру, в библитеке присваиваем ей linkage "star", со сцены убираем. По дороворенности флешеры с большой буквы пишут только имена классов.
код в первом кадре на основной временной шкале:
Код:
var count:Number = 200;
var initObj:Object = new Object();
while( count-- > 0){
 initObj._x = Math.random()*Stage.width;
 initObj._y = Math.random()*Stage.height;
 initObj._xscale = initObj._yscale = Math.random()*200 + 100;
 initObj._rotation = Math.random()*360;
 bg.attachMovie("star", "star"+count, count, initObj );
}
если хочется движения - измените
Код:
..
// initObj._rotation = Math.random()*360;
 initObj.onEnterFrame = function () {
	 var rand:Number = Math.random();
	if( rand > .8 ) this._y+= .1;
	else if( rand > .6 ) this._y-= .1;
	else if( rand > .4 ) this._x-= .1; 
	else if( rand > .2 )this._x +=.1;
}
..
пример в аттаче
ps:: обращаться как bg["star" + i] из рута
или _root.bg["star" + i] откуда угодно
Вложения
Тип файла: rar starsBg.rar (4.7 Кб, 57 просмотров)


Последний раз редактировалось Kikasso; 20.01.2007 в 14:27.
Старый 20.01.2007, 14:39
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 7  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
__etc я не занимался Флешем пол-учебного года как в универ поступил. Если ты пояснишь что ты имел ввиду, я буду благодарен за восстановление знаний и выявление моих ошибок.

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

Регистрация: Sep 2002
Сообщений: 30,787
Код:
var mc = duplicateMovieClip(…
mc._x = …

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

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Это упростило бы задачу. Буду знать. Спасиб.
По теме:Amra Kimmerian, был рад помочь со звездами =)

Старый 20.01.2007, 17:38
MINASTIS вне форума Посмотреть профиль Отправить личное сообщение для MINASTIS Посетить домашнюю страницу MINASTIS Найти все сообщения от MINASTIS
  № 10  
Ответить с цитированием
MINASTIS
 
Аватар для MINASTIS

Регистрация: Jan 2006
Адрес: Сургут
Сообщений: 897
Отправить сообщение для MINASTIS с помощью Skype™
Kikasso хорошее дополнение, я действительно забыл, что они только на определенное время и на определенную площадь.

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

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

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


 


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


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