PDA

Просмотр полной версии : ActionScript 3 с нуля


Страницы : 1 [2]

Andrianov
06.03.2008, 17:11
Подскажите пожалуйста как наименее геморройно узнать размер(ширину/высоту) сцены (Stage имеется ввиду) :rolleyes:

Mr. Fixit
06.03.2008, 17:17
stage.stageWidth;
stage.stageHeight;

FilimoniC
06.03.2008, 17:20
Вот эта книга когда то мне очень помогла - http://www.ozon.ru/context/detail/id/1401736/, написано легко и доступно.
Можно сказать с неё у меня всё и началось.

И ещё, кажется ты перепутал тему.
Это не по AS3, издание 2003 года, тогда AS3 еще не было.

Andrianov
06.03.2008, 17:21
Посылает... Перед данным кодом точно не нужно делать что-то еще?

Vallin
27.03.2008, 21:47
Доброго времени суток.
Помогите начинающему, сделал баннер, а ссылку немогу никак привязать к нему - загружаю на сайт - и без кликания открывается страничка! Ясное дело неправильно делаю... башка пухнет! Подскажите пожалуйста - navigateToURL. Если можно просто синтакс... просто подключить ссылку, ну и , по возможности, чё-нить почитать, а то в инете много всего и разобраться тяжеловато... Не откажите в помощи!

etc
27.03.2008, 21:51
Vallin, а за каким хреном вам для баннера использовать AS3?

Galleon
28.03.2008, 14:46
Vallin,

1 Создаёшь картинку для баннера
2 Помещяешь её на сцену
3 Если тебе нужен фон, то не задавай его в свойствах документа, лучше сделать прямоугольник нужного цвета и поместить на задний план (убережёт от глюков с фоном)
4 Создаёшь пустую кнопку (в кадрах неичего нету)
5 Помещяешь созданную кнопку на сцену поверх картинки (пустая кнопка будет выглядеть как голубой прямоугольник)
6 Растягуешь кнопку на ширину всей сцены
7 В кадр добавляешь следуйщий код:

this.addEventListener(MouseEvent.CLICK, mouseClickHandler);
function mouseClickHandler(event:MouseEvent):void {
var urlRequest:URLRequest = new URLRequest("тут ссылка на целевой сайт");
try {
navigateToURL(urlRequest, "_blank");
} catch (e:Error) {
// handle error here
}
}

8 В Publish Settings на закладке Flash нужно установить access network only
9 Публикуешь

Работает безотказно!

Vallin
28.03.2008, 18:37
Уважаемые! Благодарен Вам, что откликнулись! Попробую применить ваши советы. Но не откажите в поддержке... пытаюсь, как дизайнер... с вебом совладать - получтся, но не без Вашей помоши!
P.S. почему AS3 - ? - зачем брать к изучению то, что стареет - ?
P.P.S. а, действительно благодарен... сёня это (взаимопомощь) не так часто встретишь... (по крайней мере где живу...)

etc
28.03.2008, 18:56
P.S. почему AS3 - ? - зачем брать к изучению то, что стареет - ?
AS1/AS2 для баннеров будет жить вечно. К тому же, AS3-вариант будет весить больше, что для баннеров очень критично. В данном случае стремление к изучению AS3 бессмысленно.

CEBEP
29.03.2008, 11:40
Подскажите, как обратится к главному Timeline-у ?
Если я не ощибаюсь то раньще можно было _root.gotoAndStop("page #");
а хелпе аналог _root значится stage, однако запись stage.gotoAndStop("page #"); вызывает error - undifined method. Попробывал parent, тоже не воркает :(

DRAGOnoid
29.03.2008, 12:49
во первых если ты пишешь в конструкторе главной сцены то не stage а this
во вторых используй не название клипа а порядковый номер - получаем
this.gotoAndStop(23);

CEBEP
29.03.2008, 13:28
во первых если ты пишешь в конструкторе главной сцены то не stage а this
во вторых используй не название клипа а порядковый номер - получаем
this.gotoAndStop(23);

Не, не савсем то.
У мя есть класс Menu где описана действие на клик мыхи по кнопкам меню, скажем для кнопки "News":


function mClick(event:MouseEvent):void

{
pageToGo = String(event.currentTarget).slice(8,-1) + "_page";
// [object News] + "_page" => обрезаю лишнее и получаю "News_page"

???.gotoAndStop(pageToGo);
//Вот здесь загвостка, как перейти в главном таймлайн-е на метку "News_page" ?

}


this.gotoAndStop(pageToGo); это вроде как для тайлаина нажатой кнопки получается. :(

etc
29.03.2008, 15:02
stage — это Stage. В вашем случае нужно что-то вроде (super.root as MovieClip).gotoAndStop("page #");

CEBEP
29.03.2008, 16:18
stage — это Stage. В вашем случае нужно что-то вроде (super.root as MovieClip).gotoAndStop("page #");

О, благодарю! То что нужно :victory:

DRAGOnoid
02.04.2008, 23:42
никак не могу найти вопрос который где то уже вскакивал поэтому решил написать тут.

Допустим есть пакет SomeProject с набором классов лежащих в папке SomeProject. как мне организовать (какой *.AS надо сделать и что внём писать) чтобы можно было создать статичную функцию и вызвать её из любого конструктора в класс которого я импортировал этот пакет. по типу SomeProject.myFunction(someVar); ещё было бы лучще чтобы это функция вызывалась без приписки имени пакета, т.е. myFunction(someVar);

etc
03.04.2008, 10:42
package ru.flasher {
public function myFunction(…):… {

}
}
import ru.flasher.myFunction;
myFunction(…);

SomeProject у вас не пакет, а top-level класс, не путайте понятия.

CEBEP
12.04.2008, 14:09
Есть в библиотеке мувик класса Rec с base-ом от MovieClip

Какая запись в последствии правильнее?


var rec = new Rec();
addChild(rec);



var rec:Rec = new Rec();
addChild(rec);



var rec:MovieClip = new Rec();
addChild(rec);

etc
12.04.2008, 14:58
Все, кроме первой. А последняя обычно не используется.

Mr. Fixit
12.04.2008, 15:35
Конечно же вторая.. это очевидно.
Ибо класс Rec имеет свои свойства и методы, которые не имеет класс Мувиклип.

DRAGOnoid
12.04.2008, 16:16
спасибо __etc - извини что с опозданием я что то проглядел ответ

A.E.M.
13.04.2008, 12:14
Нужно использовать сеттер.

public function set text(value:String):void {
this.txt.text = value;
}

mc.text = 'hello';

Агде этот сеттер нужно прописывать?

etc
13.04.2008, 12:17
В теле класса.

CEBEP
14.04.2008, 00:25
The dispatchEvent() method can be used by advanced programmers to dispatch a custom event object into the event flow. The only parameter accepted by this method is a reference to an event object, which must be an instance of the Event class or a subclass of the Event class. Once dispatched, the target property of the event object is set to the object on which dispatchEvent() was called.

Люди, если не сложно объясните общедоступным языком что такое dispatchEvent и если ещё и простой пример приведёте :rolleyes:

И что подразумевается под bubbles : Boolean - Indicates whether an event is a bubbling event. Что за булькающий случай?

BlooDHounD
14.04.2008, 01:07
http://www.google.ru/search?q=EventDispatcher+bubbles

Toxer
24.04.2008, 00:01
Помогите, пожалуйста, не могу разобраться. В ас3 не силен :) Необходимо сделать, чтобы при нажатии на кнопку открывалась страничка в новом окне. В хелпе нашел следующее, используется для открытия странички:
package {

import flash.display.Sprite;
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.net.URLVariables;


public class NavigateToURLExample extends Sprite {

public function NavigateToURLExample() {
var url:String = "http://www.adobe.com";
var request:URLRequest = new URLRequest(url);
}
}
}

Как это дело к кнопке прикрутить? :)

DRAGOnoid
24.04.2008, 14:37
прикрепить слушатель к кнопке

package {

import flash.display.Sprite;
import flash.events.MouseEvent;
import flash.net.navigateToURL;
import flash.net.URLRequest;
import flash.net.URLVariables;

public class NavigateToURLExample extends Sprite {
public function NavigateToURLExample() {
this.myButton.addEventListener(MouseEvent.CLICK, this.navigateToURL);
}
public function navigateToURL() {
var url:String = "http://www.adobe.com";
var request:URLRequest = new URLRequest(url);
navigateToURL (request, "_blank");
}
}
}


в этом случае у тебя на сцене есть кнопка с именем "myButton"

а NavigateToURLExample - это Dociment Class

Toxer
25.04.2008, 21:19
Спасиб большое! Только оно мне почему-то выдает следующую ошибку: "1037: Packages cannot be nested." Как быть?

DRAGOnoid
25.04.2008, 22:50
моя бага - писал руками, вот поправил рабочий код

--- содержимое NavigateToURLExample.as ---

package {
import flash.display.*;
import flash.events.*;
import flash.net.*;

public class NavigateToURLExample extends Sprite {
public function NavigateToURLExample() {
this.myButton.addEventListener(MouseEvent.CLICK, this.openURL);
}
public function openURL(event:MouseEvent) {
var url:String = "http://www.adobe.com";
var request:URLRequest = new URLRequest(url);
navigateToURL (request, "_blank");
}
}
}

Toxer
28.04.2008, 23:05
То же самое пишет. Может я что не так делаю, поправь если неправильно. Этот код йа пишу на экшне фрейма (у меня он один идет через весь мувик), там же лежит кнопка. Нажимаю паблиш и пишет ту же ошибку "1037: Packages cannot be nested."

DRAGOnoid
28.04.2008, 23:13
теперь ясно, "если бы ты читал форум" как любят говорить наши любимые модераторы, то знал бы что код во фреймах теперь писать не принято, для этого делается отдельный *.AS файл в нём пишется код и цепляется куда надо, в нашем случае это Document Class ... подробнее об этом всём пишетсся с самого начала этого топика - почитай. Если опять будет не понятно - плохо ( но всёравно спроси, лиш бы не лишнее.

Alex Lexcuk
30.04.2008, 23:32
Копия рисунка АС3
http://kind-armadillo.pochta.ru/FlaAC3/Bmp_copy.swf
http://kind-armadillo.pochta.ru/FlaAC3/BMP_copy.rar

Копия клипа
http://kind-armadillo.pochta.ru/FlaAC3/Mov_copy.swf
http://kind-armadillo.pochta.ru/FlaAC3/Mov_copy.rar


Дождь на AC3
http://kind-armadillo.pochta.ru/FlaAC3/rain_ac3.swf
http://kind-armadillo.pochta.ru/FlaAC3/rain_ac3.rar

модифицированный дождь АС3
http://kind-armadillo.pochta.ru/FlaAC3/Mod_rain_ac3.swf
http://kind-armadillo.pochta.ru/FlaAC3/mod_rain_ac3.rar

Листопад
http://kind-armadillo.pochta.ru/fla/deciduous.rar
http://kind-armadillo.pochta.ru/fla/deciduous.swf



Осциллографф AC3
http://kind-armadillo.pochta.ru/fla/OSC_AC3.rar
http://kind-armadillo.pochta.ru/fla/osc.swf

Рандомная курва
http://kind-armadillo.pochta.ru/FlaAC3/curve.rar
http://kind-armadillo.pochta.ru/FlaAC3/curve.swf

Загрузка флешки на кнопку
http://kind-armadillo.pochta.ru/FlaAC3/loadSWF.swf
http://kind-armadillo.pochta.ru/FlaAC3/loadSWF.rar

Загрузка текста
http://kind-armadillo.pochta.ru/FlaAC3/load_text.rar
http://kind-armadillo.pochta.ru/FlaAC3/load_text.swf

вращение внешнего осцилографа
http://kind-armadillo.pochta.ru/FlaAC3/RotateSWF.swf
http://kind-armadillo.pochta.ru/FlaAC3/RotateSWF.rar

демонстрация твина
http://kind-armadillo.pochta.ru/FlaAC3/tweenDemo.swf
http://kind-armadillo.pochta.ru/FlaAC3/tweenDemo.rar

Вращение куба
http://kind-armadillo.pochta.ru/FlaAC3/mur_cube.swf
http://kind-armadillo.pochta.ru/FlaAC3/cube.rar

http://kind-armadillo.pochta.ru/FlaAC3/cube_mod.swf
http://kind-armadillo.pochta.ru/FlaAC3/cube_mod.rar

http://kind-armadillo.pochta.ru/FlaAC3/mur_cube_text_mod.swf
http://kind-armadillo.pochta.ru/FlaAC3/mur_cube_text_mod.rar

//галерея
http://dnadillo.dn.ua/mur_gallery/page_0.html
Исходник
http://dnadillo.dn.ua/mur_gallery/mur_gallery.rar

//урок по созданию кнопок
http://dnadillo.dn.ua/mur_gallery/lesson_button/page_0.html

Alex Lexcuk
05.05.2008, 21:21
Новая галерея, теперь не нужен файл с ссылками на рисунки, рнр все сделает сам, поищет в соответствующей папке файлы *.jpg и *.JPG. Вес галереи улучшен до 9 кБ. Сделал и комментарии на английском языке.
http://dnadillo.dn.ua/mur_gallery/php/AC3_PHP.swf
http://dnadillo.dn.ua/mur_gallery/php/GaleryScoresText.txt
http://dnadillo.dn.ua/mur_gallery/php/mur_galery_AC3_PHP.rar

DRAGOnoid
05.05.2008, 22:48
здорово, только багов многовато. если вдруг будешь улучшать уроки - заменяй старые )

Alex Lexcuk
07.05.2008, 18:47
Флешка уравляет явой, ява управляет флешкой на хатемель странице.
http://dnadillo.dn.ua/php_flash/MUS/Mus_1.html
http://dnadillo.dn.ua/php_flash/MUS/Mus_1.rar

Alex Lexcuk
12.05.2008, 20:03
Haдпиcь сo 3BE3ДHЫХ войн
http://dnadillo.dn.ua/mur_gallery/ac3FLA/star_war.swf
http://dnadillo.dn.ua/mur_gallery/ac3FLA/star_war.rar

CEBEP
12.05.2008, 20:56
Какая разница между super и super() ?

etc
12.05.2008, 22:25
Какая разница между super и super() ?
Первое — обращение к свойству суперкласса (если кроме super ничего нет, то это ничего не означает), а второе — вызов конструктора суперкласса.

Reflection
17.05.2008, 20:00
Подскажите, у меня есть XML-файл - piclist.xml :

<pic>
<album aname="albm1">
<img id="1" iname="telka">img1.jpg</img>
<img id="2" iname="wallpap">img2.jpg</img>
<img id="2" iname="wallpap">img3.jpeg</img>
</album>
</pic>

я написал такой код который раскалбашивает XML и загружает прописанные в нем картинки:

package {

import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.utils.*;
import flash.events.MouseEvent;

public class gallery extends MovieClip {
var pic:XML;
var array:Array=new Array();
var colimg;
var clicks:Boolean=false;
var arMC:Array=new Array();
public function gallery() {
var loader:URLLoader=new URLLoader();
loader.dataFormat=URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, hendleComplete);
loader.load(new URLRequest("piclist.xml"));
}
public function hendleComplete(event:Event) {
try {
pic=new XML(event.target.data);
} catch (e:TypeError) {
trace("не получилось преобразовать текст в XML");
trace(e.message);
}
colimg=pic.album.img.length();
for (var j:int=0; j<colimg; j++) {
array.push(pic.album.img[j]);
}
for (var i:int=0; i<array.length; i++) {
var img=array[i];
var _loaderpic:Loader=new Loader();
var mc:MovieClip=new MovieClip();
_loaderpic.name="_loaderpic"+i;
mc.name="mc"+i;
_loaderpic.load(new URLRequest(img));
addChild(mc);
mc.addChild(_loaderpic);
//mc.x=mc.width*i+100;
mc.scaleX=0.2;
mc.scaleY=0.2;
trace(i);
trace(img);
arMC.push(mc);
mc.addEventListener(MouseEvent.CLICK,hclick);
}
//trace(numChildren);

}
public function hclick(event:Event):void {
if (clicks) {
event.target.scaleX=1;
event.target.scaleY=1;
event.target.x=0;

clicks=false;
} else {
event.target.scaleX=4;
event.target.scaleY=4;
event.target.x=stage.width/2;
clicks=true;
}
}
}
}

Скорей всего корявый т.к. руки не заточил и не выпрямил еще =))
Я хоче чтобы у меня каждая картинка грузилась в отдельный MovieClip и я в цикле прописал mc.name="mc"+i;
картинки добавляются но что-то я не пойму под какими именами они для того чтобы обратится к ним позже, если я пишу вместо trace(numChildren); trace(mc); то он показывает [object MovieClip] если trace(mc1); /mc2,mc0 и т.д./ - 1120: Access of undefined property mc1.

и еще хочу чтобы картинки были на определенном расстоянии и пишу mc.x=mc.width*i+100; но они сдвигаются все вместе и всеравно друг на друге. где мои косяки?если не трудно прошу поправить с пояснением.

DRAGOnoid
17.05.2008, 21:58
ну trace(mc); - действительно покажет [object MovieClip], ты сам правильно писал что чтобы показать имя надо писать trace(mc.name); или я что то не так допонял?

чтобы картинки упорядочить введи одну переменную по типа

var height:uint = 0;
for (var i:uint=0; i<10; i++){
this['mc'+i].x = height;
height+=this['mc'+i].width +10;
}

Reflection
17.05.2008, 23:23
DRAGOnoid, спасибо! все получилось.

Reflection
18.05.2008, 12:20
А вот еще что я хотел спросить. Если я в конце моей функции hendleComplete вставлю кнопку добавлю листнера и в функции которая будет вызываться,скажем, при клике по кнопке, буду указывать клип с картинкой(например чтобы сдвинуть его,или еще что ни будь), то мне компилятор скажет : 1120: Access of undefined property mc. Как тогда обращаться к клипам, если они не видны за пределами функции hendleComplete ? я не могу же их объявить после объявления класса т.к. я не знаю сколько клипов будет. Или это как то можно?

DRAGOnoid
18.05.2008, 12:32
муторно
самый простой способ опять же сам сказал если есть функция hendleComplete
в которой у тебя что то типа

public function hendleComplete (event:Event):{
for (var i:uint=0; i<10; i++) {
this['mc'+i].addEventListener(MouseEvent.CLICK, this['onClick'+i]);
}
}

но в таком случае тебе придётся писать непонятное колличество функций для непонятного колличества мувклипов а это неправильно!

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

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

Reflection
18.05.2008, 12:54
тоесть я потом создаю экземпляры класса по кол-ву равным с кол-вом картинок. Ладно буду пытаться разбираться с классами.

CEBEP
21.05.2008, 00:01
var req:URLRequest = new URLRequest("a.swf");
var loader:Loader = new Loader();


addEventListener(MouseEvent.CLICK, myLoad);
function myLoad(event:MouseEvent):void
{
loader.load(req);
trace(loader.contentLoaderInfo.bytesTotal);
myContainer.addChild(loader);

}

Грузит флешку, всё ок. Но как мне добратся до bytesTotal

loader.contentLoaderInfo.bytesTotal - возращяет 0 :(

etc
21.05.2008, 02:26
А вы думаете, что флеш может мгновенно после старта загрузки определить размер файла?

CEBEP
21.05.2008, 10:01
myContainer.addChild(loader);
trace(loader.contentLoaderInfo.bytesTotal);



так? но всё равно и bytesTotal и bytesLoaded возвращает 0 :(

etc
21.05.2008, 10:33
Нет, не так. В сути ничего не изменилось, вы пытаетесь получить размер файла ещё до начала загрузки оного. А оно (начало загрузки) начнется гораздо позже выполнения любого кода в myLoad.

Reflection
21.05.2008, 13:53
на сколько я понимаю нужно добавить loader.addEventListener(ProgressEvent.PROGRESS, hendleprogress);

etc
21.05.2008, 14:05
У LoaderInfo есть и другие события.

CEBEP
21.05.2008, 16:15
ура, заработало :) спасибо событиям INIT и COMPLETE

Alex Lexcuk
29.05.2008, 00:45
Выкладываю синусоидальный текст
Он в шапке сайта
http://dnadillo.dn.ua
если на нем кликнуть появится исходник.

Интересный эксперимент с блендмоде
грузим рисунки
http://dnadillo.dn.ua/images/imag/magna_carta_131.JPG
http://dnadillo.dn.ua/images/imag/magna_carta_127.JPG
в бит мапу
ставим бленд моде blendMode="darken";
складываем их и получаем третий битмап, а потом еще и крутим, вертим эту байду
http://dnadillo.dn.ua/fla/in-2-1.swf
http://dnadillo.dn.ua/fla/in-2-1.zip


Это все легко вставить в текстовое поле, используя xml файл
Загрузка рисунков в текстовую область
http://dnadillo.dn.ua/fla/XML/img-xml.swf
http://dnadillo.dn.ua/fla/XML/mur_xml_file_img.xml

Можно используя xml вставить рисунки в спрайты, как бы минигалерея.
http://dnadillo.dn.ua/fla/XML/img-xml-img.swf
http://dnadillo.dn.ua/fla/XML/img-xml-img.zip
http://dnadillo.dn.ua/fla/XML/img_xml.xml

Можно сделать из мувиков кнопку используя специальный класс, это элементарно легко.
кнопки на основе фильтра
http://dnadillo.dn.ua/fla/filter-button.swf
http://dnadillo.dn.ua/fla/filter-button.zip

Можно передать переменные php скрипту, получится как-бы гостевая книга, объем файла ограничен 400 байт.

Отправить переменные
http://dnadillo.dn.ua/fla/php/php.swf
http://dnadillo.dn.ua/fla/php/application.txt

http://dnadillo.dn.ua/fla/php/php-flash-write.zip
http://dnadillo.dn.ua/fla/php/php-flash-write.txt


Как легко текстовое поле превращается в маску? Элементарно...
http://dnadillo.dn.ua/fla/mask-text.swf
http://dnadillo.dn.ua/fla/mask-text.zip

Текстовый эффект обрамления текстa фильтром Glow, оно сделано как массив фильтров и применяется к тексту как утолщение обрамления, затем утоньшение. Работает быстрее молнии и никогда не останавливается 5 кБ.
Текстовый эффект кайма
http://dnadillo.dn.ua/fla/text-Glow-filter.zip
http://dnadillo.dn.ua/fla/text-Glow-filter.swf

Попробовал передать переменные из ActionScript в javascript и обратно, это очень интересно, вот только с броузером Опера возникли трудности mode: transparent не хочет передавать переменные в javascript, сделал еще одну маленькую флешку но не прозрачную, связал ее с основной, посредством LocalConection, и маленькая флешка уже передает переменые в javascript, все как бы работает. И еще я передаю FlashVars.
http://dnadillo.dn.ua/fla/js-swf-html/js-swf-html.html

Юрий01
02.06.2008, 21:22
а ссылка есть? :)
или где купить

Читай "Essential ActionScript 3.0 by Colin Moock", глава первая, там все очень доходчиво, правда на английском. :)

http://www.amazon.co.uk/Essential-ActionScript-3-0-Colin-Moock/dp/0596526946/?ie=UTF8&s=books&qid=1211573765&sr=8-1

CEBEP
05.06.2008, 01:03
Пипл, на что реагирует "Event.OPEN" ? т.е. OPEN чего флешки или начала загрузки в другую флешку?

BlooDHounD
05.06.2008, 01:47
CEBEP, а в хелпе, что написано?

CEBEP
05.06.2008, 01:54
Defines the value of the type property of an open event object.
так что всё равно не понял, на что конкретно срабатывает :(

BlooDHounD
05.06.2008, 02:37
http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/events/Event.html#OPEN

Felicast
07.06.2008, 14:31
у меня есть кнопка (класс унаследован от SimpleButton). в дизайнере я добавляю на нее текстовое поле.
подскажите пожалуйста как мне из AS добраться до этого текстового поля.

Felicast
07.06.2008, 16:26
вопрос снят

(btn.upState as Sprite).getChildAt(0);

unhappy
17.06.2008, 19:12
Здравствуйте.

На странице 13 топика предложен тест производительности при явном указании типа переменной и без него.

Не бывает таких моментов. На скорость это основательно влияет:

var i:uint = 0;
var t:uint = getTimer();
var a = 0;
for (i = 0;i < 10000000;i+=1) {
a+=1;
}
trace(getTimer()-t); // 559
t = getTimer();
var b:uint = 0;
for (i = 0;i < 10000000;i+=1) {
b+=1;
}
trace(getTimer()-t); // 38

при выполнении в Adobe CS3 Professional результаты примерно 364 и 48.
при выполнении в FlashDevelop получается 1780 и 1320.
подскажите - в чём дело?

и ещё вопрос: может ли локальное приложение из .swf файла читать/сохранять данные на локальный диск?

etc
18.06.2008, 00:55
при выполнении в Adobe CS3 Professional результаты примерно 364 и 48.
при выполнении в FlashDevelop получается 1780 и 1320.
подскажите - в чём дело?
В том, что тестирование проводится в debug-режиме.

и ещё вопрос: может ли локальное приложение из .swf файла читать/сохранять данные на локальный диск?
Не может.

unhappy
18.06.2008, 01:45
В том, что тестирование проводится в debug-режиме.
ясно. спасибо.

Не может.
Как в таком случае можно реализовать хранение таблицы результатов, сохранений? В справке нашёл описание SharedObject (http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/net/SharedObject.html). У него есть возможность хранить данные как локально, так и на сервере. Правильно ли я понимаю, что правильным будет использовать его?
Или Flash подразумевает всё-таки хранение данных на сервере?

etc
18.06.2008, 10:31
Как в таком случае можно реализовать хранение таблицы результатов, сохранений? В справке нашёл описание SharedObject (http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/net/SharedObject.html). У него есть возможность хранить данные как локально, так и на сервере. Правильно ли я понимаю, что правильным будет использовать его?
Или Flash подразумевает всё-таки хранение данных на сервере?
Чтобы сохранять удаленный SharedObject, вам потребуется как минимум FMS на сервере. Проще использовать любые другие методы сохранения данных на сервер.

unhappy
18.06.2008, 11:14
В FlashDevelop тестировал так:
package {
import flash.display.Sprite;
import flash.utils.getTimer;
import flash.text.TextField;

public class Untitled2 extends Sprite
{
public function Untitled2 ()
{
var myText:TextField = new TextField();
var t:uint;
var i:uint = 0;

t = getTimer();
var a:* = 0;
for (i = 0; i < 10000000; i++) { a = a + 1; }
myText.text = "a:* " + (getTimer() - t) as String; // 660

t = getTimer();
var b:int = 0;
for (i = 0; i < 10000000; i++) { b = b + 1; }
myText.appendText("\nb:int " + (getTimer() - t) as String); // 73

addChild(myText);
}
}
}

Чтобы сохранять удаленный SharedObject, вам потребуется как минимум FMS на сервере. Проще использовать любые другие методы сохранения данных на сервер.
У меня нет сервера )
Я только знакомлюсь с флешем и хочу написать небольшую игру. На будущее интересуюсь - как локально сохранять таблицу результатов к примеру..

Skriv
18.06.2008, 11:23
На будущее интересуюсь - как локально сохранять таблицу результатов к примеру..


private var so:SharedObject;
so = SharedObject.getLocal('GameMemory');

unhappy
18.06.2008, 11:30
Skriv
Спасибо!

Как раз нашёл книгу "ActionScript 3.0 Game Programming University 2007" и в ней вот такой текст:
Saving Local Data
A common need in game development is to store bits of local data. For instance, you
could store the player’s previous score. Or, you could store some game options.
To store a piece of data on the user’s machine, we’ll use a local SharedObject.
Accessing a SharedObject is the same act as creating one. Just asking whether it exists
will create it.
To do this, just assign a variable to the SharedObject of a certain name, with the
getLocal function:
var myLocalData:SharedObject = SharedObject.getLocal(“mygamedata”);
The myLocalData object is able to take any number of properties of any type: numbers, strings, arrays, other objects, and so on.
If you had stored same data in a property of the shared object named gameinfo you
could access it with: myLocalData.data.gameinfo:
trace(“Found Data: “+myLocalData.data.gameinfo);
So, set this gameinfo property. Just set it as you would a regular variable:
myLocalData.data.gameinfo = “Store this.”;
Try running the test movie SavingLocalData.fla. It uses the trace function to output
the myLocalData.data.gameinfo property. Because that isn’t set to anything, you’ll get
undefined as the result. But then, it sets the value. So, the second time you run the test, you get “Store this.”

=)

Nastardimus
04.07.2008, 21:17
Чуваки, нужна помощь, как на AS3.0 написать драг.дроп кнопки, Драг у меня ещё кое-как вышел а вот с дропом проблемы.

Felicast
04.07.2008, 23:07
при маусдаун startDrag(), при маусап stopDrag()
никаких телодвижений по сохранению координат не надо.

Nastardimus
06.07.2008, 00:28
при маусдаун startDrag(), при маусап stopDrag()
никаких телодвижений по сохранению координат не надо.

блин это я так знаю, напиши мне класс для кнопки с обоими этими функ-иями, проблема заключатся в том, что после 2.0 я понять не могу, как объект кнопку (не как класс) а именно как объект присвоить какой-нибудь переменной и уже драгать и дроппать. Объясните мне.