Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Серверные технологии и Flash (http://www.flasher.ru/forum/forumdisplay.php?f=62)
-   -   {mdm}Zinc (http://www.flasher.ru/forum/showthread.php?t=81193)

alexcon314 20.08.2007 16:55

Подскажите, где он - виндовый ZIP-архиватор?

udaaff 20.08.2007 22:33

Код в кадре:
Код:

var loader:LoadVars = new LoadVars();
loader.onData = function(src:String):Void  {
        if (src != undefined) {
                my_txt.text = src;
        } else {
                my_txt.text = "Unable to load external file.";
        }
};
loader.load("src.txt");

На сцене единственное текстовое поле my_txt.

Компелирую флэшку, все нормально работает, выводит текст. Компелирую цинком, src == undefined, соответственно выводит -- Unable to load external file. Хотя в превью все нормально (в маленьком экранчике в правом верхнем углу)
Почему src == undefined? :confused:

alexcon314 20.08.2007 23:34

У меня твой код работает и под цинком. Все грузится и отображается. Проверь пути. Для этого кода src.txt должен лежать в той же папке, что и цинковый ехе. Возможно, ты его (.ехе) в цинк-проекте сохраняешь в другую папку, отличную от той, где лежит .swf исходника.

udaaff 21.08.2007 00:07

Нет, сохраняю там же, где и проект. Возможно, это из-за цинка)

alexcon314 21.08.2007 00:41

Хм.. странно. А так:
Код:

var mySavedData = mdm.FileSystem.loadFile("src.txt");
my_txt.text = mySavedData;

только сохраняй .txt в ANSI, а не в UTF8.

udaaff 21.08.2007 01:25

Если грузить цинковскими скриптами то все нормально.
Файл сохранен в UTF-8 (Я уже все кодировки перепробовал, хотя ясно что это не из-за этого). Добавил еще одно текстовое поле. После компиляции цинком, первом поле -- "Unable to load external file.", во втором, собственно, текст нормально отображается.
Код:

var loader:LoadVars = new LoadVars();
loader.onData = function(src:String):Void  {
        if (src != undefined) {
                my_txt1.text = src;
        } else {
                my_txt1.text = "Unable to load external file.";
        }
};
loader.load("src.txt");

//var mySavedData = mdm.FileSystem.loadFile("src.txt");
var mySavedData =  mdm.FileSystem.loadFileUnicode("src.txt")
my_txt.text = mySavedData;

З.ы. Это не из-за цинка точно, скачал только что последнию триал версию с оф. сайта, все равно не пашет.


:yahoo: Нашел решение:
Код:

var loader:LoadVars = new LoadVars();
loader.onData = function(src:String):Void  {
        if (src != undefined) {
                my_txt1.text = src;
        } else {
                my_txt1.text = "Unable to load external file.";
        }
};
loader.load(mdm.Application.path+"src.txt");

Странно все таки, все это)

udaaff 21.08.2007 08:35

Пишу в кадре тестовый скрипт:
Код:

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
        mdm.Dialogs.prompt("Zinc Rocks!")
};
Key.addListener(keyListener);

Все, в принципе, нормально работает, но немного странно все же.

Если запустить SWF, то она сразу начинает отлавливать событие onKeyDown, если же цинковкий EXE, то пока мышью не тыркнешь в него, он ничего не отлавливает. Т.е. получается так, что фокус на нем есть, но его нету на флэшке, которая в нем находится.
Можно ли сделать, чтобы события нажатия клавишь отлавливались сразу при запуске? :wacko:

udaaff 21.08.2007 08:52

Блин, сидел мучался столько времени, только пост написал, сразу решение нашел)), но все же не знаю, есть ли более лучший способ :mosking:

Собственно мое решение: добавил субФорму в проект, назвал ее "asdf", разместил в ней следующий код:
Код:

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
        mdm.Dialogs.prompt("Zinc Rocks!")
};
Key.addListener(keyListener);
mdm.Forms.asdf.show();

Таким образов все работает, по другому никак не получается.

alexcon314 21.08.2007 09:27

А у меня работает ... Что у тебя за глюки? Все ж просто вроде...
Когда окно приложения в фокусе - происходит обработка кейдаун, безо всяких тырканий мышью... причем тут субформы не понял...

udaaff 21.08.2007 20:15

Создай флэшку, в ней размести код:
Код:

var keyListener:Object = new Object();
keyListener.onKeyDown = function() {
        mdm.Dialogs.prompt("Zinc Rocks!")
};
Key.addListener(keyListener);

Скомпелируй приложение цинком, запусти его и не прикосайся к нему мышью :) (т.е. просто его включи и не трогай его совсем) и проверь выведится ли у тебя окошко "Zinc Rocks!" при нажатии на какую либо клавишу на клавиатуре.
Если у тебя все нормально, то я тогда хз, почему цинк у меня ведет себя подобным образом.


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

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