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

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

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

Регистрация: Sep 2012
Сообщений: 101
По умолчанию Условия пакета

Код AS3:
package windows
{
	import flash.display.*;
	import flash.text.*;
	import flash.utils.*;
	import flash.events.*;
 
	public class BaseWindows extends MovieClip
    {
		public var type:String;
		static var win:MovieClip = new BaseWindow();
		public function BaseWindows(type) {
			switch(type) {
				case "castl":
					trace("Замок");
					this.addChild(win);
					win.x = 500 - win.width / 2;
					win.y = 500 - win.height / 2;
					win.btnClose.addEventListener(MouseEvent.CLICK, closeWindow);
					break;
				case "farm":
					trace("Ферма");
					this.addChild(win);
					win.x = 500 - win.width / 2;
					win.y = 500 - win.height / 2;
					win.btnClose.addEventListener(MouseEvent.CLICK, closeWindow);
				break;
			}
		}
		private function closeWindow(event:MouseEvent) {
			removeChild(win);
		}
	}
}
При вызове функции методом
Код AS3:
var user = new BaseWindows(farm);
выскакивает ошибка 1120: обращение несуществующего свойства.
Как же правильно записать параметр?

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Во-первых придумайте другое название вместо type, так как это зарезервированное слово.

Во-вторых почему вы не передаёте параметр здесь? Ведь конструктор у вас с параметром. И параметру тоже нужно определить тип, а не просто слово какое-то, например build:String
Код AS3:
static var win:MovieClip = new BaseWindow();

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
var user = new BaseWindows("farm");
__________________
Reality.getBounds(this);

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Во-первых придумайте другое название вместо type, так как это зарезервированное слово.
Во Flash IDE? FD без проблем позволяет его использовать как вздумается

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Во Flash IDE? FD без проблем позволяет его использовать как вздумается
Значит я погорячился, извиняюсь.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вообще, чтобы не было проблем со строковыми параметрами, рекомендуется использовать константы.
То есть в классе (обычно в целевом) заводится публичное свойство класса, то есть статическая константа уровня класса. Например, в вашем BaseWindows нужно завести
Код AS3:
public static const FARM:String = "farm";
public static const CASTLE:String = "castle"; // и т.д.
И затем, когда надо, используете эту константу вместо вспоминания строки (программа подскажет после точки список наличных констант):
Код AS3:
var user:MovieClip = new BaseWindows(BaseWindows.FARM);
Добавлено через 1 минуту
Ну и "внутри" класса BaseWindows эти же константы используете
Код AS3:
			switch(type) {
				case CASTLE:
					trace("Замок");
					this.addChild(win);
					win.x = 500 - win.width / 2;
					win.y = 500 - win.height / 2;
					win.btnClose.addEventListener(MouseEvent.CLICK, closeWindow);
					break;
				case FARM:
					trace("Ферма");
					this.addChild(win);
					win.x = 500 - win.width / 2;
					win.y = 500 - win.height / 2;
					win.btnClose.addEventListener(MouseEvent.CLICK, closeWindow);
				break;
			}
__________________
Reality.getBounds(this);

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

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

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


 


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


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