PDA

Просмотр полной версии : Как юзать Алерт в подключаемых скриптах?


rmzvoid
05.06.2008, 19:37
Есть класс, который описан в отдельном файле .as, допустим SomeClass. В этом файле у меня есть вызов Alert.show. import для алерта есть в заголовке файла. В самом мувике я создаю переменную класса SomeClass. Когда доходит очередь до вызова алерта, в аутпут пишется вот это - Failed to create a new alert, probably because there is no Alert in the Library. Я понимаю что тут написано, но вопрос в другом, как мне запихнуть в этот скрипт - SomeClass.as библиотеку с этим алертом. Пробовал вынести этот класс в главный мувик, но мне написали что класс в корневом мувике нельзя объявлять. Что посоветуете бывалые? Я только неделю занимаюсь им, сильно не пинайте и сильно умно не пишите :)

silin
05.06.2008, 21:26
имеется ввиду, что компонент Alert должен быть в библиотеке,
просто перетащи его из панельки компонентов в панель библиотеки и все

rmzvoid
06.06.2008, 05:05
простите, но панелька библиотеки недоступна когда я редактирую .as файл. редактор flash mx 2004

iNils
06.06.2008, 05:44
как мне запихнуть в этот скрипт - SomeClass.as библиотеку с этим алертом.В библиотеку нужно только алерт помещать. И так для каждого fla, где используете этот класс.
В хелпе нашел статью (http://livedocs.adobe.com/flash/8/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00003040.html), и если я правильно понял, то метатег [ComponentTask] запускает jsfl сценарий, в котором можно указать, какой компонент добавить в библиотеку автоматически. Я не пробывал, поэтому не могу сказать, так ли это.

rmzvoid
06.06.2008, 10:23
это не то, там джава скрипт нужен

вобщем что я имею:
есть fla файл
есть несколько as файлов
в одном из as файлов используется Alert
все файлы заинклюдены в основном fla файле
библиотека этого fla файла содержит компонент Alert
алерт не хочет создаваться, потому что его нет в библиотеки

вопрос в какой библиотеке он должен быть?

листинг Connection.as

import mx.controls.Alert;

class Connection
{
var Socket:XMLSocket;
var State:String;

function Connection(_Host:String, _Port:Number)
{
Socket = new XMLSocket;
Socket.onConnect = function(success)
{
if (!success)
Alert.show("Network error","Error");
}

Socket.onXML = function(RecievedXML)
{
trace(RecievedXML);
}

Socket.connect(_Host, _Port);
}

function Send(SendingXML:XML)
{
Socket.send(SendingXML);
}
}

листинг обработчика нажатия кнопки в файле fla:

import Connection;

on(click)
{
var LoginData = new LoginPacket(LoginAccount,LoginPassword);
Socket = new Connection("127.0.0.1", 1981);
Socket.Send(LoginData.GetXML());

}

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

silin
06.06.2008, 11:23
не удалось воспроизвести трабл, показывает алерт
единственно что поменял в твоем примере Socket.onConnect создаю делегатом, с анонимной функцией он почему-то вообще не вызывается, но дело, видимо, не в этом, раз у тебя ошибка вылетает

rmzvoid
06.06.2008, 11:39
сделал новый документ - вставил туда выше написанное - работает... чертовщина какаято

хмм, решил кинуть на мувик еще раз компонент алерт - попросил "использовать имеющийся уже или заменить имеющийся новым" - выбираю заменить. Запускаю тест- показывает алерт. неладно в датском королевстве.

ладно проблема решена, всем спасибо за содействие!

silin
06.06.2008, 11:45
это как бы цветочки
глянь (http://groups.google.ru/group/ruFlash/browse_thread/thread/b67d38eb54ae68de#) какие у людей случаются заморочки с этими fla

iNils
06.06.2008, 15:28
rmzvoid, надо использовать кнопку http://www.flasher.ru/forum/images/russian/style3/buttons/edit.gif, а не создавать несколько сообщений подряд.