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

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

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

Регистрация: Jan 2007
Сообщений: 302
По умолчанию Работа с stage, обязательно ли добавлять в него контейнер типа sprite

Прив всем.
Хочу убрать масштабирование флешки.
Делаю

Код AS3:
import flash.display.StageScaleMode;
 
		public function MainScreen (){
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
		}
при этом
Код AS3:
TypeError: Error #1009: Не удается вызвать свойство или метод со ссылкой на объект "null".
	at MainScreen()
	at Main()
мое мнение - это может быть из-за того, что я не добавлял свой главный контейнер, в котором все отображается на stage , а просто добавил его
Код AS3:
addChild(contaier);
может правильно переписать
Код AS3:
stage.addChild(contaier);
и все заработает?


Подскажите как исправить...

Старый 22.02.2010, 19:30
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Искать по ключу Event.ADDED_TO_STAGE.
__________________
Hell is the possibility of sanity

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

Регистрация: Jan 2007
Сообщений: 302
Чет не оч работает..
Или я неправильно понял работу команды

Я хочу, чтоб когда я скомпилирую проект - исчезла возможность растягивать ролик. У меня к примеру размеры 900 на 500, и я хочу, чтоб они так и оставались без изменений. Чтоб пользователь не смог расширить окно.
Код AS3:
		public function MainScreen (){
 
			if(stage) init();
  				else addEventListener(Event.ADDED_TO_STAGE, init);
 
 
		}
 
//-----------------------------------------------------------
 
		private function init(event:Event=0):void{
 
			stage.scaleMode = StageScaleMode.NO_SCALE;
			lobbyBtn();
			optBtn();
			exitBtn();
			player();
		}
Отключение меню клика правой клавишей работает.
Код AS3:
stage.showDefaultContextMenu = false;

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
http://flasher.ru/forum/showthread.p...ADDED_TO_STAGE
__________________
Hell is the possibility of sanity

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

Регистрация: Jan 2007
Сообщений: 302
... Насколько я понимаю, stage у меня определяется, поскольку этот код работает.
Код AS3:
		private function init(event:Event=null):void{
 
			stage.scaleMode = StageScaleMode.NO_SCALE;//эта не работает..
			stage.showDefaultContextMenu = false;//Эта строка работает
			lobbyBtn();
			optBtn();
			exitBtn();
			player();
		}
а первый свой контейнер, я добавляю в
Код AS3:
private function lobbyBtn(){
 
			var lab:TextField = crLabel(37,70,95,35,"LOBBY");
 
			Btn1.x = 95;
			Btn1.y = 88;
 
			btn_Box1.addChild(Btn1);
			btn_Box1.addChild(lab);
			addChild(btn_Box1);
 
			btn_Box1.addEventListener(MouseEvent.ROLL_OVER, over_Btn);
			btn_Box1.addEventListener(MouseEvent.ROLL_OUT, out_Btn);
			btn_Box1.addEventListener(MouseEvent.CLICK, box);
		}

Старый 22.02.2010, 20:38
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
OK, событие называется ADDED_TO_STAGE, что в переводе на общедоступный значит - "добавлен на сцену". По-моему, из названия события очевидно зачем оно нужно - просигналить, когда объект попал в дисплей лист.
__________________
Hell is the possibility of sanity

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

Регистрация: Jan 2007
Сообщений: 302
Я так понимаю, вы меня хотите навести на правильный ответ, что есть очень хорошо.
Но я написал, все что понял из ваших подсказок, и прошу помочь подправить в коде то, что я хочу осуществить...

Добавлено через 54 минуты
=========================

Ну вот никак не пойму, почему

Код AS3:
			stage.scaleMode = StageScaleMode.NO_SCALE;//НЕ работает!!!
			stage.align = StageAlign.TOP_LEFT;//работает
			stage.showDefaultContextMenu = false;//работает
подскажите...

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код AS3:
package tests 
{
	//{ imports
	import flash.display.Sprite;
	import flash.events.Event;
	//}
 
	/**
	 * Main class.
	 * @author wvxvw
	 * @langVersion 3.0
	 * @playerVersion 10.0.32
	 */
	public class Main extends Sprite
	{
		//--------------------------------------------------------------------------
		//
		//  Constructor
		//
		//--------------------------------------------------------------------------
 
		public function Main() 
		{
			super();
			// если stage доступен - значит этот класс был добавлен на сцену из timeline
			if (super.stage) this.addedToStageHandler(null);
			// в противном случае - подождем
			else super.addEventListener(
				Event.ADDED_TO_STAGE, this.addedToStageHandler);
		}
 
		//--------------------------------------------------------------------------
		//
		//  Protected methods
		//
		//--------------------------------------------------------------------------
 
		protected function addedToStageHandler(event:Event):void
		{
			// Entry point
		}
	}
}
__________________
Hell is the possibility of sanity

Старый 23.02.2010, 01:05
Killer_13 вне форума Посмотреть профиль Отправить личное сообщение для Killer_13 Найти все сообщения от Killer_13
  № 9  
Ответить с цитированием
Killer_13
 
Аватар для Killer_13

Регистрация: Jan 2007
Сообщений: 302
Сделал так как вы написали, - но результат прежний...

Не в обиду, но мне кажется что вы не дочитали до конца в чем вопрос, и что у меня не получается...
Или я совсем нуб, если это так, то прошу прощения, что морочу голову...

Код AS3:
		public function Main() {
 
			super();
			// если stage доступен - значит этот класс был добавлен на сцену из timeline
			if (super.stage) this.addedToStageHandler(null);
			// в противном случае - подождем
			else super.addEventListener(
				Event.ADDED_TO_STAGE, this.addedToStageHandler);
 
 
		}
 
		protected function addedToStageHandler(event:Event):void
{
			removeEventListener(Event.ADDED_TO_STAGE, init);
 
			stage.scaleMode = StageScaleMode.NO_SCALE;// не работает!!!
			stage.align = StageAlign.TOP_LEFT;// работает
			stage.showDefaultContextMenu = false;// работает
 
			var scrTimer:Timer = new Timer(1000, 1);
 
			scrTimer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
 
			scrTimer.start();
			addChild(fon);
 
		}

Старый 23.02.2010, 01:16
GentleFLASH вне форума Посмотреть профиль Отправить личное сообщение для GentleFLASH Найти все сообщения от GentleFLASH
  № 10  
Ответить с цитированием
GentleFLASH

Регистрация: Apr 2009
Сообщений: 117
В смысле не работает? Все так же ошибки выдает?

Кстати removeEventListener(Event.ADDED_TO_STAGE, init) почему то снимается с функции init, а не с addedToStageHandler..


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

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

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


 


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


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