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

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

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

Регистрация: Aug 2004
Адрес: Украина, Киев, Белая Церковь
Сообщений: 204
Отправить сообщение для Charly84 с помощью ICQ
Arrow Передача параметра при создании объекта и подгрузка соответств картинки с библиотеки

Здравствуйте.

Прошу вашей помощи в решении одного вопроса.


В программе использую много одинаковых объектов, которые отличаются только фоновой картинкой, названием и айди.

Для таких объектов создал отдельный клас SmallIsland.

Код AS3:
package {
	import flash.display.*;
 
	internal class SmallIsland extends Sprite{
		internal var islandName;
		internal var islandId;
		internal var islandType;
 
		public function SmallIsland(name, id, i_type) {
			this.islandName = name;
			this.islandId = id;
			this.islandType = i_type;
 
			var island_img:island1 = new island1(0,0);
			var currBg = new Bitmap(island_img);
			addChild(currBg);
 
 
		}	
 
	}
 
}
В основном коде, где я создаю необходимые мне объекты на основе указанного класса, я пишу:

Код AS3:
var island = new SmallIsland("Island #1", 1, 1);
Создаю объект и передаю имя, айди и тип фонового изображения.
Для фоновых изображений, которые есть в библиотеке, я сделал Linkage... Тоесть каждая картинка походу является классом.

Теперь вопрос. Как сделать так, чтобы при создании объекта и указания типа фонового изображения, в классе SmallIsland подгружалась соответствующая картинка с библиотеки?

Тоесть,если я пишу
Код AS3:
var island = new SmallIsland("Island #1", 1, 1);
То фоновым изображением должна быть картинка island1 из библиотеки.

А если я пишу
Код AS3:
var island = new SmallIsland("Island #1", 1, 2);
То фоновым изображением должна быть картинка island2 из библиотеки.

Вот такой вопрос. Можно как-то сделать, чтобы в классе SmallIsland все работало без условий? Тоесть передаем тип изображения и это изображение подгружается.

З.Ы. Сейчас в моем классе в качестве примера грузится одна и та же картинка для всех объектов
Код AS3:
var island_img:island1 = new island1(0,0);
var currBg = new Bitmap(island_img);
addChild(currBg);

Спасибо за помощь.
__________________
Идущий осилит дорогу!


Последний раз редактировалось Charly84; 07.11.2009 в 15:17.
Старый 07.11.2009, 15:25
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 2  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Признаюсь, в код особо не вчитывался, но getDefinitionByName должно помочь. Как раз сейчас юзаю. В адобовском хелпе простой понятный пример.
Лови
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

Старый 07.11.2009, 15:42
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
package {
	import flash.display.*;
	import flash.utils.getDefinitionByName;
 
	internal class SmallIsland extends Sprite{
		internal var islandName;
		internal var islandId;
		internal var islandType;
 
		public function SmallIsland(name, id, i_type) {
			this.islandName = name;
			this.islandId = id;
			this.islandType = i_type;
 
			if (name) {
				// convert "Island #N" => "islandN"
				name = name.toLowerCase().replace(/ #/, '');
				var c:Class = getDefinitionByName(name) as Class;
				if (c) {
					var bg:BitmapData = new c(0, 0) as BitmapData;
					super.addChild(new Bitmap(bg));
				}
			}
 
		}	
	}
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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