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

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

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

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
По умолчанию Какой размер сцены по-умолчанию и как его поменять

Код AS3:
package zoo
{
	import flash.display.Sprite;
 
	public class Main extends Sprite
	{
		private var _objectStage:Sprite = new Sprite();
 
		public function Main() 
 
		{
			addChild(_objectStage);
 
			stage.stageWidth = 1024;
			stage.stageHeight = 768;
			_objectStage.width = 1024;
			_objectStage.height = 768;
 
 
			trace (stage.stageWidth, stage.stageHeight, _objectStage, _objectStage.width);
 
		}
 
	}
 
}
трейс выводит всё равно 800 на 600 и _objectStage.width = 0, пробовал ставить _objectStage.stage.width и другие разные варианты (stage.Stagewidth и т.д)... не пойму, как работает этот stage? при нажатии на TEST PROJECT из FlashDevelopa получается что по-умолчанию создаётся объект stage с stage.width = 800, stageHeight = 600? что это за объект? какой у него тип? в руководстве написано: КОРНЕВЫМ ЭЛЕМЕНТОМ СПИСКА ОТОБРАЖЕНИЯ ЯВЛЯЕТСЯ ЭКЗЕМПЛЯР КЛАССА STAGE, КОТОРЫЙ СОЗДАЁТСЯ АВТОМАТИЧЕСКИ ПРИ ЗАПУСКЕ СРЕДЫ ВЫПОЛНЕНИЯ FLASH, который выступает в качестве внешнего контейнера для всего графического содержимого... значит у него тип данных - DisplayObjectContainer или он расширяет DisplayObjectContainer? как обратиться к его свойствам width и heigth?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Нарисуйте в graphics стейджа прямоугольник нужных вам размеров (можно прозрачный) или добавьте объект. И все будет.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
Цитата:
Сообщение от GBee Посмотреть сообщение
Нарисуйте в graphics стейджа прямоугольник нужных вам размеров (можно прозрачный) или добавьте объект. И все будет.
код
Код AS3:
stage.graphics.drawRect(0, 0, 1024, 768);
выводит ошибку

код
Код AS3:
_objectStage.graphics.drawRect(0, 0, 1024, 768);
делает размер _objectStage.width = 1024

без добавления объекта Sprite c рисованным прямоугольником нельзя изменить размер stage, получается?

Добавлено через 3 минуты
и сейчас я ведь добавил на сцену объект с прямоугольником 1024x768, почему stage.width всё равно остался 800?

Старый 11.09.2015, 00:00
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Какой размер сцены по-умолчанию и как его поменять
Например, прописать метатэг в главном классе
Код AS3:
[SWF(backgroundColor="#8FD9E6", frameRate="60", width="760", height="1000")]
public class Main extends Sprite
Или вы в рантайме изменить размер окна хотите?

Код AS3:
_objectStage.width = 1024;
_objectStage.height = 768;
пустому спрайту нельзя задать размер.

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

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
я хочу, чтобы stage.width возвращало 1024, а stage.heigth возвращало 768 и как можно меньше, чтобы для этого нужно было сделать кодом... но пока ничего не получается, тот код (который с метатегом) куда надо его вставлять? если после importов ставлю - то ничего не меняется, если до объявление пакета, то пишет ошибку... :\

Добавлено через 14 минут
вроде немного разобрался... добавил рисование прямоугольника в конструктор без слова stage и в трейсе поменял stage.stageWidth на stage.width. Теперь стало возвращать 1024

Код AS3:
 
 
package zoo
{
//[SWF(backgroundColor = "#8FD9E6", frameRate = "60", width = "760", height = "1000")]; // такое изменение не работает
 
	import flash.display.Sprite;
 
	public class Main extends Sprite
	{
		//private var _objectStage:Sprite = new Sprite();
 
		public function Main() 
 
		{
			graphics.drawRect(0, 0, 1024, 768);
 
			//_objectStage.graphics.drawRect(0, 0, 1024, 768);
 
			//addChild(_objectStage);
 
			trace (stage.width, stage.height);
 
		}
 
	}
 
}

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
stage.width и stage.height возвращают физические размеры контейнера, основываясь на размерах и положениях все его детей.
Main - это документ класс, который лежит поверх стейдж и используется как основной контейнер для приложения. В данном случае
Код AS3:
graphics.drawRect(0, 0, 1024, 768);
Рисует в Main графику размерами 1024х768, поэтому stage.width и возвращает 1024, так как на сцене теперь лежит объект таких размеров. Если туда добавить что-то еще, выходящее за рамки 1024, то в stage.width будет совсем другое число. Так что это все хрень, и подход не верный.
Есть только два варианта менять размеры stage.
Первый уже написал udaff
А второй - указать размеры в коде встройки в вебстраницу. Но в этом случае размер будет меняться только при расположении ролика на сайте

В AIR можно задавать размеры сцены напрямую, через stage.width = и stage.height =

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

Регистрация: Jul 2013
Адрес: Каскелен
Сообщений: 86
спасибо, разобрался, помог метатег, только сначала он не работал, т.к. я его поставил перед importaми, а если после импортов ставить - то работает

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

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

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


 


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


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