ورود

View Full Version : سوال: مشکل در کامپایل اکشن اسکریپت



blackbios
دوشنبه 07 بهمن 1392, 22:57 عصر
سلام
متاسفانه من مشکلی برام پیش اومده ممنون میشم راهنماییم کنید:
کمپانی ادوبی برنامه ای به نام ادوب کانکت داره که این برنامه برای برگزاری های همایش وگفت وگو استفاده میشه!
که دارای دومدل نسخه هست
1.کلاینتی ای او اس اندروید و ویندوز
که این مشکلی پایینتر گفتم فقط در نسخه اندرویدی هستش!
2.سروری
ولی الان در حال حاضر در نسخه کلاینتی پلتفرم اندروید مشکلی پیدا کرده که اونم مشکل LTR بودن کلیه کاراکترها هستش!
که باعث شده علاوه چپ چین بودن کاراکتر ها در تایپ فارسی تمام حروف از هم منقطع منقطع هستن!
و از اون جایی که من اشنایی با برنامه نویسی اندروید دارم تونستم برنامه رو انالیز کنم و به این نتیجه رسیدم که برنامه در تحت ADOBE AIR وADOBE FLASH کار میکنه و در واقع اینطور هست که تمام فعالیت برنامه توی یک فایل فلش داخل برنامه هست!
که متاسفانه من بعد از دیکریپت کردن فایل فلش و اعمال تغییرات در موقع کامپایل با 500 و خورده ای ارور مواجه شدم
ممنون میشم یکی از بزرگواران کمکم کنند!
درضمن
این لینک اون برنامه اندرویدی:

http://api.evozi.com/apk-downloader/download/air.com.adobe.connectpro/c7d838bfef8bd9851f17b26505b39d64
این یکی هم لینک فلش داخل برنامه:
http://d-h.st/znO

این هم لینک دیکریپت شده فلش:
http://d-h.st/PE0

خیلی کارم گیره:گریه:
هرکدوم از دوستان کمکم کنند سعی میکنم از خجالتشون دربیام!
بازم ممنون

amirhossein.h
پنج شنبه 10 بهمن 1392, 19:34 عصر
عزیزم این فایل با فلش ساخته شده و امکان دیکریپت این فایل نیست و باید بدید تا اونچیزی رو که می خواید براتون درست کنند

blackbios
شنبه 12 بهمن 1392, 22:21 عصر
ممنون ولی فلش دیکریپت میشه ها!
من سورس باز شدشم گذاشتم!
با sothinkدکامپایلش کردم!
بازم ممنون

amirhossein.h
یک شنبه 13 بهمن 1392, 13:05 عصر
تا اونجایی که من اطلاع دارم و تجربم میگه فهمیدم اکشن 2 فقط دیکریپت میشه و as3 امکان دیکریپت شدنش وجود نداره
شاید شما بتونی فایل رو به صورت fla ازش خروجی بگیری ولی اون فایلی که بیرون میاد به هم ریخته و کدها به صورت اشتباه دیکریپت میشن

پس چون فقط با as3 میشه برای موبایل خروجی گرفت در نتیجه این فایل رو نمیشه دیکریپت کرد

blackbios
سه شنبه 15 بهمن 1392, 10:31 صبح
خب پس اوکی!
حالا میشه یکی سر از بیس نویسی این برنامه کمکم کنه!؟
چون این برنامه بعد از کلیک روی ایکونش در سیستم عامل مستقیم تحت فلش اجرا میشه!!!

#aliyari_C
پنج شنبه 01 اسفند 1392, 00:24 صبح
سلام
امکان باز شدن سورش هست ، ولی خیلی هزینه بر و زمان بر است.

شما یکی از کلاس هاشو بگو ، سورش رو کامل بهتون بدم

#aliyari_C
پنج شنبه 01 اسفند 1392, 00:36 صبح
سلام

امکان باز شدن کدهای as3 در حدود 90 درصد شدنی است.

البته باز کردن کدهای شما خیلی زمان بر است

این هم یک مثال


package air.net
{
import flash.events.EventDispatcher;
import flash.utils.Timer;
import flash.events.TimerEvent;
import flash.desktop.NativeApplication;
import flash.events.Event;
import flash.events.StatusEvent;

public dynamic class ServiceMonitor extends EventDispatcher
{

private static const kInvalidParamError:uint = 2004;
private static const kDelayRangeError:uint = 2066;

private var _running:Boolean = false;
private var _delay:Number = 0;
private var _timer:Timer;
private var _available:Boolean = false;
private var _specializer:Object = null;
private var _notifyRegardless:Boolean = false;
private var _statusTime:Date;

public function ServiceMonitor()
{
this._timer = new Timer(this._delay);
this._statusTime = new Date();
super();
this._timer.addEventListener(TimerEvent.TIMER, this.onTimer);
}
private static function makeForwarder(name:String):Function
{
return (function forwarder (... _args)
{
return (this.__monitor__[name].apply(this.__monitor__, _args));
});
}
public static function makeJavascriptSubclass(constructorFunction:Object) :void
{
var name:String;
var proto:Object = constructorFunction.prototype;
var names:Array = ["start", "stop", "willTrigger", "removeEventListener", "addEventListener","dispatchEvent", "hasEventListener"];
for each (name in names) {
proto[name] = makeForwarder(name);
};
proto.setAvailable = function (_arg1:Boolean):void
{
this.__monitor__.available = _arg1;
};
proto.getAvailable = function ():Boolean
{
return (this.__monitor__.available);
};
proto.toString = makeForwarder("_toString");
proto.initServiceMonitor = function ()
{
return (_initServiceMonitor(this));
};
}
private static function _initServiceMonitor(_arg1:Object):ServiceMonitor
{
var _local2:ServiceMonitor = new (ServiceMonitor)();
_arg1.__monitor__ = _local2;
_local2._specializer = _arg1;
return (_local2);
}

public function stop():void
{
if (!this._running){
return;
};
this._running = false;
this._timer.stop();
NativeApplication.nativeApplication.removeEventLis tener(Event.NETWORK_CHANGE, this.onNetworkChange);
}
public function set pollInterval(_arg1:Number):void
{
if ((((_arg1 < 0)) || (!(isFinite(_arg1))))){
Error.throwError(RangeError, kDelayRangeError);
};
this._delay = _arg1;
this._timer.stop();
if (this._delay > 0){
this._timer.delay = this._delay;
if (this._running){
this._timer.start();
};
};
}
public function get available():Boolean
{
return (this._available);
}
private function _toString():String
{
return ((('[ServiceMonitor available="' + this.available) + '"]'));
}
public function get lastStatusUpdate():Date
{
return (new Date(this._statusTime.time));
}
public function set available(_arg1:Boolean):void
{
var _local3:String;
var _local4:String;
var _local2:Boolean = this._available;
this._available = _arg1;
this._statusTime = new Date();
if (((!((_local2 == this._available))) || (this._notifyRegardless))){
_local3 = ((this._available) ? "Service.available" : "Service.unavailable");
_local4 = "status";
dispatchEvent(new StatusEvent(StatusEvent.STATUS, false, false, _local3, _local4));
};
this._notifyRegardless = false;
}
protected function checkStatus():void
{
if (((this._specializer) && (this._specializer.checkStatus))){
this._specializer.checkStatus();
};
}
private function onNetworkChange(_arg1:Event):void
{
if (!this._running){
return;
};
if (this._delay > 0){
this._timer.stop();
this._timer.start();
};
this.checkStatus();
}
public function start():void
{
if (this._running){
return;
};
this._running = true;
this._notifyRegardless = true;
if (this._delay > 0){
this._timer.start();
};
NativeApplication.nativeApplication.addEventListen er(Event.NETWORK_CHANGE, this.onNetworkChange, false, 0, true);
this.checkStatus();
}
public function get pollInterval():Number
{
return (this._delay);
}
private function onTimer(_arg1:TimerEvent):void
{
this.checkStatus();
}
override public function toString():String
{
if (((this._specializer) && (this._specializer.toString))){
return (this._specializer.toString());
};
return (this._toString());
}
public function get running():Boolean
{
return (this._running);
}

}
}