Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Не работает [Embed(...)] для *.swf (http://www.flasher.ru/forum/showthread.php?t=151630)

elder_Nosferatu 03.03.2011 06:05

Не работает [Embed(...)] для *.swf
 
Здравствуйте!

Хотел разобраться с встраиванием граф-контента в конечный swf-файл. Полистал Мука, нашел примеры и давай пробовать. Но вот беда - картинки встраиваются без проблемм, а вот swf-ролики никак.
Привожу код и описание ошыбки:
Код AS3:

01 package
02 {
03        import flash.display.*;
04
05        [Embed (source="skin.swf")] //Здесь выдает следующую ошибку:
/*
Описание: Встраивание поддерживается только для классов и переменных экземпляров.
Ресурс: Circle.as
Путь: /Circle/src
Расположение: Строка 5
Тип: Проблема Flex
*/

06        public var Skin:Class;
07       
08        public class Circle extends Sprite
09        {
10                public function Circle()
11                {
12                        var skin:Skin = new Skin();
13                        addChild(skin);
14                }
15        }
16 }


cleptoman 03.03.2011 08:38

компилятор как бы намекает: "встраивайте между 9 и 10 строкой вашего кода". еще нужно будет свойство объявить после встраивания, описывающую вашу встройку.типа
Код AS3:

[Embed (source="skin.swf")]
private var SkinBytes:ByteArray;


elder_Nosferatu 03.03.2011 11:42

Цитата:

Сообщение от cleptoman (Сообщение 977647)
компилятор как бы намекает: "встраивайте между 9 и 10 строкой вашего кода". еще нужно будет свойство объявить после встраивания, описывающую вашу встройку.типа
Код AS3:

[Embed (source="skin.swf")]
private var SkinBytes:ByteArray;


Попробовал переделать, по Вашему рецепту, но добрый компилятор опять меня послал (класс ByyteArray ему не подходит:
Код AS3:

01 package
02 {
03        import flash.display.*;
04        import flash.utils.ByteArray;
05
06        public class Circle extends Sprite
07        {
08                [Embed (source="skin.swf")] // Теперь другая проблемма
/*
Описание: Встраивание поддерживается только для переменных типа Class и String.
Ресурс: Circle.as
Путь: /Circle/src
Расположение: Строка 8
Тип: Проблема Flex
*/

09                public var SkinBytes:ByteArray;
10               
11                public function Circle()
12                {
13                        var skin:SkinBytes = new SkinBytes();
14                        addChild(skin);
15                }
16        }
17 }

Когда я, по прозьбе компилятора, в строке 09 поставил тип переменной Class вместо ByteArray он опять заматерился: теперь ему не удается создать экземпляр класса SkinBytes (1046: Тип не найден или не является константой времени компиляции: SkinBytes.)

GBee 03.03.2011 12:20

Код AS3:

var skin:DisplayObject = new SkinBytes() as DisplayObject;
addChild(skin);

а так?

elder_Nosferatu 03.03.2011 12:33

Беда в том, что строки 08 и 09 вместе не работают, то есть компилятор не может привязать внедренный клип к переменной, тип которой отличается от Class или String.

Может кто подскажет какие бывают параметры тега [Embed] кроме source, которые определяют тип встраиваемого контента. Поню когдато пытался встроить шрифт, так ничего не получалось пока не подсказали задать значение false параметру embedAsCFF

cleptoman 03.03.2011 13:18

поищите тут в блогах много упоминаний и примеров было..маймтайп, например

elder_Nosferatu 03.03.2011 13:31

Спасибо всем, кто уделил мне внимание! Всем по 5 коп на весы!!!

А компилятор всетаки тупой - он толком не понял, какую ошибку он встретил и в описании сказал "Тип: Проблема Flex". А надо было: "Тип: Проблема elder_Nosferatu"!!!

Вина во всем моя: Я попутал внедрение на уровне переменной и класса!
Код AS3:

12 ...
13 /*                var skin:SkinBytes = new SkinBytes(); ПЛОХО! */
14                  var skin:MovieClipAsset = new SkinBytes(); // ХОРОШО !
15 ...


in4core 03.03.2011 13:49

эээ application/octet-stream ?

elder_Nosferatu 03.03.2011 14:28

после того, как я понял свою ошибку все работает, как часы - и application/x-shockwave-flash и вообще без mimeType


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

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