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

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

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

Регистрация: Dec 2007
Адрес: Stavropol
Сообщений: 65
Отправить сообщение для AlexStukoff с помощью ICQ
По умолчанию Удобная или правильная подгрузка картинок,звуков в основную флэшку

Привет всем.

Есть основная флэшка, движок игры.

В ней много уровней, каждый уровень со своей специфической графикой и звуками. Однако физика и суть объектов в принципе не меняется. Т.е. на одном уровне деревянные бочки как препятствия на другом предположим арбузы и т.п.
И вот встал вопрос - как эти ресурсы грузить?
Очевидно, что не "россыпью" т.е. каждую картинку и звук отдельным файлом. Все ресурсы легче собрать в одну флэшку и подгружать её в движок.
Но как тогда получить доступ к графике?

Например у меня есть класс Препятствие у которого есть свойство MovieClip (либо Bitmap) и он очень хочет туда заполучить изображение из подгружаемой библиотеки.

Как организовать swf с ресурсами чтобы их можно было как-то вменяемо вытащить уже в основной флэшке?

Вменяемо это значит как-то вот так:

Код:
BulletObject.Picture = [ссылка_на_загруженную_swf].BulletPic;
где Picture предположим Sprite;

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

Фух.
Если есть какие мысли или советы буду благодарен за помощь.
__________________
coming soon...

Старый 22.10.2008, 19:49
tyapichu вне форума Посмотреть профиль Отправить личное сообщение для tyapichu Найти все сообщения от tyapichu
  № 2  
Ответить с цитированием
tyapichu
[+1 25.07.08]

Регистрация: Jun 2008
Адрес: Москва
Сообщений: 25
Отправить сообщение для tyapichu с помощью ICQ
есть у элементов, в библиотеке расположенных, такое свойство Linkage, в котором можно прописать имя класса. вот так и организуются ресурсы во флешке. потом загружаешь флешку и обращаешься к ресурсу по созданному тобой имени.

Старый 23.10.2008, 10:47
AlexStukoff вне форума Посмотреть профиль Отправить личное сообщение для AlexStukoff Посетить домашнюю страницу AlexStukoff Найти все сообщения от AlexStukoff
  № 3  
Ответить с цитированием
AlexStukoff
 
Аватар для AlexStukoff

Регистрация: Dec 2007
Адрес: Stavropol
Сообщений: 65
Отправить сообщение для AlexStukoff с помощью ICQ
Спасибо за совет, только КАК?

Создал флэшку 1.swf. У символа в библиотеке в свойстве Linkage прописано имя класса MyBox.

Далее пишу основную флэшку

Код:
package {
	import flash.events.*;
	import flash.display.Loader;
	import flash.net.URLRequest;
	import flash.display.DisplayObject;
	
	public class main extends MovieClip{
		var myloader:Loader = new Loader();
		function main() {
			myloader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplite);
			myloader.load(new URLRequest("1.swf"));
		}
		function onLoadComplite(evt:Event)
		{
			var G:DisplayObject = myl.content;
                //И вот как теперь?
                //Очевидно, что любые вызовы формата
                var R:MovieClip = new G.MyBox();
                //или
                addChild(G.MyBox);
                //закончатся неудачей, потому что про свойство MyBox никому, кроме меня не известно :))))
			}
	}
}
Что делать-то? Как жить дальше?
__________________
coming soon...

Старый 23.10.2008, 11:11
Alex Lexcuk вне форума Посмотреть профиль Отправить личное сообщение для Alex Lexcuk Посетить домашнюю страницу Alex Lexcuk Найти все сообщения от Alex Lexcuk
  № 4  
Ответить с цитированием
Alex Lexcuk

блогер
Регистрация: Mar 2008
Адрес: Донецк_city
Сообщений: 1,094
Записей в блоге: 5
Код:
package {
 import flash.display.*;
 import flash.events.*;
 import flash.net.*;
 import flash.text.*;
 import flash.utils.*;
 import flash.media.*;
 
  dynamic public class Receiver_doc extends Sprite{;
  public var loader:Loader;
  public var req:URLRequest;
  var Gerl_class:Class;
  var Dog_class:Class;
  var gerl_mc:MovieClip;
  var dog_mc:MovieClip;
  var i:int;
  public function Receiver_doc() {
   loader = new Loader();
   //addChild(loader);
   req = new URLRequest("House_mc.swf");
   loader.load(req);
   loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onLoadProgress);
   loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoadComplete);
   }
  
   public function onLoadProgress(param1:ProgressEvent):void {
   txt.text = "PROGRESS " + int(100 * (param1.bytesLoaded / param1.bytesTotal)) + "%";
   }
  
   public function onLoadComplete(param1:Event):void {
   removeChild(txt);
   Gerl_class = loader.contentLoaderInfo.applicationDomain.getDefinition("MyBox") as Class;
   gerl_mc = new Gerl_class();
   addChild(gerl_mc);
   gerl_mc.x = -250;
   gerl_mc.y=-50;
   
   gerl_mc = new Gerl_class();
   addChild(gerl_mc);
   gerl_mc.x = 100;
   gerl_mc.y=-50;
    }
  }
}
http://www.dnadillo.dn.ua/fla/load-MovieClip-class.html

Старый 23.10.2008, 11:16
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 5  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Alex Lexcuk, не именуют так переменные - Gerl_class.

Старый 23.10.2008, 13:24
AlexStukoff вне форума Посмотреть профиль Отправить личное сообщение для AlexStukoff Посетить домашнюю страницу AlexStukoff Найти все сообщения от AlexStukoff
  № 6  
Ответить с цитированием
AlexStukoff
 
Аватар для AlexStukoff

Регистрация: Dec 2007
Адрес: Stavropol
Сообщений: 65
Отправить сообщение для AlexStukoff с помощью ICQ
Спасибо.
Это действительно работает.
Только вот получается такая картина.
У меня изометрия.
Главный герой - 8 изображений поворота.
Враги. 10 видов у каждого такая же петрушка - 80 изображений.
текстуры: пол 13 видов. стены - 19 видов.
прочие объекты - 12 объектов.
в итоге имеем 132 уникальных изображений.
Как это получается в коде? (левое опускаю)
Код:
var MegaLoader:Loader
function give_me_please_a_piece_of_happiness(Name_of_Movie_Clip:String, TargetMovieClip:MovieClip):void{
  var TempClass:Class;
  TempClass = MegaLoader.contentLoaderInfo.applicationDomain.getDefinition(Name_of_Movie_Clip) as Class;
  TargetMovieClip = new TempClass ();
}

//в основном коде
var MyHero:MovieClip;
give_me_please_a_piece_of_happiness("SmileFaceOfHero", MyHero);
__________________
coming soon...


Последний раз редактировалось AlexStukoff; 23.10.2008 в 13:30.
Старый 23.10.2008, 13:44
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 7  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от mre Посмотреть сообщение
Alex Lexcuk, не именуют так переменные - Gerl_class.
Да и в словарик лучше иногда заглядывать

Старый 23.10.2008, 14:32
†‡Paladin‡† вне форума Посмотреть профиль Отправить личное сообщение для †‡Paladin‡† Найти все сообщения от †‡Paladin‡†
  № 8  
Ответить с цитированием
†‡Paladin‡†

Регистрация: Nov 2005
Сообщений: 1,058
param1:Event - ну неужели так сложно прочитать один раз конвенцию...

Старый 23.10.2008, 14:39
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Цитата:
Сообщение от †‡Paladin‡† Посмотреть сообщение
param1:Event - ну неужели так сложно прочитать один раз конвенцию...
Скорее это вообще результат декомпиляции.

Старый 23.10.2008, 16:22
AlexStukoff вне форума Посмотреть профиль Отправить личное сообщение для AlexStukoff Посетить домашнюю страницу AlexStukoff Найти все сообщения от AlexStukoff
  № 10  
Ответить с цитированием
AlexStukoff
 
Аватар для AlexStukoff

Регистрация: Dec 2007
Адрес: Stavropol
Сообщений: 65
Отправить сообщение для AlexStukoff с помощью ICQ
Конвенция это как я понимаю соглашение о том, как и что называть? правила формирования имен переменных, классов, функций и прочее?
Если не секрет, то где можно почитать?
__________________
coming soon...

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

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

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


 


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


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