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

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

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

Регистрация: Apr 2011
Адрес: Новосибирск
Сообщений: 103
Отправить сообщение для fifa_sibir с помощью ICQ
По умолчанию Не получается загрузить изображение jpg в флешку

Здравствуйте. Подскажите пожалуйста, некогда не было проблем по этому вопросу, а тут мистика какая-то творится. Загружаю в флешку изображение вот таким способом: код находится в первом кадре документа.
Код AS3:
var loader:Loader;
var req:URLRequest;
loader = new Loader();
req = new URLRequest("1.jpg");
loader.load(req);
addChild(loader);
И выдает кучу ошибок... Я так предполагаю это из-за присвоения главного класса документа "Main.as".
(У меня там прописан код на анимацию снега). Но когда я пробую загружать изображение из этого класса, все равно ничего не выходит

Код AS3:
package {
	import flash.display.Sprite;
	public class Main extends Sprite {
		private var widthS:Number=stage.stageWidth;
		private var heightS:Number=stage.stageHeight;
		private var max_snowsize:Number=1;
		private var snowflakes:Number=200;
		public function Main() {
			for (var i:int=0; i<snowflakes; i++) {
				var snow:Snow=new Snow(widthS,heightS,max_snowsize);
				addChild(snow);
			}
var loader:Loader;
var req:URLRequest;
loader = new Loader();
req = new URLRequest("1.jpg");
loader.load(req);
addChild(loader);
		}
	}
}
Подскажите пожалуйста что я не так делаю...

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
И выдает кучу ошибок...
Хаотичных ошибок? Или все-таки в них что-то написано? Текст ошибок как правило говорит о многом
Цитата:
Я так предполагаю это из-за присвоения главного класса документа "Main.as".
Документ класс в адоби флеш нужно прописывать без расширения. Т.е. не Main.as, а просто Main

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

Регистрация: Apr 2011
Адрес: Новосибирск
Сообщений: 103
Отправить сообщение для fifa_sibir с помощью ICQ
Да, прописано как "Main".
вот какие ошибки:
Код:
1046: Тип не найден или не является константой времени компиляции Loader
1046: Тип не найден или не является константой времени компиляции URLRequest
1180: Вызов предположительно неопределенного метода addFrameScript
1180: Вызов предположительно неопределенного метода Loader
1180: Вызов предположительно неопределенного метода URLRequest

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
И это работает?
Код AS3:
private var widthS:Number=stage.stageWidth;
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Цитата:
Сообщение от fifa_sibir Посмотреть сообщение
Да, прописано как "Main".
вот какие ошибки:
Код:
1046: Тип не найден или не является константой времени компиляции Loader
1046: Тип не найден или не является константой времени компиляции URLRequest
1180: Вызов предположительно неопределенного метода addFrameScript
1180: Вызов предположительно неопределенного метода Loader
1180: Вызов предположительно неопределенного метода URLRequest
добавить в начало файла (хотя в начало или нет, не принципиально) строчки:
Код AS3:
import flash.display.Loader;
import flash.net.URLRequest;
Про addFrameScript скорее всего где-то используется не MovieClip где предположительно должен быть мувиклип
Цитата:
И это работает?
dimarik, а почему это не должно работать? Это ведь в документ классе прописано. Понятно что это сломается если флешку будут подгружать в другую, но в этом то случае какие проблемы?

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

Регистрация: Apr 2011
Адрес: Новосибирск
Сообщений: 103
Отправить сообщение для fifa_sibir с помощью ICQ
Когда трэйсю не работает.. а меняю значения - работает, результат на флешке

Добавлено через 3 минуты
caseyryan, ураа спасибо большое Вам! аж смешно почему я про импорт забыла, переработала наверно)))))))))

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от caseyryan Посмотреть сообщение
dimarik, а почему это не должно работать? Это ведь в документ классе прописано. Понятно что это сломается если флешку будут подгружать в другую, но в этом то случае какие проблемы?
Мой вопрос связан не с наличием Stage на этапе инстанцирования stage owner документкласса. А с тем, что этой практикой нужно пользоваться с осторожностью. Вы инициализируете поле объекта через поле этого же объекта, которое может быть еще не инициализировано. В данном случае вам повезло с тем, что конструктор вызывает суперконструктор, в котором поле stage инициализируется.

Поиграйтесь

Код AS3:
//private var _bar:Foo = new Foo();
private var _foo:Foo = _bar;
private var _bar:Foo = new Foo();
Добавлено через 3 минуты
Т.к. я всегда уточняю область видимости, то такая конструкция даже не скомпилируется
Код AS3:
private const _stage:Stage = super.stage;
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Я внезапно для себя провел эксперимент и был удивлен его результатами. Если кто не в курсе, в AS есть статические инициализаторы классов, то есть блоки кода, которые выполняются перед любым обращением к классу. Так вот я, значит, написал такой инициализатор. Ну а дальше можно по коду смотреть:
Код AS3:
package
{
 
    import flash.display.Sprite;
 
    public class Test extends Sprite
    {
 
        public var tracer = new Tracer("public var");
        protected var __tracer = new Tracer("protected var");
        internal var $tracer = new Tracer("internal var");
        private var _tracer = new Tracer("private var");
 
        {
            trace("Test static initializer called");
            //new Tracer("Test static initializer");
            var t:Tracer = new Tracer("Test static initializer");
 
        }
 
        //public static var TRACER:Tracer = new Tracer("static var");
 
        public function Test()
        {
            super();
 
            trace("Test constructor called");
            trace("Test instance has stage: " + Boolean(super.stage));
 
        }
    }
}
 
internal final class Tracer
{
    {
        trace("Tracer static initializer called");
    }
 
    public function Tracer(value:String)
    {
        trace("Tracer constructor called from: " + value);
    }
}
Присутствует 2 строки с комментариями. Если коменнтарий с любой из этих строк снять, получается прелюбопытнейшая ошибка.
__________________
...вселенская грусть

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
gloomyBrain, прикрепите swf. Заводить FB не хочется =)
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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