![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jan 2009
Адрес: Северный островок дефолт-сити
Сообщений: 144
|
Необходимо встроить во флешку кучу картинок, затем рандомно выбирать из них несколько и добавлять на сцену. В самом начале столкнулся со следующей ошибкой:
[Fault] exception, information=ReferenceError: Error #1065: Variable Pict is not defined. package { import flash.display.Sprite; import flash.events.Event; import flash.display.Bitmap; import flash.utils.getDefinitionByName; public class Main extends Sprite { [Embed(source='../pic/001.png')] public var Pict:Class; public function Main():void { var ClassReference:Class = getDefinitionByName("Pict") as Class; var pic:Bitmap = new ClassReference() as Bitmap; this.addChild(pic); } } } Что это может быть и как с этим бороться, подскажите пожалуйста? ![]() |
|
|||||
|
[+1 16.08.10]
Регистрация: Jun 2009
Сообщений: 93
|
незнаю ет наверное getDefinitionByName глючит сам сталкивался с таким
попробуй перед добавь тогда увидет. |
|
|||||
|
стервочка (я мужик)
|
это потому, что ваш класс Pict на самом деле имеет совсем другое имя. сделайте getQualifedClassName( Pict ) и посмотрите, что выйдет. и ещё советую сделать Pict статическим.
Добавлено через 50 секунд veisss, ваш код выдаст ошибку компиляции. так как класса Pict не существуете в природе. |
|
|||||
|
[+1 16.08.10]
Регистрация: Jun 2009
Сообщений: 93
|
у меня были мувики с именами Enemy1MC,Enemy2MC ....прилинкованны к
classes.enemies.Enemy1,classes.enemies.Enemy2... выдавала туже ошибку а так var e:Enemy1; var ClassReference:Class = getDefinitionByName("classes.enemies.Enemy1") as Class; и я о томже если побеспокоить имя класса тогда все в порядке(у меня с импортом не покатил) |
|
|||||
|
стервочка (я мужик)
|
veisss, wvxvw, это не то. Вы код видели, вообще, написанный? Вы там в упор не видите
|
|
|||||
|
Регистрация: Jan 2009
Адрес: Северный островок дефолт-сити
Сообщений: 144
|
Ошибка при попытке import Pict;
Error: Не удалось найти определение Pict. Упоминание класса не помогает, та же ошибка что и была. trace(getQualifiedClassName(Pict)); выдаёт Main_Pict. Но от этого не намного легче. Впринципе вроде получается что trace(getQualifiedClassName(Pict2)) выдаст Main_Pict2. Если такая закономерность сохраниться для 20-30 заэмбеденных картинок - то можно считать что проблема решена. Попробую так |
|
|||||
|
Modus ponens
|
Цитата:
Цитата:
так вот работает флексовый компилятор - он туда пишет еще и дату зачем-то... Вобщем, правило для таких классов - подчерк, полное имя класса, который объявил эмбед, имя файла картинки, дата (милисекунды в десятеричном представлении), не буквоцифры (кроме подчерка) заменяются подчерками. Разделители между частями имени - тоже подчерки.Но это все по-памяти, мог где-то соврать. А вообще - легко проверить так, как BloodHound вам раньше посоветовал. EDIT: А, прошу прощения, это я про имя символа, а не про имя класса, имя класса - да, так как вы и описали, т.е. без даты и имени файла.
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 02.09.2009 в 22:36. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
couchy, если ссылка на класс лежит уже в Pict, зачем ее еще получать через getDefinitionByName()?
|
|
|||||
|
Регистрация: Jan 2009
Адрес: Северный островок дефолт-сити
Сообщений: 144
|
Цитата:
Есть 10 заэмбеденных картинок: [Embed(source='../pic/001.png')] public var pic001:Class; [Embed(source='../pic/002.png')] public var pic002:Class; ... for (var i:int = 0; i < 100; i++) { var c:Class = getDefinitionByName( "pic00"+Math.round(Math.random()*10)) as Class; var s:Sprite = new c() as Sprite; this.addChildAt( s ); } Как это можно сделать? Причём если ещё подробнее, то необходимо их поместить в массив, чтобы потом ими можно было управлять. |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:57. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|