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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0 > Статьи

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.10.2010, 03:39
Jackson вне форума Посмотреть профиль Отправить личное сообщение для Jackson Найти все сообщения от Jackson
  № 231  
Ответить с цитированием
Jackson

Регистрация: Sep 2010
Сообщений: 33
Чет я не могу понять, что надо делать:
Цитата:
Делаем мувик preloader который состоит из текстового поля (txt) и прогрессбара (progress - мувик состоящий из 100 кадров, будем позиционировать кадр в зависимости от того, сколько процентов флешки загрузилось). Мувиклипу прелоадера прописываем класс main.preloader
Подскажите, что, где нажать...

Psycho Tiger,где этот код писать надо?И как потом в этот мувик картинку вставить?Разве это делается не на сцене Flash?

Старый 02.10.2010, 20:09
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 232  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Ну ээ... где хочется создать - там и пишется. Я статью читал несколько лет назад, да и то мельком. Вставлять картинку addChild. На сцену Flash (Вы про Flash IDE?) по сути добавлять что-либо вообще не рекомендуется, для программистов. Гораздо более гибкий вариант добавлять это программно. Хотя бы потому что если с Вашим кодом потом кто-то будет работать, кто компилирует без Flash IDE - ему это будет не так болезненно.

Старый 07.10.2010, 22:18
Vansimar вне форума Посмотреть профиль Отправить личное сообщение для Vansimar Найти все сообщения от Vansimar
  № 233  
Ответить с цитированием
Vansimar
 
Аватар для Vansimar

Регистрация: Sep 2010
Адрес: Moscow
Сообщений: 473
здоровская статья)спасибо!

Старый 11.11.2010, 13:25
kluv666 вне форума Посмотреть профиль Отправить личное сообщение для kluv666 Найти все сообщения от kluv666
  № 234  
Ответить с цитированием
kluv666

Регистрация: Nov 2010
Сообщений: 9
Всем привет, перечитал всю тему, юзаю CS5 и возникла проблема (выше она уже была) но т.к. люди которые давали ответы юзали не CS5 они мне не помогли,

при присвоении:
this.txt.text = "Loading..." ругается. "Термин не определен и не имеет свойств"

код:

Код AS3:
package main {
	import flash.display.MovieClip;
	import flash.events.*;
 
	dynamic public class Preloader extends MovieClip {
 
		public function Preloader() {
			// Нужно периодически вызывать функцию Update, которая будет обновлять процент загрузки
			// Используем старый-добрый onEnterFrame с учетом событий AS3
			addEventListener(Event.ENTER_FRAME, Update);
		}
 
		public function Update(e : Event):void {
 
			var bytesLoaded:Number = stage.loaderInfo.bytesLoaded;
			var bytesTotal:Number = stage.loaderInfo.bytesTotal;
			var s:String = "";
			var percent:Number = 0;
			if (bytesTotal>0){
				percent = Math.floor(bytesLoaded/bytesTotal*100);
				s = percent+"% ("+
				Math.round(bytesLoaded/1024)+"kb / "+
				Math.round(bytesTotal/1024)+"kb)";
			}
			this.txt.text="Loading... "+s;
			this.progressbar_mc.gotoAndStop(percent+1);
			// Если полностью загрузились, то переходим на второй кадр
			if (bytesLoaded==bytesTotal || bytesTotal==0){
				removeEventListener(Event.ENTER_FRAME, Update);
				(parent as MovieClip).play();
			}
		}
 
	}
}
далле сделал :

Код AS3:
public function Update(e : Event):void {
    trace(">>> " + txt);
    trace(">>> " + stage);
    var bytesLoaded:Number = stage.loaderInfo.bytesLoaded;
    var bytesTotal:Number = stage.loaderInfo.bytesTotal;
 
    // output:
    // >>> [object TextField]
    // >>> null
получается stage не видит? тогда пчму ругается на txt?

динамический текст txt есть, все сделано по мануалу, никаких различий с оригинальным исходником нет, оригинальный исходник прекрасно работает без ошибок (


всем спасибо, все заработало, я м.....к ) небыл прописан класс для мувика preloader_mc )

Добавлено через 8 часов 10 минут
и так новая проблема с перемещением background,

1. создал новый мувик, прописал ему класс background, добавил в него картинку 2000 на 2000.

2. код:
Код AS3:
package main {
 
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.events.Event;
	import flash.geom.Rectangle;
 
 
	public class Background extends MovieClip {
 
 
		public function Background() {
			addEventListener(MouseEvent.MOUSE_DOWN,handleMouseDown);
			addEventListener(MouseEvent.MOUSE_UP,handleMouseUp);
			stage.addEventListener(Event.MOUSE_LEAVE,handleMouseUp);
		}
 
		function handleMouseDown(event:Event):void{
			var dx:Number = width-stage.stageWidth;
			var dy:Number = height-stage.stageHeight;
//			trace(dx);
//			trace(dy);
			var dragRect:Rectangle = new Rectangle(-dx,-dy,dx,dy);
			startDrag(false, dragRect);
		}
 
		function handleMouseUp(event:Event):void{
			stopDrag();
		}
	}
 
}
при клике в плеере картинка пчмуто заскакивает влево на половину и при трассировке dx и dy пишет 1190 и 1599, и когда начинаю перемещать картинка перемещается но она на 25% в области плеера всего остальное черный бекграунд, кароч глюк какойта, пчму так может быть?


Последний раз редактировалось kluv666; 11.11.2010 в 14:58.
Старый 22.12.2010, 15:24
krolser вне форума Посмотреть профиль Отправить личное сообщение для krolser Найти все сообщения от krolser
  № 235  
Ответить с цитированием
krolser
 
Аватар для krolser

Регистрация: Oct 2007
Адрес: Гродно
Сообщений: 67
Отправить сообщение для krolser с помощью Skype™
Всем привет. Начал изучать AS3 именно с этого туториала.
И так затянуло, что решил доделать игру до победного.

Более подробно про процесс создания написано тут.

Заранее предвидя обвинения в плагиате, скажу лишь одно. Я получил согласие MerlinTwii. Кроме того, я еще не слабо переписал код. Оригинального осталось 5-10%. Была также устранена очень большая утечка памяти. Пришлось посидеть с профайлером, чтобы найти в чём беда. Если в кратце, то после удаления BasicObjec со Sky он оставался в памяти. Что именно я исправил, я уже не помню. Но могу сказать спасибо за такую красивую ошибку. Сам бы я точно не стал бы разбираться с профайлером. А так жизнь заставила.

Это не рекламная мессага. Это благодарность за труд проделанный MerlinTwi.
Но если вам не лень, то можно и проголосовать 5/5 на
newgrounds.com
kongregate.com

Старый 20.11.2011, 22:05
goldlider вне форума Посмотреть профиль Отправить личное сообщение для goldlider Найти все сообщения от goldlider
  № 236  
Ответить с цитированием
goldlider

Регистрация: Jun 2010
Сообщений: 120
Не могли бы помочь разобраться с переменной dragRect. Вот отрывок из класса background.
Код AS3:
function handleMouseDown(event:Event):void { 
     var dx:Number = width-stage.stageWidth; 
     var dy:Number = height-stage.stageHeight; 
     var dragRect:Rectangle = new Rectangle(-dx,-dy, dx,dy); 
     startDrag(false, dragRect); 
}
К примеру у меня фон размером 2500x1700. Размер флешки 640x480. Переменная dragRect(-1860, -1220, 1860, 1220) задает координату верхнего левого угла, ширину и высоту прямоугольника. А что означают эти цифры? Это то на сколько мы можем передвинуть флешку за одно перетаскивание?


Последний раз редактировалось goldlider; 20.11.2011 в 22:09.
Старый 20.11.2011, 22:54
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 237  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Господи пожалуйста не Новосибирск
Сообщений: 6,598
Записей в блоге: 17
Нет. Это квадрат, в котором разрешено перетаскивание. Нельзя утащить за этот квадрат, проще говоря.

Старый 24.10.2012, 12:41
Observer вне форума Посмотреть профиль Отправить личное сообщение для Observer Найти все сообщения от Observer
  № 238  
Ответить с цитированием
Observer

Регистрация: Oct 2012
Сообщений: 7
Друзья, можете подсказать. Как сделана игровая панель, чтобы она всегда была сверху, над всем игровым миром, как бы мы не перемещали карту. Мне нужно сделать точь в точь. Буду очень благодарен, если чем-нибудь поможите

Старый 04.02.2013, 17:59
b_ear вне форума Посмотреть профиль Отправить личное сообщение для b_ear Найти все сообщения от b_ear
  № 239  
Ответить с цитированием
b_ear

Регистрация: Nov 2012
Адрес: Санкт-Петербург
Сообщений: 25
Отправить сообщение для b_ear с помощью Skype™
Цитата:
Сообщение от MerlinTwi Посмотреть сообщение
P.S. Спустя почти год, я вижу, что в ней очень много грубых ошибок и все можно было бы сделать проще и "правильней". Но тем не менее, считаю, что статья полезна тем, кто переходит с AS2 на AS3.
А можете подсказать что именно можно было бы исправить/улучшить в вашем варианте?
Взял этот пример за основу своего пилотного проекта http://vk.com/strateg3000 , мне интересны любые подробности. Если будет удобнее, то на почту b_ear@mail.ru

Заранее спасибо!

PS: в моем варианте кнопка "Защитить планету" аналогична "Start game" вашего проекта

Добавлено через 16 часов 28 минут
Цитата:
Сообщение от Observer Посмотреть сообщение
Друзья, можете подсказать. Как сделана игровая панель, чтобы она всегда была сверху, над всем игровым миром, как бы мы не перемещали карту. Мне нужно сделать точь в точь. Буду очень благодарен, если чем-нибудь поможите
она просто лежит сверху и все. правой кнопкой мыши нажимаешь на объекте - там будет меню, в нем выбери Упорядочить - Поместить на передний план

под ней лежит мувик игрового поля, отдельным объектом


Последний раз редактировалось b_ear; 04.02.2013 в 23:36.
Создать новую тему Ответ Часовой пояс GMT +4, время: 15:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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